OpenAI Chat Completions
Sử dụng endpoint OpenAI Chat Completions để tạo văn bản dựa trên tin nhắn.
POST https://getrouter.ai/v1/chat/completions
Yêu cầu cơ bản
curl https://getrouter.ai/v1/chat/completions \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MODEL_ID",
"messages": [
{"role": "system", "content": "Answer clearly and concisely."},
{"role": "user", "content": "What is an API gateway?"}
]
}'
Phản hồi không streaming chứa nội dung được tạo tại:
choices[0].message.content
Số token đã dùng, nếu được model báo cáo, sẽ nằm trong đối tượng usage.
Python
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://getrouter.ai/v1",
)
response = client.chat.completions.create(
model="MODEL_ID",
messages=[
{"role": "system", "content": "Answer clearly and concisely."},
{"role": "user", "content": "What is an API gateway?"},
],
)
print(response.choices[0].message.content)
Node.js / TypeScript
import OpenAI from 'openai'
const client = new OpenAI({
apiKey: 'YOUR_API_KEY',
baseURL: 'https://getrouter.ai/v1',
})
const response = await client.chat.completions.create({
model: 'MODEL_ID',
messages: [
{ role: 'system', content: 'Answer clearly and concisely.' },
{ role: 'user', content: 'What is an API gateway?' },
],
})
console.log(response.choices[0]?.message.content)
Vai trò của tin nhắn
Lược đồ API hỗ trợ các vai trò sau:
Các trường yêu cầu thường dùng
Không gửi các trường tùy chọn nếu model bạn chọn không hỗ trợ.
Đầu vào đa phương thức
Lược đồ nội dung tin nhắn hỗ trợ các phần nội dung có kiểu, chẳng hạn như văn bản, URL hình ảnh, âm thanh đầu vào, tệp và URL video. Khả năng sử dụng phụ thuộc vào model.
Ví dụ về đầu vào hình ảnh:
{
"model": "MODEL_ID",
"messages": [
{
"role": "user",
"content": [
{"type": "text", "text": "Describe this image."},
{
"type": "image_url",
"image_url": {"url": "https://example.com/image.jpg"}
}
]
}
]
}
Gọi công cụ
Khi model tương thích trả về tool_calls, hãy thực thi hàm được yêu cầu trong ứng dụng của bạn rồi thêm một tin nhắn tool có tool_call_id tương ứng. Khả năng hỗ trợ công cụ và hành vi cụ thể phụ thuộc vào model.
Streaming
Đặt stream thành true và đọc văn bản từ choices[0].delta.content trong từng chunk. Xem Streaming để biết các ví dụ đầy đủ.
Lỗi
400 — trường yêu cầu không hợp lệ hoặc giá trị không được hỗ trợ
401 — thiếu khóa API hoặc khóa API không hợp lệ
429 — bị giới hạn tốc độ, hạn mức hoặc dung lượng xử lý
- Lỗi model — model ID không đúng hoặc endpoint không khớp
Bước tiếp theo