AICodeDog
Endpoint · Chat

Chat Completions

对话补全 API。请求和响应字段与 OpenAI v1/chat/completions 100% 一致——你已经在用的代码改一行 baseURL 就能跑。

端点

http
POST https://api.aicodedog.com/v1/chat/completions

支持的模型见 /models。常用:gpt-5.4gpt-5.4-miniclaude-opus-4-7claude-sonnet-4-6DeepSeek-V4-ProKimi-K2.6

最小请求

curl
curl https://api.aicodedog.com/v1/chat/completions \ -H "Authorization: Bearer $AICODEDOG_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "gpt-5.4", "messages": [ {"role": "system", "content": "你是一个简洁的助手。"}, {"role": "user", "content": "用一句话解释 RAG 是什么"} ], "temperature": 0.7, "max_tokens": 500 }'

Streaming(SSE 流式输出)

加上 "stream": true,响应变成 Server-Sent Events,每个 chunk 是一段增量 JSON:

python
from openai import OpenAI client = OpenAI(api_key="<KEY>", base_url="https://api.aicodedog.com/v1") stream = client.chat.completions.create( model="gpt-5.4", messages=[{"role": "user", "content": "讲个 100 字的笑话"}], stream=True, ) for chunk in stream: delta = chunk.choices[0].delta.content or "" print(delta, end="", flush=True)
node
const stream = await client.chat.completions.create({ model: 'gpt-5.4', messages: [{ role: 'user', content: '讲个 100 字的笑话' }], stream: true, }); for await (const chunk of stream) { process.stdout.write(chunk.choices[0]?.delta?.content ?? ''); }

Function Calling / Tools

描述工具的 JSON Schema,模型会在合适时机返回 tool_calls,你执行后把结果作为下一轮的 tool 角色消息塞回去:

python
tools = [{ "type": "function", "function": { "name": "get_weather", "description": "查询某个城市当前天气", "parameters": { "type": "object", "properties": {"city": {"type": "string"}}, "required": ["city"], }, }, }] resp = client.chat.completions.create( model="claude-sonnet-4-6", messages=[{"role": "user", "content": "北京今天热吗?"}], tools=tools, tool_choice="auto", ) tool_call = resp.choices[0].message.tool_calls[0] # tool_call.function.name == "get_weather" # tool_call.function.arguments == '{"city": "北京"}'

JSON 模式

强制模型输出合法 JSON。适合数据提取、API 集成等需要稳定结构的场景:

json
{ "model": "gpt-5.4", "messages": [ {"role": "system", "content": "把用户输入转成 {city, day} 结构。"}, {"role": "user", "content": "查下北京周二的天气"} ], "response_format": { "type": "json_object" } }
System prompt 必须提到 JSON
这是 OpenAI 的硬性要求——如果 system 或 user 消息里没出现「JSON」字样,会拒绝并报 400

多模态(图像输入)

支持图像输入的模型(如 gpt-5.4claude-opus-4-7gemini-3-1-pro)可以混合文字 + 图:

json
{ "model": "gpt-5.4", "messages": [{ "role": "user", "content": [ {"type": "text", "text": "图里写了什么字?"}, { "type": "image_url", "image_url": { "url": "https://example.com/sign.jpg" } } ] }] }

也支持 base64 dataURL(data:image/png;base64,iVBOR...),适合本地图。

完整参数表

  • model(必填)— 模型 slug。
  • messages(必填)— 对话历史,按 system / user / assistant / tool 角色组织。
  • temperature0–2,默认 1。0 接近确定性,2 高度随机。
  • top_p — 核采样阈值,默认 1。和 temperature 二选一即可。
  • max_tokens — 输出上限。**强烈建议**显式设置避免失控成本。
  • stream — 流式输出,true / false
  • stop — 字符串或字符串数组,遇到时停止生成。
  • presence_penalty / frequency_penalty-2.0–2.0,控制新话题/重复。
  • tools / tool_choice — 函数调用配置(见上节)。
  • response_format — JSON 模式(见上节)。
  • seed — 同一 seed + 同一输入尝试给出可复现结果(best-effort)。
  • user — 你侧的最终用户标识,用于 abuse 检测。

响应格式

json
{ "id": "chatcmpl-AbCdEfGhIjK", "object": "chat.completion", "created": 1747291200, "model": "gpt-5.4", "choices": [{ "index": 0, "message": { "role": "assistant", "content": "RAG = 检索增强生成,先查再答。" }, "finish_reason": "stop" }], "usage": { "prompt_tokens": 24, "completion_tokens": 12, "total_tokens": 36 } }

finish_reason 取值:stop(自然结束)/ length(达到 max_tokens)/ tool_calls(工具触发)/ content_filter(被安全策略拦截)。