如何用 Python 调用 AI API:从入门到生产
在人工智能时代,通过 API 调用大语言模型(LLM)已成为开发者必备技能。本文将详细介绍如何使用 Python 从零开始调用 AI API,涵盖环境配置、基础调用、流式输出、函数调用等高级功能,直至生产环境部署的最佳实践。
1. 环境准备与基础配置
1.1 安装必要库
首先确保 Python 3.7+ 环境,安装官方 OpenAI SDK(兼容無量Api):
pip install openai
1.2 API 密钥配置
注册 無量Api 获取 API Key,支持以下两种配置方式:
- 环境变量配置:
export OPENAI_API_KEY="your-api2everything-key" - 代码中直接配置:
import openai openai.api_key = "your-api2everything-key" openai.base_url = "https://api2everything.xyz/v1" # 关键配置
2. 基础 API 调用
2.1 文本补全(Completion)
response = openai.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "用Python写一个快速排序算法"}],
temperature=0.7
)
print(response.choices[0].message.content)
2.2 对话模式(Chat Completion)
messages = [
{"role": "system", "content": "你是一个Python专家"},
{"role": "user", "content": "如何用pandas处理缺失值?"}
]
response = openai.chat.completions.create(
model="claude-3-sonnet-4.6",
messages=messages
)
3. 高级功能实现
3.1 流式输出(Streaming)
处理长文本时减少等待时间:
stream = openai.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "详细解释Python的GIL机制"}],
stream=True
)
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="")
3.2 函数调用(Function Calling)
实现结构化数据返回:
tools = [
{
"type": "function",
"function": {
"name": "get_current_weather",
"description": "获取当前天气",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "城市名称"}
},
"required": ["location"]
}
}
}
]
response = openai.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "上海现在天气如何?"}],
tools=tools
)
3.3 异步调用(Async)
提升高并发场景性能:
import asyncio
async def async_query():
client = openai.AsyncOpenAI(base_url="https://api2everything.xyz/v1")
response = await client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": "异步编程的优势"}]
)
return response
asyncio.run(async_query())
4. 生产环境最佳实践
4.1 错误处理与重试机制
from tenacity import retry, stop_after_attempt, wait_exponential
@retry(stop=stop_after_attempt(3), wait=wait_exponential(multiplier=1, min=4, max=10))
def safe_api_call(prompt):
try:
return openai.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}]
)
except Exception as e:
print(f"API调用失败: {str(e)}")
raise
4.2 性能优化技巧
- 批量处理请求(Batching)
- 设置合理超时(建议5-30秒)
- 使用更轻量级模型(如Claude Haiku)处理简单任务
5.3 成本控制方案
| 策略 | 效果 | 实现方式 |
|---|---|---|
| Token限制 | 减少单次调用成本 | max_tokens=500 |
| 缓存机制 | 避免重复计算 | Redis缓存相似请求结果 |
5. 常见问题(FAQ)
Q1: 如何选择适合的模型?
A: 根据任务复杂度选择:
- 简单问答:Claude Haiku(性价比最高)
- 复杂推理:GPT-4o 或 Claude Opus
- 中文场景:DeepSeek V3
Q2: 国内访问需要特殊配置吗?
A: 無量Api已实现国内直连,无需翻墙即可稳定访问。
Q3: 如何监控API使用情况?
A: 在無量Api控制面板可实时监控:
- Token消耗
- 请求成功率
- 响应时间分布
Q4: 遇到速率限制怎么办?
A: 两种解决方案:
- 升级账户等级提升QPS
- 实现指数退避重试机制