Hướng dẫn nhanh cho người dùng OpenRouter NSFW
Tích hợp API LLM không kiểm duyệt của chúng tôi vào cơ sở mã hiện có của bạn bằng cách cập nhật base URL và khóa API. Hướng dẫn này bao gồm các endpoint tương thích OpenAI tiêu chuẩn, truyền phát và xử lý ràng buộc cho việc sử dụng trực tiếp của nhà phát triển.
URL cơ bản và Xác thực
Thay thế base URL của nhà cung cấp hiện tại bằng https://api.openrouternsfw.com/v1. Xác thực sử dụng tiêu đề Authorization: Bearer <key> tiêu chuẩn. Bạn nhận được khóa ngay sau khi đăng nhập qua Google hoặc email trên trang Lấy khóa API. Không cần số điện thoại và khóa chỉ hiển thị một lần, nên hãy sao chép trước khi rời trang.
Dịch vụ của chúng tôi là một API độc lập, không phải là nhà bán lại các mô hình của các nhà cung cấp khác. Mã định danh mô hình bạn gửi trong yêu cầu là uncensored, chạy trên máy chủ riêng của chúng tôi. Nó được tinh chỉ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 nó không phải là mô hình GPT, Claude hoặc bất kỳ mô hình nhà cung cấp có tên nào khác.
Đảm bảo thư viện client của bạn được cấu hình để sử dụng URL cơ sở mới này. Tất cả yêu cầu phải bao gồm khóa API hợp lệ trong tiêu đề. Nếu khóa bị thiếu hoặc không hợp lệ, máy chủ sẽ trả về lỗi 401. Nếu bạn không có tín dụng trả trước, bạn sẽ nhận được lỗi 402. Đây là các mã trạng thái HTTP tiêu chuẩn cho biết các vấn đề về xác thực hoặc thanh toán, không phải lỗi máy chủ.
Endpoint Chat Completions
Chức năng cốt lõi được cung cấp qua POST /v1/chat/completions endpoint. Endpoint này chấp nhận một JSON body chứa tên mô hình, mảng messages và các tham số tùy chọn. Nó trả về một JSON object với văn bản được tạo ra, thống kê sử dụng token và lý do kết thúc. Cấu trúc này tương thích với các SDK chính thức của OpenAI và hầu hết các thư viện client tương thích OpenAI.
Bạn không cần viết các client HTTP tùy chỉnh nếu bạn thích sử dụng SDK. Tuy nhiên, bạn phải cập nhật cấu hình để trỏ đến base URL của chúng tôi. Ví dụ sau đây minh họa một yêu cầu hoàn tất tiêu chuẩn bằng cURL. Yêu cầu này gửi một prompt đến mô hình không kiểm duyệt và mong đợi một phản hồi văn bản.
curl https://api.openrouternsfw.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Write a blunt product review of a cheap VPN."}]
}'Hãy nhớ rằng API này chỉ phục vụ văn bản. Không có endpoint embedding, tạo hình ảnh, âm thanh hoặc video. Nếu ứng dụng của bạn yêu cầu đầu vào hoặc đầu ra đa phương tiện, bạn sẽ cần xử lý những phần đó riêng biệt. Dịch vụ của chúng tôi tập trung hoàn toàn vào việc tạo văn bản chất lượng cao với mô hình không kiểm duyệt.
Tích hợp SDK Python
Sử dụng SDK Python giúp đơn giản hóa quá trình tích hợp. Khởi tạo client với base URL chính xác và khóa API của bạn. Thư viện xử lý các yêu cầu HTTP và phân tích JSON cho bạn. Bạn có thể chỉ định ID mô hình là uncensored để đảm bảo bạn đang sử dụng mô hình cụ thể của chúng tôi.
from openai import OpenAI
client = OpenAI(base_url="https://api.openrouternsfw.com/v1", api_key="YOUR_KEY")
resp = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Summarise this thread without softening it."}],
)
print(resp.choices[0].message.content)Đoạn mã này minh họa cách gửi một tin nhắn và lấy phản hồi. Client tự động xử lý kết nối và báo cáo lỗi. Nếu máy chủ trả về lỗi, SDK sẽ ném ra một ngoại lệ. Bạn nên xử lý các ngoại lệ này trong logic ứng dụng của mình để cung cấp trải nghiệm người dùng tốt hơn.
SDK Python chỉ là một tùy chọn. Bạn có thể sử dụng bất kỳ ngôn ngữ nào hỗ trợ yêu cầu HTTP. Cấu trúc endpoint vẫn giữ nguyên bất kể client bạn chọn. Sự linh hoạt này cho phép bạn tích hợp mô hình không kiểm duyệt vào bất kỳ quy trình làm việc hiện có nào mà không cần thay đổi mã đáng kể.
Sử dụng SDK Node.js
SDK Node hoạt động tương tự như phiên bản Python. Cấu hình client với base URL và khóa API, sau đó gọi phương thức hoàn tất trò chuyện. Cách tiếp cận này lý tưởng cho các ứng dụng phía máy chủ hoặc dịch vụ backend cần tạo văn bản không đồng bộ.
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.openrouternsfw.com/v1", apiKey: process.env.API_KEY });
const resp = await client.chat.completions.create({
model: "uncensored",
messages: [{ role: "user", content: "Draft a villain monologue for my game." }],
});
console.log(resp.choices[0].message.content);Các nhà phát triển Node.js có thể dễ dàng tích hợp API này vào các dự án hiện có của họ. SDK xử lý việc tuần tự hóa và giải tuần tự hóa dữ liệu JSON. Bạn cũng có thể chỉ định các tham số bổ sung như temperature hoặc top_p để kiểm soát độ ngẫu nhiên của đầu ra.
Hãy đảm bảo xử lý đúng bản chất không đồng bộ của các yêu cầu. Sử dụng async/await hoặc chuỗi Promise để quản lý dữ liệu phản hồi. Điều này đảm bảo ứng dụng của bạn vẫn phản hồi trong khi chờ mô hình tạo văn bản. SDK Node là một lựa chọn đáng tin cậy để xây dựng các dịch vụ tạo văn bản có thể mở rộng.
Phản hồi truyền phát
Bật truyền phát bằng cách đặt tham số stream thành true trong yêu cầu của bạn. Máy chủ sẽ gửi một chuỗi các Sự kiện do Máy chủ Gửi (SSE) thay vì một phản hồi JSON duy nhất. Mỗi sự kiện chứa một phần nhỏ văn bản được tạo.
stream = client.chat.completions.create(
model="uncensored",
messages=[{"role": "user", "content": "Tell the story in second person."}],
stream=True,
)
for chunk in stream:
if chunk.choices and chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)Truyền phát hữu ích cho các ứng dụng thời gian thực nơi bạn muốn hiển thị đầu ra khi nó được tạo. Chunk cuối cùng của luồng chứa tổng số token được sử dụng cho yêu cầu. Điều này cho phép bạn theo dõi chi phí chính xác mà không cần chờ phản hồi hoàn tất.
Xử lý các sự kiện luồng cẩn thận để đảm bảo văn bản được lắp ráp chính xác. Nối các chunk theo thứ tự chúng được nhận. Máy chủ đảm bảo rằng các chunk được gửi theo thứ tự. Nếu kết nối bị gián đoạn, bạn có thể cần thử lại yêu cầu. Truyền phát là một tính năng mạnh mẽ nâng cao trải nghiệm người dùng cho các nhiệm vụ tạo văn bản.
Giới hạn tốc độ và cửa sổ ngữ cảnh
Mỗi khóa API được giới hạn ở 300 yêu cầu mỗi phút và 8 yêu cầu đồng thời. Kích thước body của yêu cầu được giới hạn ở 8 MB. Nếu bạn vượt quá các giới hạn này, máy chủ sẽ trả về mã trạng thái 429. Đây là mã trạng thái HTTP tiêu chuẩn cho biết bạn đã gửi quá nhiều yêu cầu trong một khoảng thời gian nhất định. Bạn nên triển khai cơ chế backoff theo cấp số nhân trong client của mình để xử lý các lỗi này một cách mượt mà.
Cửa sổ ngữ cảnh hỗ trợ lên đến 100,000 token cho prompt và phần hoàn thành kết hợp. Không có giới hạn đầu ra riêng biệt. Nếu bạn không chỉ định tham số max_tokens, phản hồi có thể chạy đến hết cửa sổ. Bạn có thể giới hạn độ dài đầu ra bằng cách đặt max_tokens thành giá trị thấp hơn.
Theo dõi việc sử dụng token của bạn để quản lý tín dụng trả trước của mình một cách hiệu quả. Lỗi và từ chối không tiêu thụ token, vì vậy bạn không phải trả tiền cho các yêu cầu thất bại. Điều này đảm bảo bạn chỉ trả tiền cho việc tạo văn bản thành công. Hãy theo dõi các giới hạn tốc độ của bạn để tránh gián đoạn dịch vụ.
Thông số kỹ thuật
Toàn bộ giới hạn và tính năng thực tế của API ở một nơi — hãy kiểm tra trước khi nạp tiền.
| Mục | Giá trị |
|---|---|
| Định dạng | tương thích OpenAI: mọi SDK OpenAI đều chạy được, chỉ cần đổi base URL và khóa |
| Xác thực | Authorization: Bearer YOUR_KEY |
| Endpoint | POST /v1/chat/completions · GET /v1/models |
| Base URL | https://api.openrouternsfw.com/v1 |
| ID mô hình | uncensored |
| Chế độ JSON | response_format: {"type": "json_object"} |
| Đầu ra tối đa | tối đa phần còn lại của cửa sổ 100.000 token; max_tokens tùy chọn (không giới hạn riêng) |
| Cửa sổ ngữ cảnh | 100.000 token (đầu vào + đầu ra) |
| Tham số | temperature, top_p, stop, seed, presence_penalty, frequency_penalty |
| Gọi hàm | có — tools, tool_choice; phản hồi có tool_calls, kể cả khi streaming; kết quả gửi lại bằng role: tool |
| Streaming | có — server-sent events; phần cuối chứa lượng token đã dùng |
| Header phản hồi | X-Request-Id, X-Balance-USD, X-RateLimit-Limit-Requests, X-RateLimit-Limit-Concurrency |
| Kích thước yêu cầu | tối đa 8 MB |
| Yêu cầu đồng thời | tối đa 8 cùng lúc cho mỗi khóa |
| Giới hạn tốc độ | 300 yêu cầu mỗi phút cho mỗi khóa |
| Nạp tiền | USDT (TRC20) hoặc USDC (Base), số tiền nguyên bất kỳ từ $20 đến $500 |
| Thời hạn | tín dụng đã trả không hết hạn, không đăng ký định kỳ |
| Tính phí | tín dụng trả trước theo mức dùng thực tế; lỗi và từ chối miễn phí |
| Dùng thử miễn phí | $0,50 trong 7 ngày, không cần thẻ · Khóa dùng thử: 2 yêu cầu song song, 60 yêu cầu/phút; hạn mức đầy đủ (8 và 300) sau lần nạp đầu |
| Thưởng | +5% từ $50, +10% từ $100, +15% từ $200 |
| Giá | $0,15 cho 1 triệu token đầu vào · $0,50 cho 1 triệu token đầu ra |
| Nội dung | cho phép nội dung người lớn; từ chối nội dung tình dục liên quan đến trẻ vị thành niên |
| Đăng nhập | Google hoặc email và mật khẩu |
| Khóa | mỗi tài khoản một khóa đang hoạt động; khóa mới thay thế khóa cũ |
Mã lỗi
Lỗi trả về dạng JSON với type cố định; yêu cầu lỗi hoặc bị từ chối không bị tính phí.
| Mã | Loại | Ý nghĩa |
|---|---|---|
400 | bad_request | JSON sai, tin nhắn trống, tham số sai hoặc vượt cửa sổ ngữ cảnh |
401 | missing_key · invalid_key · key_revoked | thiếu khóa, sai khóa hoặc khóa đã bị thay |
402 | no_credit | hết tín dụng — nạp tiền là dùng tiếp ngay |
403 | content_blocked | nội dung tình dục liên quan trẻ vị thành niên — từ chối, không tính phí |
404 | not_found | endpoint không tồn tại |
413 | request_too_large | nội dung lớn hơn 8 MB |
429 | rate_limited · concurrency | vượt 300/phút hoặc 8 đồng thời — chờ rồi thử lại |
503 | upstream_busy | mô hình đang bận — thử lại sau vài giây |
Hỏi đáp
Mô hình không kiểm duyệt khác biệt thế nào so với các nhà cung cấp khác?
Mô hình của chúng tôi là mô hình trọng số mở chạy trên máy chủ riêng, được tinh chỉ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. Nó không phải là GPT, Claude, Gemini, Grok, DeepSeek, Qwen, Llama hoặc mô hình của nhà cung cấp nào khác. Chúng tôi không định tuyến giữa các nhà cung cấp; chúng tôi cung cấp một endpoint không kiểm duyệt duy nhất.
Điều gì xảy ra nếu tôi vượt quá giới hạn tốc độ?
Nếu bạn vượt quá 300 yêu cầu mỗi phút hoặc 8 yêu cầu đồng thời mỗi khóa, máy chủ sẽ trả về mã trạng thái 429. Đây là mã trạng thái HTTP tiêu chuẩn cho biết bạn đã gửi quá nhiều yêu cầu trong một khoảng thời gian nhất định. Bạn nên triển khai logic backoff trong client của mình để xử lý các lỗi này.
API có hỗ trợ gọi hàm và chế độ JSON không?
Có, API hỗ trợ gọi hàm (tools, tool_choice) và chế độ JSON (response_format json_object). Bạn cũng có thể chỉ định các tham số như temperature, top_p, stop, seed, presence_penalty và frequency_penalty để kiểm soát đầu ra.
Khóa của bạn chỉ cách một biểu mẫu
Tạo tài khoản, sao chép khóa, thay đổi URL cơ sở. Đó là toàn bộ thiết lập.
Lấy khóa API