CommandCodeAI / CommandCodeAI/command-code
Provider API rejects response_format (400 Invalid input) even for DeepSeek json_object mode
@ahmadbilaldev đang làm issue này rồi.
Từ ngày 18/8/2026.
- Ngôn ngữ chính
- Không có dữ liệu ngôn ngữ
- Star
- 4k
- Fork
- 350
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
Summary
The Provider API (https://api.commandcode.ai/provider/v1/chat/completions) rejects the standard OpenAI response_format parameter with HTTP 400 — even for {"type": "json_object"}, which the underlying DeepSeek API supports natively. This breaks every OpenAI-compatible client that sends response_format (OpenAI SDK, Vercel AI SDK, Pydantic structured output, agent harnesses), not just the Command Code CLI.
Expected Behavior
response_format: {"type": "json_object"} (DeepSeek JSON mode) should be passed through to the upstream model, since DeepSeek's own Chat Completions API documents and supports json_object. The Provider API claims OpenAI Chat Completions schema compatibility, so OpenAI-standard request parameters should be accepted or at least documented as unsupported — not rejected with a generic 400.
Actual Behavior
HTTP 400 with a double-wrapped error:
{"error":{"message":"{\"error\":{\"message\":\"Invalid input\",\"type\":\"invalid_request_error\",\"param\":\"response_format\",\"code\":\"invalid_request_error\"}}","type":"invalid_request_error"}}
The same request without response_format succeeds (200) and the model returns clean JSON when the prompt asks for it.
Steps to reproduce the issue
curl https://api.commandcode.ai/provider/v1/chat/completions \
-H "Authorization: Bearer $CMD_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "deepseek/deepseek-v4-pro",
"messages": [{"role": "user", "content": "Return JSON only: {\"answer\": 42}"}],
"response_format": {"type": "json_object"},
"max_completion_tokens": 64
}'
Observed:
- With
response_format→400 Invalid input, param=response_format - Without
response_format→200,content: {"answer": 42}(clean JSON) - Same request shape against DeepSeek official API with
response_format: {"type":"json_object"}→ works (200)
Command Code Version
Provider API (api.commandcode.ai/provider/v1) — not the CLI; no CLI version involved.
Operating System
Linux
Terminal/IDE
n/a (HTTP API test)
Shell
bash
Fix prompt (optional)
In the Provider API gateway, allow response_format: {"type": "json_object"} to pass through to DeepSeek upstream (DeepSeek Chat Completions supports it). If pass-through of json_schema is out of scope for now, at minimum accept json_object and document which response_format variants are supported on the Provider API docs page. A quick check: replay the curl above against the upstream after the fix and expect HTTP 200.
Additional context
- Impact: any agent harness / SDK sending
response_formatgets 400 on the Pro route; the workaround (omit the parameter and rely on prompt instructions) is fragile because the model's JSON validity is no longer guaranteed by the API. - Related behavior: the opencode.ai zen/go route accepts
response_formatonly when the prompt contains the literal wordjson— also worth documenting. - Note: this issue is about the Provider API endpoint (
/provider/v1/chat/completions), not the CLI — there is no separate Provider API bug tracker, so filing here.
Hướng dẫn đóng góp
Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Đánh giá
Issue này chưa được đánh giá.