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:

Vai tròMục đích
systemHành vi hoặc ngữ cảnh cấp cao
developerChỉ dẫn của nhà phát triển dành cho các model hỗ trợ vai trò này
userĐầu vào của người dùng cuối
assistantĐầu ra trước đó của trợ lý
toolKết quả trả về cho một lần gọi công cụ

Các trường yêu cầu thường dùng

TrườngMô tả
modelModel ID bắt buộc
messagesDanh sách tin nhắn hội thoại theo thứ tự, bắt buộc
streamTrả về từng chunk khi là true
temperatureĐiều khiển quá trình lấy mẫu, nếu model được chọn hỗ trợ
top_pĐiều khiển lấy mẫu nucleus
max_tokensSố token tối đa được tạo đối với các model tương thích
max_completion_tokensGiới hạn phần hoàn tất mà các model tương thích sử dụng
toolsĐịnh nghĩa công cụ cho các model hỗ trợ gọi công cụ
tool_choiceĐiều khiển việc chọn công cụ
response_formatCấu hình phản hồi có cấu trúc cho các model tương thích
reasoning_effortlow, medium hoặc high cho các model suy luận tương thích

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 tooltool_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