调用主流 LLM API

OpenAI 兼容协议、流式输出、Function Calling——把大模型嵌进你自己的程序,一共就这几件事。

阅读约 7 分钟更新于 2026-07

一次 API 调用到底发生了什么

调用大模型 API,本质上就是发一个 HTTP POST 请求到服务商地址,附上你的 API Key 和一段 JSON 描述的对话历史。服务商把请求转给大模型,模型逐字生成回答,服务器把整段回答打包成 JSON 返回。Python 里用 requests 或官方 openai 库都只需十几行代码。这一层抽象做完后,"用哪个模型"的差别只是改一个名字(model="gpt-4o" 或 model="deepseek-chat")。

OpenAI 兼容协议

2023 年 OpenAI 的接口规范事实上成了行业标准:DeepSeek、智谱、月之暗面、阿里通义、Ollama 本地模式都提供了兼容这套规范的接口。意思是同一段代码、只需改 base URL 和 API Key,就能切换不同供应商。这对防止供应商绑定、控制成本、做 A/B 测试都很有价值。注意不同供应商在 temperature、top_p、上下文窗口支持范围上略有差异,详细参数名以各自文档为准。

流式输出(打字机效果)

默认的 API 调用要等模型把整段回答生成完才一次性返回。对长回答来说用户要等十几秒,体验差。流式输出在请求里加 "stream": true,服务端会一段一段地把生成的文字推过来,浏览器或终端可以像打字机一样逐字显示。实现上服务端用 Server-Sent Events 或 WebSocket 推送,客户端用相应的解析器一行行处理。延迟从"等全文"降到"等第一个字",用户主观感受完全不同。

Function Calling 是什么

Function Calling 是让模型"按 JSON 格式输出"的一种能力。你先在请求里声明若干个可用函数(名字、参数、说明),模型根据对话决定要不要调用、调用哪个、传什么参数。模型只负责"决策",真正执行函数的是你自己的代码(例如查数据库、调用内部 API)。这让模型可以和你已有的系统对接:让模型判断用户想问的订单号,然后查订单系统返回真实数据,而不是让模型自己编一个答案。

成本与限速的常识

API 按 token 计费,输入和输出通常分开计价,输出比输入贵两到三倍。主流模型都提供免费额度供开发测试,正式上线后建议加缓存、压缩上下文、限制单次请求最大长度。限速(rate limit)按"每分钟请求数"和"每分钟 token 数"两个维度计,超出后会返回 429 错误,此时应在代码里加重试和退避逻辑。不要在生产环境直接套用示例代码,错误处理、超时、并发、限速是必须自己写的部分。