Tạo response
Yêu cầu phản hồi mô hình theo định dạng yêu cầu của OpenAI Responses API (input/instructions); được chuyển đổi nội bộ sang định dạng Chat Completions và định tuyến đến bất kỳ model được hỗ trợ nào — đây là lớp dịch, không phải một đường dẫn suy luận riêng. Đây là endpoint không trạng thái: truyền store: true hoặc previous_response_id khác null sẽ trả về 400 (xem mục 400 bên dưới để biết dạng lỗi riêng biệt) — mỗi lần gọi phải mang toàn bộ cuộc hội thoại trong input. Khi streaming, reasoning được thể hiện qua các sự kiện response.reasoning_text.delta và một output item type:"reasoning".
/api/v1/responsesXác thực
Authorizationbắt buộcAPI key dưới dạng bearer token trong header Authorization.
Body
modelbắt buộcModel cần dùng, có tiền tố nhà cung cấp, ví dụ "openai/gpt-5.2".
"openai/gpt-5.2"inputbắt buộcĐầu vào hội thoại — một chuỗi đơn, hoặc mảng item có cấu trúc (message/function_call/function_call_output). Tin nhắn có thể dùng văn bản thuần hoặc mảng khối nội dung gồm input_image.
instructionsChỉ dẫn cấp hệ thống, được chèn làm tin nhắn system đầu tiên ở đầu mảng messages đã chuyển đổi.
streamtrue để phản hồi dạng luồng sự kiện SSE của Responses API (response.created, response.output_item.added, response.output_text.delta, response.reasoning_text.delta, response.completed, và các sự kiện khác); bỏ qua hoặc false trả về một phản hồi JSON đơn.
max_output_tokensSố token tối đa mà phản hồi có thể tạo ra (chuyển đổi thành max_tokens của Chat Completions upstream).
toolsDanh sách định nghĩa tool/hàm mà model có thể gọi. Chấp nhận dạng phẳng theo spec Responses {type:"function", name, description, parameters} (khuyến nghị), và cả dạng lồng của Chat Completions {type:"function", function:{...}} (chấp nhận để tương thích ngược, chuyển tiếp nguyên trạng). Trường tools của đối tượng response phản chiếu đúng giá trị đã gửi ở đây.
tool_choiceKiểm soát việc model có/thế nào bị buộc gọi tool, ví dụ {type:"function", name:"..."} (dạng phẳng, khuyến nghị, tự động chuyển đổi cho upstream) hoặc "auto". Trường tool_choice của response phản chiếu giá trị đã gửi ở đây, mặc định "auto" khi bỏ qua.
parallel_tool_callsCó cho phép gọi tool song song khi cung cấp tools hay không. Mặc định true khi bỏ qua; trường parallel_tool_calls của response phản chiếu giá trị đã gửi ở đây.
pluginsMảng plugin (ví dụ {id:"web"} để bật tìm kiếm web). Chỉ được hỗ trợ trên một số tuyến model, không có hiệu lực ở nơi khác; biến thể model :online tự động chèn {id:"web"} chỉ khi bạn không gửi plugins nào, cũng chỉ trên các tuyến hỗ trợ.
store⚠️ Endpoint này không trạng thái — truyền true sẽ trả về 400 ngay lập tức, không bao giờ được chấp nhận hay âm thầm bỏ qua. Bỏ qua hoặc truyền false là cách dùng hợp lệ duy nhất.
previous_response_id⚠️ Endpoint này không trạng thái — truyền bất kỳ giá trị khác null nào sẽ trả về 400 ngay lập tức, không bao giờ được chấp nhận hay âm thầm bỏ qua. Để tiếp tục hội thoại, hãy gửi toàn bộ lịch sử trong mảng input.
modelsDanh sách model dự phòng — thử theo thứ tự, chỉ dùng khi nhóm ứng viên của model chính đã cạn.
reasoningĐối tượng điều khiển suy luận của model reasoning (ví dụ {effort, max_tokens}), chuyển tiếp nguyên trạng lên upstream — không tiêm giá trị mặc định.
reasoning_effortTrường viết tắt phẳng của reasoning.effort.
lowmediumhighthinkingNgân sách token cộng thêm của extended thinking Claude (ví dụ {type:"enabled", budget_tokens:2048}), cộng thêm vào max_output_tokens — chuyển tiếp nguyên trạng, không tiêm giá trị mặc định.
enable_thinkingCông tắc bật/tắt thinking cho các model họ Qwen3/GLM, chuyển tiếp nguyên trạng lựa chọn của người dùng.