vi ▾
Lấy khóa của bạn

Tài liệu API OpenRouter

Kết nối ứng dụng của bạn với LLM không kiểm duyệt của chúng tôi bằng giao diện tương thích OpenAI tiêu chuẩn. Hướng dẫn này bao gồm xác thực, định dạng yêu cầu và streaming để tích hợp nhanh chóng.

Bắt đầu nhanh: Kết nối với Python

Bắt đầu bằng cách cài đặt SDK chính thức và trỏ nó vào URL cơ sở của chúng tôi.

API của chúng tôi hoạt động giống như giao diện OpenAI tiêu chuẩn nhưng định tuyến đến một mô hình không kiểm duyệt duy nhất. Cách tiếp cận này loại bỏ độ phức tạp của proxy trong khi vẫn giữ cho mã của bạn di động.

  • Cài đặt thư viện qua pip.
  • Thiết lập khóa API của bạn trong môi trường.
  • Định nghĩa URL cơ sở cho điểm cuối của chúng tôi.
from openai import OpenAI

client = OpenAI(base_url="https://api.apiopenrouter.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)

Thay thế khóa giữ chỗ bằng thông tin xác thực của riêng bạn. Bạn có thể gửi các lời nhắc đơn giản hoặc dữ liệu có cấu trúc phức tạp.

Xác thực và Keys

Tạo một khóa trên bảng điều khiển và truyền nó trong header Authorization.

Mỗi tài khoản hỗ trợ một khóa hoạt động tại một thời điểm. Khi bạn tạo khóa mới, khóa cũ sẽ ngừng hoạt động ngay lập tức. Điều này đơn giản hóa việc quản lý bảo mật mà không yêu cầu logic xoay đổi phức tạp.

curl https://api.apiopenrouter.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "List the top 5 dependencies for a Go web server"}]
  }'

Yêu cầu ở trên sử dụng lược đồ Bearer. Đảm bảo khóa của bạn bắt đầu bằng sk- và không chứa khoảng trắng thừa.

Endpoint Hoàn thành Trò chuyện

Gửi tin nhắn đến /v1/chat/completions endpoint sử dụng JSON tiêu chuẩn.

Mô hình chấp nhận user và assistant vai trò. Bạn có thể cấu hình nhiệt độ, top-p và các chuỗi dừng để kiểm soát phong cách đầu ra. Phản hồi trả lại mức sử dụng token trong chunk cuối cùng nếu phát trực tiếp được bật.

import OpenAI from "openai";

const client = new OpenAI({ baseURL: "https://api.apiopenrouter.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);

Đặt max_tokens để kiểm soát độ dài đầu ra. Nếu bỏ qua, giá trị mặc định là 2,048 token. Mô hình hỗ trợ tối đa 16,000 token cho mỗi yêu cầu.

Phản hồi luồng

Bật phát trực tiếp bằng cách đặt stream: true trong thân yêu cầu của bạn.

Chi tiết sử dụng token chỉ xuất hiện trong chunk cuối cùng của luồng. Điều này cho phép cập nhật giao diện người dùng theo thời gian thực trong khi vẫn bảo toàn dữ liệu tính phí chính xác. Lỗi trong quá trình streaming vẫn báo cáo việc sử dụng cho các token đã tính phí.

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)

Xử lý gracefully các phản hồi từng phần. Luồng đóng bình thường khi mô hình hoàn tất quá trình tạo hoặc đạt giới hạn ngữ cảnh.

Gọi hàm & Chế độ JSON

Sử dụng response_format: {type: "json_object"} cho các đầu ra JSON nghiêm ngặt.

Định nghĩa các công cụ trong tools mảng và đặt tool_choice để bắt buộc gọi hàm. Mô hình trả về dữ liệu có cấu trúc phù hợp cho việc xử lý bằng chương trình. Điều này hoạt động đáng tin cậy với các trọng lượng không kiểm duyệt của chúng tôi.

curl https://api.apiopenrouter.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "List the top 5 dependencies for a Go web server"}]
  }'

Kết hợp gọi hàm với streaming cho các trải nghiệm tương tác. Xác thực đầu ra JSON trước khi chuyển nó cho logic ứng dụng của bạn.

Giới hạn và Hạn ngạch

Theo dõi mức sử dụng dựa trên các giới hạn trên mỗi khóa để tránh gián đoạn.

Mỗi khóa cho phép 300 yêu cầu mỗi phút và 8 yêu cầu đồng thời. Giới hạn kích thước thân yêu cầu là 8 MB. Nếu bạn vượt quá các giới hạn này, API sẽ trả về mã trạng thái 429. Lỗi xác thực trả về 401, và không đủ tín dụng trả về 402.

curl https://api.apiopenrouter.com/v1/chat/completions \
  -H "Authorization: Bearer $API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "uncensored",
    "messages": [{"role": "user", "content": "List the top 5 dependencies for a Go web server"}]
  }'

Kích thước cửa sổ ngữ cảnh là 100.000 token tổng cộng. Lỗi không tiêu thụ tín dụng. Việc từ chối do vi phạm nội dung nhỏ cũng miễn phí.

Các câu hỏi thường gặp

API OpenRouter khác với OpenAI tiêu chuẩn như thế nào?

API của chúng tôi sử dụng một mô hình không kiểm duyệt được tối ưu hóa cho nội dung người trưởng thành hợp pháp và sáng tạo mà không có sự từ chối. Nó duy trì cùng cấu trúc yêu cầu và phản hồi như OpenAI, cho phép bạn thay đổi điểm cuối mà không cần thay đổi mã của mình.

Điều gì xảy ra nếu hết hạn mức tín dụng?

Yêu cầu thất bại với lỗi 402 khi số dư trả trước của bạn bằng không. Tín dụng không bao giờ hết hạn, vì vậy bạn có thể nạp tiền bằng tiền điện tử bất cứ lúc nào. Lỗi và từ chối không tiêu thụ số dư của bạn.

Tôi có thể sử dụng nhiều khóa cho các dự án khác nhau không?

Mỗi tài khoản hỗ trợ một khóa hoạt động. Tạo khóa mới sẽ tự động vô hiệu hóa khóa trước đó. Bạn có thể tạo khóa mới ngay lập tức từ bảng điều khiển mà không mất lịch sử thanh toán của mình.

Truy xuất khóa API của bạn

Đăng ký, sao chép mã thông báo và cập nhật URL cơ sở của bạn. Đó là toàn bộ cấu hình.

Lấy khóa của bạn