API Hop

Tài liệu

Tài liệu API Hop

Phản hồi đa phương thức OpenAI

API Responses tương thích OpenAI. Điểm cuối dùng input kiểu OpenAI, hỗ trợ văn bản, URL ảnh công khai, đầu vào tệp PDF, lời gọi công cụ, tùy chọn suy luận và tham số truyền luồng.

POSThttps://api.apihop.ai/openai/responses

API Responses tương thích OpenAI. Điểm cuối dùng input kiểu OpenAI, hỗ trợ văn bản, URL ảnh công khai, đầu vào tệp PDF, lời gọi công cụ, tùy chọn suy luận và tham số truyền luồng.

text
POST https://api.apihop.ai/openai/responses

Xác thực

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

http
Authorization: Bearer YOUR_API_KEY

Thân yêu cầu

modelstringbắt buộcMặc định: gpt-5.4

Mô hình đang hoạt động có hỗ trợ Responses:

  • gpt-5.4
  • gpt-5.5
  • gpt-5.6-sol
  • gpt-5.6-terra
  • gpt-6-astra

Xem Danh mục mô hình để biết mô hình hiển thị với khóa API hiện tại.

inputstring | object[]

Nội dung đầu vào. Bắt buộc trừ khi cung cấp previous_response_id không rỗng. Bỏ cả hai trường hoặc dùng kiểu đầu vào không hợp lệ trả 400 trước khi tính phí.

Dạng được hỗ trợ:

  • Chuỗi, tương đương một đầu vào văn bản user.
  • Mảng mục đầu vào cho lịch sử hội thoại, đầu vào đa phương thức và kết quả lời gọi công cụ.

Mỗi đối tượng trong mảng đầu vào có thể chứa các trường sau:

typestring

Loại mục đầu vào.

Giá trị phổ biến:

  • message: đầu vào tin nhắn.
  • function_call_output: kết quả lời gọi công cụ hàm.
rolestring

Vai trò khi type=message.

Giá trị phổ biến:

  • developer
  • system
  • user
  • assistant
contentstring | object[]

Nội dung tin nhắn.

Dùng mảng khối nội dung cho yêu cầu đa phương thức. Khối nội dung hỗ trợ:

typestring

Loại khối nội dung.

Hiện hỗ trợ:

  • input_text
  • input_image
  • input_file
textstring

Nội dung văn bản khi type=input_text.

image_urlstring

URL ảnh công khai khi type=input_image.

Chỉ hỗ trợ URL ảnh http:// hoặc https:// truy cập công khai. Không hỗ trợ Data URL Base64 như data:image/...;base64,....

detailstringMặc định: auto

Mức chi tiết ảnh khi type=input_image.

Giá trị phổ biến:

  • auto
  • low
  • high
file_datastring

Data URL chứa nội dung tệp khi type=input_file. PDF có thể dùng data:application/pdf;base64,....

filenamestring

Tên tệp khi type=input_file.

instructionsstring

Chỉ dẫn hệ thống hoặc nhà phát triển được chèn vào ngữ cảnh mô hình.

max_output_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. 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ể 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í.

streambooleanMặc định: false

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

  • false: trả một phản hồi hoàn chỉnh
  • true: trả sự kiện SSE kiểu OpenAI Responses
temperaturenumberMặc định: 1.0

Nhiệt độ lấy mẫu, thường từ 0 đến 2.

top_pnumberMặc định: 1.0

Tham số lấy mẫu nucleus, thường từ 0 đến 1.

textobject

Cấu hình đầu ra văn bản.

text.formatobject

Cấu hình định dạng văn bản, như { "type": "text" } hoặc lược đồ JSON.

text.verbositystring

Độ chi tiết đầu ra, như low, medium hoặc high. Hỗ trợ phụ thuộc mô hình được chọn.

toolsobject[]

Định nghĩa công cụ. Khả năng truy cập phụ thuộc mô hình được chọn và tính năng hiện có.

tool_choicestring | object

Chính sách chọn công cụ.

parallel_tool_callsboolean

Có cho phép lời gọi công cụ song song hay không.

reasoningobject

Tùy chọn liên quan đến suy luận.

includestring[]

Trường bổ sung cần đưa vào phản hồi.

prompt_cache_keystring

Khóa lưu đệm prompt để tái sử dụng bộ đệm prompt.

prompt_cache_retentionstring

Chính sách giữ bộ đệm prompt. Giá trị hỗ trợ phụ thuộc mô hình được chọn và tính năng hiện có.

safety_identifierstring

Mã định danh người dùng cuối ổn định cho kiểm soát an toàn.

storeboolean

Có thể lưu trạng thái phản hồi hay không.

Khác biệt tham số mô hình

  • Chuyển tiếp Responses tương thích OpenAI nguyên bản giữ top_p trong yêu cầu thượng nguồn; xác thực và hành vi lấy mẫu phụ thuộc mô hình và thượng nguồn được chọn. Kiểm tra ngày 2026-09-26 chấp nhận top_p: 0.9 cho gpt-5.5, gpt-5.6-sol và gpt-5.6-terra. Việc chấp nhận và chuyển tiếp không chứng minh tác dụng lấy mẫu hoặc bảo đảm hỗ trợ giá trị, mô hình hay yêu cầu sau khác. Bắt đầu bằng yêu cầu tối giản.
  • Hỗ trợ trên trang này chỉ áp dụng cho điểm cuối /openai/responses thông thường. Không có nghĩa cùng mô hình hỗ trợ /openai/responses/compact, WebSocket hoặc previous_response_id có trạng thái.
  • Năm mô hình GPT bên trên hiện chưa có kênh Compact được kiểm chứng. Yêu cầu Compact bị từ chối trước khi tính phí nếu không có kênh được bật rõ ràng. Responses thông thường và Responses WebSocket vẫn khả dụng.

Ví dụ yêu cầu

Ví dụ dưới đây cung cấp input. Lần tiếp tục có thể bỏ input khi cung cấp previous_response_id hợp lệ và kênh được chọn hỗ trợ tiếp tục có trạng thái. ID phản hồi không bật năng lực đó trên kênh không hỗ trợ. Kết quả công cụ vẫn là mục đầu vào hợp lệ, gồm function_call_output.

Văn bản

json
{
  "model": "gpt-5.4",
  "input": "Hello, introduce yourself in one sentence."
}

Tham số kiểu Codex CLI

json
{
  "model": "gpt-5.5",
  "input": "Reply with READY only.",
  "reasoning": {
    "effort": "xhigh"
  },
  "store": false,
  "text": {
    "verbosity": "low"
  },
  "stream": true
}

Hiểu ảnh

json
{
  "model": "gpt-5.4",
  "input": [
    {
      "type": "message",
      "role": "user",
      "content": [
        {
          "type": "input_text",
          "text": "What is in this image?"
        },
        {
          "type": "input_image",
          "image_url": "https://example.com/cat.png",
          "detail": "high"
        }
      ]
    }
  ]
}

Đầu vào tệp

Dùng file_data cùng filename để gửi nội dung PDF. file_data phải là Data URL hoàn chỉnh.

json
{
  "model": "gpt-5.4",
  "input": [
    {
      "type": "message",
      "role": "user",
      "content": [
        {
          "type": "input_text",
          "text": "Summarize the key points in this PDF."
        },
        {
          "type": "input_file",
          "file_data": "data:application/pdf;base64,JVBERi0xLjQKJc...",
          "filename": "report.pdf"
        }
      ]
    }
  ]
}

Đầu vào ảnh và tệp

json
{
  "model": "gpt-5.4",
  "input": [
    {
      "type": "message",
      "role": "user",
      "content": [
        {
          "type": "input_text",
          "text": "Give three conclusions based on the image and attachment."
        },
        {
          "type": "input_image",
          "image_url": "https://example.com/chart.png",
          "detail": "high"
        },
        {
          "type": "input_file",
          "file_data": "data:application/pdf;base64,JVBERi0xLjQKJc...",
          "filename": "notes.pdf"
        }
      ]
    }
  ]
}

Đầu ra truyền luồng

json
{
  "model": "gpt-5.4",
  "stream": true,
  "input": [
    {
      "role": "user",
      "content": [
        {
          "type": "input_text",
          "text": "Explain this diagram step by step."
        },
        {
          "type": "input_image",
          "image_url": "https://example.com/diagram.png"
        }
      ]
    }
  ]
}

Phản hồi

Phản hồi không truyền luồng theo kiểu OpenAI Responses. Trường thực tế có thể thay đổi theo năng lực mô hình được chọn.

idstring

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

objectstring

Loại đối tượng phản hồi, thường là response.

created_atinteger

Dấu thời gian tạo.

modelstring

Mô hình thực tế được dùng.

outputobject[]

Danh sách mục đầu ra. Mục phổ biến gồm message, function_call và đầu ra liên quan công cụ.

usageobject

Thống kê sử dụng token, như input_tokens, output_tokens và total_tokens.

Ví dụ thành công

json
{
  "id": "resp_123",
  "object": "response",
  "created_at": 1766534400,
  "model": "gpt-5.4",
  "output": [
    {
      "type": "message",
      "role": "assistant",
      "content": [
        {
          "text": "The image shows a cat, and the attachment is a document about pet care."
        }
      ]
    }
  ],
  "usage": {
    "input_tokens": 128,
    "output_tokens": 42,
    "total_tokens": 170
  }
}

Phản hồi truyền luồng

Khi stream=true, điểm cuối trả Server-Sent Events.

text
event: response.output_text.delta
data: {"type":"response.output_text.delta","delta":"The image"}

event: response.completed
data: {"type":"response.completed","response":{"id":"resp_123"}}

Đọc sự kiện cho đến response.completed hoặc kết nối đóng.

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 do nền tảng tạo dùng các trường phẳng bên dưới thay cho lớp bọc error. Một số lỗi thượng nguồn có thể giữ cấu trúc gốc; lỗi bên trong luồng SSE đã bắt đầu không theo ví dụ phản hồi HTTP này.

json
{
  "code": 40000,
  "message": "Insufficient credit. Required: 30000, Available: 20000",
  "type": "api_error"
}

Lưu ý

  • Điểm cuối Responses dùng input, không dùng messages. Nếu máy khách chỉ gửi messages, dùng /openai/v1/chat/completions.
  • Đầu vào ảnh dùng input_image; image_url phải là URL http:// hoặc https:// công khai. Không hỗ trợ Data URL Base64 cho ảnh.
  • Đầu vào tệp dùng input_file. Với PDF, dùng file_data cùng filename; file_data phải là URL data:application/pdf;base64,... hoàn chỉnh.
  • Đầu vào/đầu ra âm thanh, công cụ tạo ảnh, tìm kiếm tệp và năng lực nâng cao khác phụ thuộc mô hình được chọn và tính năng hiện có.
  • Các trường trên trang này tạo thành hợp đồng yêu cầu Responses công khai hiện tại; đừng giả định trường không liệt kê là khả dụng.
  • /openai/responses là đường dẫn công khai được khuyến nghị.
  • /v1/responses theo cùng hợp đồng yêu cầu và phản hồi công khai.
  • /compat/v1/responses theo cùng hợp đồng yêu cầu và phản hồi công khai.
  • /openai/v1/responses theo cùng hợp đồng yêu cầu và phản hồi công khai.