Điểm chính
- Một base URL và một model ID, uncensored, hoạt động với bất kỳ SDK hoặc client OpenAI nào.
- Truyền phát, gọi hàm và chế độ JSON được hỗ trợ, với cửa sổ ngữ cảnh 100.000 token.
- Một khóa đầy đủ cho phép 8 yêu cầu đồng thời và 300 yêu cầu mỗi phút, vì vậy hãy lên kế hoạch cho một hàng đợi nhỏ cho các ứng dụng bận rộn.
- Thanh toán là $0.15 cho mỗi 1M token đầu vào và $0.50 cho mỗi 1M token đầu ra từ tín dụng trả trước, và các prompt không được sử dụng để huấn luyện.
Những gì bạn nhận được từ một endpoint
Người dùng tìm kiếm uncensored llm hub khi họ muốn một mô hình trả lời mà không từ chối nội dung cho mục đích người trưởng thành hợp pháp, nhưng không muốn chạy GPU. Dịch vụ là một API HTTPS đơn giản. Bạn trỏ một client OpenAI vào https://api.uncensoredllmhub.com/v1, gửi model ID uncensored, và xác thực với Authorization: Bearer YOUR_KEY. Có hai phương thức: POST /v1/chat/completions cho các cuộc hội thoại và GET /v1/models để liệt kê.
Nó giúp làm rõ những gì nằm sau endpoint đó. Đó là một mô hình trọng số mở, do một nhà cung cấp độc lập chạy và được tinh chỉnh để bỏ qua các từ chối nội dung. Nó không phải là API chính thức của bất kỳ nhà cung cấp lớn nào, và nó không phải là bộ định tuyến chọn giữa các mô hình. Nó chỉ xử lý văn bản: không có ảnh, âm thanh, video, embeddings hoặc fine-tuning. Một quy tắc cứng duy nhất áp dụng không ngoại lệ: không có nội dung tình dục liên quan đến người chưa thành niên.
Phạm vi hẹp đó là điểm mạnh. Một endpoint ổn định duy nhất dễ dàng xây dựng xung quanh. Các phần bên dưới hiển thị một backend chat nhỏ, sau đó là vòng lặp agent, rồi các giới hạn bạn cần thiết kế.
Bước 1: kết nối một client hiện có
Vì API tuân theo định dạng OpenAI, bạn hiếm khi phải viết mã client mới. Mở SDK hoặc công cụ của bạn, thay đổi base URL và key, rồi đặt mô hình thành uncensored. Đầu tiên, bạn đăng ký trên trang khóa API (bằng Google, hoặc email và mật khẩu), sau đó nhận tín dụng dùng thử $0.50 chỉ với một cú nhấp chuột. Gói dùng thử không cần thẻ, kéo dài 7 ngày và giới hạn một lần cho mỗi người.
Một yêu cầu tối thiểu bằng Python:
from openai import OpenAI
client = OpenAI(
base_url="https://api.uncensoredllmhub.com/v1",
api_key="YOUR_API_KEY",
)
resp = client.chat.completions.create(
model="uncensored",
messages=[
{"role": "system", "content": "You are a concise assistant for a writing tool."},
{"role": "user", "content": "Give me three opening lines for a mystery set on a ferry."},
],
temperature=0.9,
top_p=0.95,
)
print(resp.choices[0].message.content)
Các cài đặt lấy mẫu như temperature, top_p, stop, seed và các hình phạt tần suất và hiện diện được chuyển tiếp đến mô hình, vì vậy các nút điều khiển bạn quen thuộc từ các nhà cung cấp khác hoạt động giống nhau. Cuộc gọi tương tự hoạt động trong các công cụ chấp nhận endpoint tương thích OpenAI tùy chỉnh, ví dụ SillyTavern hoặc Open WebUI: dán base URL, thêm khóa, nhập model ID bằng tay.
Bước 2: truyền phát câu trả lời vào giao diện chat
Các ứng dụng chat cảm thấy chậm nếu người dùng nhìn vào một hộp trống cho đến khi câu trả lời đầy đủ xuất hiện. Streaming khắc phục điều đó. Đặt stream: true và API gửi câu trả lời dưới dạng sự kiện gửi từ máy chủ, với việc sử dụng được báo cáo ở cuối luồng. Đây là một phiên bản Node chuyển tiếp các token khi chúng đến:
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.uncensoredllmhub.com/v1",
apiKey: process.env.API_KEY,
});
export async function streamReply(history, onToken, signal) {
const stream = await client.chat.completions.create(
{ model: "uncensored", messages: history, stream: true },
{ signal }
);
let text = "";
for await (const chunk of stream) {
const piece = chunk.choices[0]?.delta?.content ?? "";
if (piece) {
text += piece;
onToken(piece);
}
}
return text;
}
Hai thói quen này giúp tránh rắc rối sau này. Đầu tiên, luôn truyền một tín hiệu hủy và hủy nó khi người dùng đóng tab hoặc nhấn dừng. Một yêu cầu streaming chiếm khe đồng thời của nó cho đến khi luồng kết thúc, vì vậy các luồng bị bỏ rơi sẽ ăn vào khoản cho phép của bạn. Thứ hai, giữ nguyên toàn bộ văn bản bạn đã tổng hợp, vì bạn sẽ thêm nó vào lịch sử dưới dạng tin nhắn của trợ lý cho lượt tiếp theo.
Nếu bạn thấy các lỗi mơ hồ trong giao diện người dùng của mình trong khi streaming, ghi chú của chúng tôi về việc chẩn đoán các lỗi streaming bao gồm các nguyên nhân thường gặp, chẳng hạn như base URL sai, proxy đệm các sự kiện và hai mã 429.
Bước 3: sử dụng ngữ cảnh dài một cách có chủ đích
Cửa sổ ngữ cảnh là 100.000 token, dùng chung cho prompt và phần hoàn thành. Đối với một công cụ viết truyện, chat nhân vật hoặc trợ lý tài liệu, đó là chỗ cho lịch sử dài, prompt hệ thống lớn và tài liệu tham khảo cùng một lúc. Bạn không cần đặt max_tokens; phần hoàn thành có thể sử dụng bất kỳ phần còn lại nào.
Ngữ cảnh dài rẻ để thử với những giá này. Điền đầy cửa sổ với đầu vào tốn 0,1 × $0,15 = $0,015 cho 100.000 token đầu vào. Thêm câu trả lời 2.000 token (0,002 × $0,50 = $0,001) và một cuộc gọi gần như đầy đủ tốn $0,016. Bạn vẫn muốn quản lý cửa sổ, vì ba lý do: độ trễ tăng theo kích thước prompt, mỗi lượt gửi lại lịch sử nên chi phí tích lũy qua một phiên, và lịch sử rất dài làm loãng các hướng dẫn ở đầu.
Một chính sách đơn giản hoạt động tốt:
- Giữ prompt hệ thống và bất kỳ văn bản tham chiếu cố định nào ở đầu.
- Giữ các lượt gần đây nhất nguyên văn.
- Khi lịch sử vượt qua một ngưỡng bạn chọn, ví dụ 60.000 token, yêu cầu mô hình tóm tắt phần cũ nhất thành một ghi chú ngắn và thay thế các lượt đó bằng nó.
- Đọc
usage.prompt_tokenstừ mỗi phản hồi để biết kích thước của yêu cầu tiếp theo sẽ là bao nhiêu, thay vì ước tính bằng ký tự.
Bước 4: công cụ và đầu ra có cấu trúc cho agent
Agent cần hai thứ từ một mô hình: một cách để gọi hàm và đầu ra bạn có thể phân tích cú pháp. Cả hai đều được hỗ trợ. Gọi hàm sử dụng các tham số tiêu chuẩn tools và tool_choice, các cuộc gọi hàm có thể được truyền phát, và kết quả quay lại dưới dạng các tin nhắn với role: "tool". Một lượt đi đơn giản trông như thế này:
import json
from openai import OpenAI
client = OpenAI(
base_url="https://api.uncensoredllmhub.com/v1",
api_key="YOUR_API_KEY",
)
tools = [{
"type": "function",
"function": {
"name": "lookup_order",
"description": "Find an order by its number.",
"parameters": {
"type": "object",
"properties": {"order_id": {"type": "string"}},
"required": ["order_id"],
},
},
}]
messages = [{"role": "user", "content": "Where is order A-1042?"}]
first = client.chat.completions.create(model="uncensored", messages=messages, tools=tools)
msg = first.choices[0].message
if msg.tool_calls:
call = msg.tool_calls[0]
args = json.loads(call.function.arguments)
result = {"order_id": args["order_id"], "status": "shipped"} # your real lookup goes here
messages.append(msg)
messages.append({"role": "tool", "tool_call_id": call.id, "content": json.dumps(result)})
final = client.chat.completions.create(model="uncensored", messages=messages, tools=tools)
print(final.choices[0].message.content)
Luôn xác thực các đối số trước khi chạy bất kỳ thứ gì có tác dụng phụ. Một mô hình có thể tạo ra một giá trị không đúng định dạng hoặc không mong đợi, và mã của bạn là dòng phòng vệ cuối cùng.
Đối với đầu ra có cấu trúc đơn giản mà không có công cụ, hãy sử dụng chế độ JSON với response_format được đặt thành {"type": "json_object"}. Mô tả hình dạng bạn muốn trong prompt, và phân tích cú pháp phản hồi bên trong một khối try để một phản hồi xấu kích hoạt việc thử lại thay vì lỗi.
curl https://api.uncensoredllmhub.com/v1/chat/completions -H "Authorization: Bearer $API_KEY" -H "Content-Type: application/json" -d '{
"model": "uncensored",
"response_format": {"type": "json_object"},
"messages": [
{"role": "system", "content": "Reply with JSON: {"title": string, "tags": [string]}"},
{"role": "user", "content": "Describe a noir story set in a rainy port city."}
]
}'
Các giới hạn cần thiết kế xung quanh
Một khóa đầy đủ cho phép 8 yêu cầu đồng thời và 300 yêu cầu mỗi phút. Một khóa dùng thử cho phép 2 và 60. Thân có thể lên tới 8 MB. Mỗi phản hồi mang theo X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests và X-RateLimit-Limit-Concurrency, rất hữu ích để ghi log.
Khi bạn vượt qua một giới hạn, API trả về HTTP 429. Mã là rate_limited cho quá nhiều yêu cầu mỗi phút và concurrency cho quá nhiều cùng lúc. Quá tải tạm thời cũng trả về 429, với Retry-After: 5. Đối với một ứng dụng đa người dùng, hãy đặt một hàng đợi nhỏ phía trước API: một semaphore có kích thước dưới giới hạn đồng thời và một lần thử lại tôn trọng Retry-After. Đối với một agent phân nhánh thành các cuộc gọi công cụ song song, hãy giới hạn việc phân nhánh ở cùng một số.
Danh sách đầy đủ các tham số và định dạng lỗi có trong tài liệu API.
Chi phí, nạp tiền và xử lý dữ liệu
Giá là $0,15 cho mỗi 1 triệu token đầu vào và $0,50 cho mỗi 1 triệu token đầu ra, từ tín dụng trả trước. Không có đăng ký, tín dụng không bao giờ hết hạn, và các yêu cầu thất bại hoặc bị từ chối không được tính phí. Một lượt chat với 1.500 token đầu vào và 500 token đầu ra tốn 0,0015 × $0,15 + 0,0005 × $0,50 = $0,000225 + $0,00025 = $0,000475, vì vậy $20 tín dụng bao gồm khoảng 42.000 lượt như vậy.
Bạn có thể nạp bất kỳ khoản tiền nguyên nào từ $20 đến $500. Bonus là +5% từ $50, +10% từ $100 và +15% từ $200. Thanh toán bằng thẻ (Visa, Mastercard, Apple Pay, Google Pay) hoặc tiền mã hóa (USDT trên TRC20, USDC trên Base). Trang giá cả có bảng giá hiện tại.
Về dữ liệu: các prompt không được sử dụng để huấn luyện. Đọc chính sách bảo mật để biết toàn bộ nội dung. Bạn vẫn chịu trách nhiệm về những gì bạn xây dựng bằng mô hình, và dịch vụ này chỉ dành cho mục đích người trưởng thành hợp pháp.
