本文详细阐述了 OpenAI 兼容 API 标准在不同推理引擎和托管提供商之间产生分歧的 12 个具体领域,这些分歧会导致静默失败或意外行为。虽然核心请求结构和基本流式传输工作可靠,但参数处理、错误响应和功能支持方面的细微差异可能会破坏应用程序。

  • 未知参数通常会被静默丢弃,而不是以 400 错误拒绝。
  • 推理模型可能需要 `max_completion_tokens` 而不是 `max_tokens`,且接受情况不一致。
  • 流式响应中经常缺少令牌使用统计信息,除非通过 `stream_options` 显式请求。
  • 工具调用支持差异显著,许多服务器缺乏原生并行调用或严格的模式遵循。
  • JSON 模式实现在基本对象验证和带有模式的约束解码之间存在差异。
  • 上下文溢出处理范围从硬性的 400 错误到静默截断系统提示。
  • `finish_reason` 值包括标准 stop、length 和 tool_calls 之外的提供商特定附加项。
  • 错误信封和速率限制响应(429、503 或带有正文错误的 200)不一致。
  • 推理模型上的温度设置可能在内部被忽略,尽管它们被接受了。
  • 多模态输入处理在大小限制、MIME 类型和 `detail` 参数方面各不相同。
  • 嵌入端点由于维度和归一化的不同而缺乏可移植性。
  • 幂等键很少受到支持,且请求 ID 标头使用不一致的命名。

作者建议使用探测脚本来测试提供商对这些特定行为的合规性,因为模型版本经常变化,且静默失败在生产环境中难以调试。