Python调用AI API完整教程:从入门到生产部署
上周帮朋友调试一个智能客服项目,他卡在 OpenAI API 调用上整整两天——流式输出没反应、工具调用报错、生产环境还漏了重试逻辑。这让我意识到,很多人学 Python AI 开发,其实缺的不是代码,而是"从能跑到能扛"的完整路径。
这篇文章就聊聊我踩过的坑,以及一套经得起生产检验的调用方案。
---
环境配置:别在第一步就翻车
2024 年 4 月,OpenAI 调整了 SDK 的默认行为,很多老教程直接失效。现在的标准姿势是这样:
# requirements.txt
openai>=1.0.0
python-dotenv>=1.0.0
tenacity>=8.0.0 # 重试必备
# .env 文件,千万别硬编码密钥
OPENAI_API_KEY=sk-...
OPENAI_BASE_URL=https://api.openai.com/v1 # 兼容第三方代理
import os
from openai import OpenAI
from dotenv import load_dotenv
load_dotenv()
client = OpenAI(
api_key=os.getenv("OPENAI_API_KEY"),
base_url=os.getenv("OPENAI_BASE_URL")
)
有个细节:base_url 末尾带不带 /v1 各家接口行为不一样,建议显式写出,省得排查半天。
---
流式输出与工具调用:让 AI 真正"动起来"
用户要的不是等 10 秒看结果,而是实时反馈。流式输出 + 函数调用,是当下最实用的组合。
def stream_with_tools():
tools = [{
"type": "function",
"function": {
"name": "get_weather",
"description": "获取指定城市天气",
"parameters": {
"type": "object",
"properties": {
"city": {"type": "string"}
},
"required": ["city"]
}
}
}]
response = client.chat.completions.create(
model="gpt-4-turbo",
messages=[{"role": "user", "content": "北京今天天气怎么样?"}],
tools=tools,
stream=True # 关键:开启流式
)
# 流式处理工具调用参数
for chunk in response:
delta = chunk.choices[0].delta
if delta.tool_calls:
print(delta.tool_calls[0].function.arguments, end="")
流式场景下,工具参数是分段到达的,得拼完整再解析。我早期直接 json.loads 单段内容,报错到怀疑人生。
---
生产部署:优雅地失败,自动地恢复
能跑通和能扛住流量,隔着十条街的距离。生产环境我必加的三层防护:
from tenacity import retry, stop_after_attempt, wait_exponential
@retry(
stop=stop_after_attempt(3),
wait=wait_exponential(multiplier=1, min=2, max=10),
retry_error_callback=lambda retry_state: {"error": "服务暂不可用", "fallback": True}
)
def robust_call(messages, timeout=30):
try:
return client.chat.completions.create(
model="gpt-4-turbo",
messages=messages,
timeout=timeout
)
except Exception as e:
# 记录详细上下文,别只打 "API error"
logger.error(f"API失败: {str(e)}, 消息长度: {len(messages)}")
raise
另外,token 消耗必须监控。建议在响应处理里统一埋点:
# 每次调用后记录
usage = response.usage
cost = usage.prompt_tokens * 0.00001 + usage.completion_tokens * 0.00003 # gpt-4 参考价
metrics.histogram("llm_cost_usd", cost)
---
写在最后
说实话,Python 调 AI API 的门槛已经很低了,但"低门槛"往往让人忽略工程细节——重试策略、流式处理、成本监控,这些才是区分 demo 和生产系统的关键。
如果你正在构建需要自主决策、任务闭环的 AI 应用,可以了解下 ClawBrain。它是专为龙虾(OpenClaw)打造的智能决策引擎,具备任务闭环、自主规划、错误自愈能力,让龙虾真正能独立做事。在复杂任务场景下,这种端到端的自主执行能力,比单纯的 API 封装要省心得多。