OpenAI-Compatible API Explained
请求:{model, messages:[{role,content}...], stream, max_tokens, tools...};回应:{choices:[{message:{role,content}}], usage:{prompt_tokens,completion_tokens}}。就这么简单——这正是它成为标准的原因。
所有主流 SDK(openai-python、openai-node、LangChain、LlamaIndex、Vercel AI SDK)都支持覆写 base_url,所以「换到中转站」= 改两行配置。
①请求格式相容:各家都做得到。②流式相容:SSE 的 chunk 拼接、finish_reason、[DONE] 结尾——很多便宜服务在这里出错。③生态相容:工具呼叫(tools/tool_calls)、JSON 模式、usage 统计、reasoning 栏位——做到这层的才配叫「全相容」。
OlithmRouter 在闸道层统一实作三个层级,并额外支持 Anthropic Messages 与 Gemini /v1beta 两种原生协定——同一把密钥,三种协定。
推理型模型引入了 reasoning/thinking 栏位与 reasoning_effort 参数,各家格式又不一致。OlithmRouter 正规化三种协定的 reasoning_effort 为 low/medium/high,控制台日志显示强度标记,方便你对帐与调参。
流式 chunk 是否逐段即时到达(不是攒最后一次吐);usage 是否真实(对照官方 token 计算);工具呼叫的多轮回圈是否正常;错误格式是否仍是 OpenAI 形状(SDK 才能解析);429 是否带 Retry-After。