在整合AI提供商时,端点是关键所在。每个提供商的结构方式各不相同,这就是Zubnet等平台存在的原因——统一混乱的局面。
端点是服务器上的一个URL路径,用于接收特定类型的请求并返回特定类型的响应。在AI API中,最常见的端点是聊天补全端点—POST /v1/chat/completions在OpenAI的架构中,POST /v1/messages在Anthropic中。但现代AI提供商提供的端点远不止聊天相关:/v1/embeddings用于将文本转换为向量,/v1/images/generations用于图像生成,/v1/audio/transcriptions用于语音转文本,以及/v1/models用于列出可用模型。每个端点都期望不同的请求参数并返回不同格式的响应。
实际挑战在于,“OpenAI兼容”端点仅在一定程度上兼容。Groq、Together AI和Fireworks都宣传OpenAI兼容性,对于基本的聊天补全请求它们都能正常工作。但深入细节后你会发现差异:有些不支持结构化输出的response_format参数,有些处理工具/函数调用的方式不同,错误响应格式也差异很大。Anthropic甚至不尝试实现OpenAI兼容性—他们的Messages API使用完全不同的结构,content是一个块数组而不是普通字符串。当你构建一个在多个提供商之间路由的系统时,这些差异会占据大部分工程时间。
版本控制是另一个重要维度。提供商随时间推移会演进其端点,且会出现破坏性变更。OpenAI使用基于日期的模型版本控制(如gpt-4-0125-preview),而端点路径本身保持稳定。Anthropic在请求头中包含版本信息(anthropic-version: 2023-06-01),这决定了请求/响应的格式。Google的Vertex AI在URL路径中使用版本前缀。当提供商弃用某个端点版本时,通常会提前几个月发出警告,但如果你不关注它们的变更日志,可能会在某天早上发现集成已中断。
基础URL也值得提及,因为它们并不像你预期的那样简单。Anthropic的API位于api.anthropic.com,但OpenAI提供api.openai.com用于直接访问,并为Azure OpenAI服务部署提供独立的基础URL。一些提供商为数据驻留合规性提供区域端点—你的请求到europe-west1-aiplatform.googleapis.com会保留在欧盟。对于通过推理平台(如HuggingFace的推理API)路由的提供商,基础URL是平台(router.huggingface.co),而模型标识符则放在路径或请求头中。理解这种拓扑结构很重要,因为延迟、数据主权和计费都可能取决于你实际访问的端点。