你有没有试过用不同家的AI服务?就像你去不同餐厅点餐,每家都有自己的一套规矩。今天我想聊聊工具调用这个话题,说白了就是各家AI厂商都有自己的"方言",互不通用。
想象一下,你用OpenAI的服务写了个超棒的应用,想换个更便宜的模型,结果发现代码全得重写。这不就像你买了台苹果手机,所有配件都得买苹果牌的吗?
OpenAI喜欢用"messages"这种格式,简单直接。到了Gemini那儿,人家用"contents"和"parts",搞得我像在学外语。更别提认证方式了,一个用Bearer Token,一个用API Key,细节都不一样。
最搞笑的是,每家都说自己"开放",实际上就是建了个个漂亮的花园,但围墙高得吓人。你想在花园间跳来跳去?对不起,请重新买票。
这种现象在技术圈太常见了。厂商们嘴上说着标准化,暗地里都在建自己的"护城河"。作为开发者,我们就像在多个"孤岛"间游泳,带着行李还得换不同的泳装。
说到底,工具调用这个领域还太年轻,就像早期的充电器,各家有各家的接口。希望有一天能像USB-C那样统一起来,不过在那之前,我们还是得准备一堆不同的"适配器"。
三大AI平台API请求和响应格式对比
1. OpenAI
请求格式特点:
- 标准REST API:使用标准的HTTP REST架构
- 认证方式:使用Bearer Token认证(
Authorization: Bearer sk-...) - 主要端点:
/v1/chat/completions、/v1/completions等 - 请求结构:
{
"model": "gpt-4o-mini",
"messages": [
{
"role": "user", "content": "Hello"}
],
"temperature": 0.7,
"max_tokens": 100
}
响应格式特点:
- 结构化响应:包含完整的元数据和统计信息
- 流式支持:支持Server-Sent Events流式输出
- 典型响应结构:
{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1677652288,
"model": "gpt-4o-mini",
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "Hello there!"
},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 12,
"total_tokens": 21
}
}
2. Google Gemini
请求格式特点:
- 认证方式:使用API Key(
x-goog-api-key: YOUR_API_KEY) - 主要端点:
/v1beta/models/gemini-2.5-flash:generateContent - 请求结构:
{
"contents": [{
"parts": [{
"text": "Hello"
}]
}],
"generationConfig": {
"temperature": 0.7,
"topP": 0.95,
"topK": 40
}
}
响应格式特点:
- 简洁结构:相对OpenAI更简洁,专注于核心内容
- 多模态友好:原生支持文本、图像、音频等多种模态
- 典型响应结构:
{
"candidates": [{
"content": {
"parts": [{
"text": "Hello! How can I help you?"
}],
"role": "model"
},
"index": 0
}],
"usageMetadata": {
"promptTokenCount": 3,
"candidatesTokenCount": 8,
"totalTokenCount": 11
}
}
3. Anthropic (Claude)
请求格式特点:
- 认证方式:使用API Key(
x-api-key: YOUR_API_KEY) - 主要端点:
/v1/messages - 请求结构:
{
"model": "claude-3-5-sonnet-20241022",
"max_tokens": 100,
"messages": [
{
"role": "user", "content": "Hello"}
]
}
响应格式特点:
- 注重安全性:响应格式强调安全性和可控性
- 工具调用支持:原生支持函数调用和工具使用
- 典型响应结构:
{
"id": "msg_0123456789",
"type": "message",
"role": "assistant",
"content": [{
"type": "text",
"text": "Hello! How can I assist you today?"
}],
"model": "claude-3-5-sonnet-20241022",
"stop_reason": "end_turn",
"usage": {
"input_tokens": 12,
"output_tokens": 11
}
}
主要差异总结
1. 认证方式
- OpenAI: Bearer Token (
Authorization: Bearer) - Gemini: API Key Header (
x-goog-api-key


625

被折叠的 条评论
为什么被折叠?



