Base URL và Xác thực
Kết nối với API tương thích OpenAI bằng cách cập nhật cấu hình máy khách của bạn để trỏ đến https://api.openaicompatibleapiendpoints.com/v1. Bạn cần một khóa API hợp lệ được gửi trong Authorization header dưới dạng mã Bearer. Cấu hình này hoạt động với các SDK chính thức của OpenAI và bất kỳ thư viện khách hàng tương thích nào. Không cần cấu hình cổng phức tạp.
curl https://api.openaicompatibleapiendpoints.com/v1/chat/completions \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "uncensored",
"messages": [{"role": "user", "content": "Return 500 status code"}]
}'Mỗi yêu cầu phải bao gồm khóa duy nhất của bạn. Nếu khóa bị thiếu hoặc không hợp lệ, máy chủ sẽ trả về lỗi 401 ngay lập tức. Điều này đảm bảo các lệnh gọi của bạn đến đúng LLM không kiểm duyệt mà không có độ trễ định tuyến.
Endpoint Hoàn thành Trò chuyện
Gửi tin nhắn đến POST /v1/chat/completions endpoint để nhận phản hồi văn bản từ uncensored model. Điểm cuối này xử lý các lượt trò chuyện đối thoại tiêu chuẩn và hỗ trợ cửa sổ ngữ cảnh lên đến 100.000 token. Bạn có thể đặt mức đầu ra tối đa là 16.000 token cho mỗi yêu cầu. Mô hình trả lời mà không có từ chối nội dung cho các chủ đề người lớn hợp pháp.
from openai import OpenAI
client = OpenAI(base_url="https://api.openaicompatibleapiendpoints.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)Sử dụng tiêu chuẩn messages định dạng mảng. API bỏ qua các trường bổ sung mà nó không nhận biết, giúp việc di chuyển dễ dàng. Bạn chỉ trả tiền cho các token thực sự được mô hình sử dụng.
Phản hồi luồng
Bật phân phối token thời gian thực bằng cách đặt stream: true trong yêu cầu của bạn. Máy chủ gửi một loạt Server-Sent Events (SSE) cho đến khi phản hồi hoàn tất. Thống kê sử dụng token xuất hiện trong chunk cuối cùng của luồng. Điều này giảm độ trễ cảm nhận cho người dùng đang chờ các câu trả lời dài.
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)Đệm các token đến ở phía máy khách để tái tạo văn bản đầy đủ. Lỗi trong quá trình streaming là hiếm nhưng nên được xử lý bằng cách kiểm tra sự kiện cuối cùng để lấy mã lỗi. Luồng sẽ tự động dừng khi giới hạn ngữ cảnh hoặc số token tối đa được đạt tới.
Chế độ JSON và công cụ
Buộc đầu ra có cấu trúc bằng cách đặt response_format để {"type": "json_object"}. Điều này đảm bảo mô hình trả về JSON thay vì văn bản markdown. Bạn cũng có thể sử dụng tools tham số cho gọi hàm. API hỗ trợ tool_choice để kiểm soát chính xác các hàm mà mô hình sẽ gọi.
Sử dụng temperature và top_p để điều chỉnh độ ngẫu nhiên. Đặt seed để có kết quả có thể tái lập trong quá trình gỡ lỗi. Các tham số này hoạt động chính xác như mong đợi trong các tích hợp tương thích OpenAI tiêu chuẩn.
Xử lý lỗi và Giới hạn
Xử lý các lỗi HTTP tiêu chuẩn để quản lý các lỗi phía máy khách một cách gracefully. Mã trạng thái 401 có nghĩa là khóa API của bạn không hợp lệ. Mã trạng thái 402 cho biết tín dụng trả trước của bạn đã hết. Lỗi 429 báo hiệu rằng bạn đã vượt quá giới hạn 300 yêu cầu mỗi phút.
Mỗi khóa cho phép tám yêu cầu đồng thời. Thân yêu cầu được giới hạn ở 8 MB. Không hoàn tiền cho tín dụng đã sử dụng, nhưng các lỗi trong quá trình xử lý là miễn phí. Luôn kiểm tra error object trong phản hồi JSON để biết chi tiết.
Cửa sổ ngữ cảnh và chi tiết mô hình
Mô hình hỗ trợ cửa sổ ngữ cảnh 100,000 token cho cả prompt và completion kết hợp. Điều này cho phép duy trì ngữ cảnh sâu cho các tài liệu dài hoặc các cuộc hội thoại kéo dài. Lượng đầu ra tối đa mặc định là 2,048 token nếu bạn không chỉ định max_tokens. Bạn có thể tăng giới hạn này lên 16,000 token mỗi yêu cầu.
Mô hình không phải là GPT, Claude hay bất kỳ mô hình của nhà cung cấp nào khác. Đây là một mô hình trọng lượng mở được tinh chỉnh cho các phản hồi không kiểm duyệt. Không có dữ liệu từ lời nhắc của bạn được sử dụng để huấn luyện. Điều này đảm bảo quyền riêng tư cho dữ liệu độc quyền của bạn.
Node.js
import OpenAI from "openai";
const client = new OpenAI({ baseURL: "https://api.openaicompatibleapiendpoints.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);