API Hop

Tài liệu

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.

POSThttps://api.apihop.ai/v1/chat-completions

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.

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.

text
POST https://api.apihop.ai/v1/chat-completions

Xác thực

Mọi yêu cầu cần xác thực Bearer Token.

http
Authorization: Bearer YOUR_API_KEY

Nế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.4

ID 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ộc

Tin nhắn hội thoại. Mỗi tin nhắn cần có:

  • role: system, user hoặc assistant
  • content: nội dung tin nhắn

Ví dụ:

json
  [
    {"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.0

Nhiệ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_tokensinteger

Số 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_tokensinteger

Lự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: false

Có truyền luồng phản hồi hay không.

  • true: trả Server-Sent Events
  • false: trả một phản hồi hoàn chỉnh
top_pnumberMặc định: 1.0

Tham 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: 0

Mứ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: 0

Mứ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 | array

Chuỗ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: 1

Số 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

json
{
  "model": "gpt-5.4",
  "messages": [
    {
      "role": "user",
      "content": "Hello, introduce yourself briefly."
    }
  ],
  "stream": false
}

Phản hồi

idstring

Mã định danh phản hồi duy nhất.

objectstring

Loại đối tượng, thường là chat.completion hoặc chat.completion.chunk khi truyền luồng.

createdinteger

Dấu thời gian tạo Unix.

modelstring

Mã định danh mô hình trả trong phản hồi.

choicesarray

Cá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.

usageobject

Thống kê sử dụng token.

Ví dụ thành công

json
{
  "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ả:

json
{
  "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ỗi
  • message: mô tả lỗi dễ đọc
  • type: api_error
  • requestId: mã định danh yêu cầu tùy chọn để khắc phục
Trạng thái HTTPcodeÝ nghĩa
40010000Yêu cầu không hợp lệ
40120000Thiếu xác thực hoặc xác thực không hợp lệ
40240000Thiếu tín dụng
40320001Truy cập bị từ chối hoặc mô hình không khả dụng cho khóa này
40430000Không tìm thấy mô hình hoặc tài nguyên
40930001Xung đột yêu cầu
42210001Lỗi xác thực dữ liệu
42940001Vượt giới hạn tốc độ
50050003Lỗi nội bộ
50250000Lỗi nhà cung cấp thượng nguồn
50350001Dịch vụ không khả dụng
50450002Cổ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ả.