Tài liệu API Hop
Hoàn thành hội thoại chung
API hội thoại thống nhất để chuyển mô hình văn bản qua tham số model. Định dạng yêu cầu tương thích với OpenAI Chat Completions.
https://api.apihop.ai/v1/chat-completionsAPI hội thoại thống nhất để chuyển mô hình văn bản qua tham số model. Định dạng yêu cầu tương thích với OpenAI Chat Completions.
Claude Sonnet 4.6 (claude-sonnet-4-6) được nhà cung cấp thượng nguồn hỗ trợ nhưng hiện chưa công bố trên API Hop. Đây không phải lựa chọn tích hợp mặc định đang hoạt động. Trước khi gọi bất kỳ mô hình nào, xác nhận quyền truy cập bằng phản hồi GET https://api.apihop.ai/v1/models của chính bạn.
Điểm cuối này mặc định trả một phản hồi JSON hoàn chỉnh. Đặt rõ stream: true khi cần truyền luồng SSE.
POST https://api.apihop.ai/v1/chat-completionsXác thực
Mọi yêu cầu cần xác thực Bearer Token.
Authorization: Bearer YOUR_API_KEYNếu xác thực thất bại, kiểm tra:
- Khóa API có đúng không
- Khóa có hợp lệ với URL cơ sở API này không
- Tiêu đề yêu cầu có đúng chính tả không
- Proxy có ghi lại tiêu đề xác thực không
Thân yêu cầu
modelstringbắt buộcMặc định: gpt-5.4ID mô hình văn bản trong tài liệu (xác nhận quyền truy cập bằng GET https://api.apihop.ai/v1/models):
- OpenAI:
gpt-5.4,gpt-5.5,gpt-5.6-sol,gpt-5.6-terra,gpt-6-astra - Anthropic:
claude-fable-5,claude-fable-5-1,claude-opus-4-6,claude-opus-4-7,claude-opus-4-8,claude-opus-5,claude-opus-5-5,claude-sonnet-5,claude-sonnet-5-5 - DeepSeek:
deepseek-v4-flash,deepseek-v4-pro,deepseek-v4.1-flash
(V4.1 Flash là ID mô hình riêng, chỉ khả dụng sau khi triển khai và bật; kiểm tra GET https://api.apihop.ai/v1/models).
- Gemini:
gemini-3.6-flash,gemini-3.7-flash,gemini-3.8-flash,gemini-3.5-flash-lite,gemini-4-argon(sau khi triển khai và bật) - Kimi:
kimi-k3 - MiniMax:
minimax-m3
Xem Danh mục mô hình để có danh sách đầy đủ và mô hình hiển thị với khóa API hiện tại. Dùng phản hồi GET https://api.apihop.ai/v1/models của chính bạn làm nguồn xác nhận khả dụng hiện tại. Xem hướng dẫn DeepSeek, Gemini, Kimi và MiniMax để có lưu ý lựa chọn và ví dụ riêng cho từng họ.
messagesobject[]bắt buộcTin nhắn hội thoại. Mỗi tin nhắn cần có:
role:system,userhoặcassistantcontent: nội dung tin nhắn
Ví dụ:
[
{"role": "system", "content": "You are a helpful Python tutor."},
{"role": "user", "content": "How should I learn programming?"}
]Giới hạn lấy mẫu riêng của mô hình: gpt-6-astra không chấp nhận các trường cũ temperature, top_p hoặc top_logprobs; bỏ các trường này ngay cả khi máy khách cũ gửi chúng. Playground GPT-6 Astra của API Hop cũng ẩn điều khiển lấy mẫu và phạt cũ. claude-sonnet-5 đã từ chối top_p trong lần kiểm tra tích hợp lại được ghi nhận, nên cũng bỏ trường này cho mô hình đó. Chuyển tiếp trường tùy chọn qua proxy không xác nhận mô hình thượng nguồn được chọn hỗ trợ nó.
temperaturenumberMặc định: 1.0Nhiệt độ lấy mẫu. Máy khách tương thích OpenAI thường dùng từ 0 đến 2, nhưng mô hình được chọn quyết định xác thực cuối cùng.
max_tokensintegerSố token đầu ra tối đa tùy chọn, là số nguyên dương. Bỏ trường này để dùng mặc định thượng nguồn cho mô hình được chọn; mặc định và giới hạn tối đa thay đổi theo mô hình và cấu hình thượng nguồn.
Tùy mô hình, ngân sách có thể gồm token suy luận và văn bản cuối cùng. Ngân sách nhỏ có thể gây finish_reason: "length", cắt câu trả lời hoặc cạn trước văn bản cuối cùng. Tăng ngân sách có thể tăng chi phí.
max_completion_tokensintegerLựa chọn tương thích thay cho max_tokens, với cùng lưu ý ngân sách. Mô hình có thể chỉ chấp nhận một trong hai trường, nên bắt đầu bằng thân tối giản khi chuyển mô hình. Bỏ cả hai để dùng mặc định thượng nguồn.
streambooleanMặc định: falseCó truyền luồng phản hồi hay không.
true: trả Server-Sent Eventsfalse: trả một phản hồi hoàn chỉnh
top_pnumberMặc định: 1.0Tham số lấy mẫu nucleus. Máy khách tương thích OpenAI thường dùng từ 0 đến 1; mô hình được chọn thực hiện xác thực cuối cùng.
frequency_penaltynumberMặc định: 0Mức phạt tần suất. Máy khách tương thích OpenAI thường dùng từ -2.0 đến 2.0; mô hình được chọn thực hiện xác thực cuối cùng.
presence_penaltynumberMặc định: 0Mức phạt hiện diện. Máy khách tương thích OpenAI thường dùng từ -2.0 đến 2.0; mô hình được chọn thực hiện xác thực cuối cùng.
stopstring | arrayChuỗi dừng hoặc mảng chuỗi dừng. Mô hình được chọn quyết định số lượng và hành vi được chấp nhận.
nintegerMặc định: 1Số phản hồi cần tạo. Dùng số như 1, không dùng chuỗi trong dấu nháy.
Khác biệt tham số mô hình
Các mô hình văn bản hiện tại hỗ trợ yêu cầu Chat tối giản có hoặc không truyền luồng, nhưng việc chấp nhận và tác dụng của tham số tùy chọn thay đổi theo mô hình được chọn và cách triển khai tương thích.
Lần kiểm tra lại gần nhất ngày 2026-09-26 chấp nhận claude-fable-5 với temperature: 0 và trả văn bản. Cùng lần kiểm tra từ chối claude-sonnet-5 với top_p: 0.9, trả HTTP 400 và top_p is deprecated. Bỏ top_p cho mô hình đó. Việc chấp nhận không xác nhận tác dụng lên lấy mẫu, cũng không bảo đảm cho mô hình khác hoặc yêu cầu sau; đừng giả định mọi tham số lấy mẫu đều được hỗ trợ.
Kiểm tra OpenAI ngày 2026-09-26 chấp nhận stop cho gpt-5.6-sol và gpt-5.6-terra. Việc chấp nhận tham số có thể thay đổi theo thượng nguồn và không chứng minh chuỗi dừng có tác dụng.
Chuyển tiếp Chat tương thích OpenAI nguyên bản giữ top_p và stop trong yêu cầu thượng nguồn. Tuyến chuyển Chat sang Responses giữ top_p nhưng không chuyển tiếp stop. Chuyển tiếp trường không xác nhận hỗ trợ hoặc tác dụng ở thượng nguồn; không trường nào được bảo đảm trên mọi tuyến của nền tảng.
Bắt đầu bằng yêu cầu tối giản khi chuyển mô hình, rồi kiểm tra riêng lấy mẫu, chuỗi dừng và tham số công cụ nâng cao. Với chuỗi dừng, kiểm tra văn bản thực tế và lý do dừng, không chỉ trạng thái HTTP. HTTP 200 không xác nhận tác dụng lấy mẫu. Ngân sách đầu ra phải đủ cho cả suy nghĩ và văn bản cuối cùng của mô hình.
Ví dụ yêu cầu
{
"model": "gpt-5.4",
"messages": [
{
"role": "user",
"content": "Hello, introduce yourself briefly."
}
],
"stream": false
}Phản hồi
idstringMã định danh phản hồi duy nhất.
objectstringLoại đối tượng, thường là chat.completion hoặc chat.completion.chunk khi truyền luồng.
createdintegerDấu thời gian tạo Unix.
modelstringMã định danh mô hình trả trong phản hồi.
choicesarrayCác lựa chọn được tạo, gồm nội dung tin nhắn, chỉ số và lý do kết thúc.
usageobjectThống kê sử dụng token.
Ví dụ thành công
{
"id": "chatcmpl-9876543210",
"object": "chat.completion",
"created": 1677652288,
"model": "gpt-5.4",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "I am an AI assistant that can help with writing, coding, and analysis."
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 28,
"completion_tokens": 42,
"total_tokens": 70
}
}Phản hồi lỗi
Xem Mã lỗi và khắc phục để có tham chiếu mã đầy đủ, khác biệt giao thức và bước chẩn đoán.
Lỗi HTTP Chat Completions dùng thân JSON phẳng, gồm lỗi HTTP thượng nguồn trả trước khi luồng SSE bắt đầu. Ví dụ, HTTP 402 trả:
{
"code": 40000,
"message": "Insufficient credit. Required: 30000, Available: 20000",
"type": "api_error"
}code: mã lỗi nền tảng dạng số, tách biệt trạng thái HTTP và không phải chuỗimessage: mô tả lỗi dễ đọctype:api_errorrequestId: mã định danh yêu cầu tùy chọn để khắc phục
| Trạng thái HTTP | code | Ý nghĩa |
|---|---|---|
| 400 | 10000 | Yêu cầu không hợp lệ |
| 401 | 20000 | Thiếu xác thực hoặc xác thực không hợp lệ |
| 402 | 40000 | Thiếu tín dụng |
| 403 | 20001 | Truy cập bị từ chối hoặc mô hình không khả dụng cho khóa này |
| 404 | 30000 | Không tìm thấy mô hình hoặc tài nguyên |
| 409 | 30001 | Xung đột yêu cầu |
| 422 | 10001 | Lỗi xác thực dữ liệu |
| 429 | 40001 | Vượt giới hạn tốc độ |
| 500 | 50003 | Lỗi nội bộ |
| 502 | 50000 | Lỗi nhà cung cấp thượng nguồn |
| 503 | 50001 | Dịch vụ không khả dụng |
| 504 | 50002 | Cổng hết thời gian |
Kiểm tra trạng thái HTTP trước để xác định yêu cầu thành công hay không, rồi so sánh code dạng số để xử lý riêng cho ứng dụng. Không so sánh code với chuỗi như "400", giả định nó bằng trạng thái HTTP hoặc phân tích message như mã định danh lỗi ổn định. messages thiếu hoặc sai kiểu bị từ chối với HTTP 400 và code: 10000 trước khi gọi nhà cung cấp.
Định dạng lỗi này áp dụng cho phản hồi HTTP Chat Completions, không áp dụng cho lỗi trong luồng SSE đã bắt đầu hoặc giao thức API khác. Danh mục mô hình và điểm cuối giao thức nguyên bản có định dạng lỗi riêng được mô tả.