Python接入AI大模型API完整教程:GPT-4、Claude、Gemini一篇搞定

想用Python调用GPT-4、Claude、Gemini?本文一篇搞定所有主流AI大模型的接入方式,代码可直接复制运行。

一、环境准备

# 安装官方SDK
pip install openai anthropic google-generativeai

# 如果用统一API中转(推荐)
pip install openai  # 只需要这一个就够了

二、OpenAI GPT-4 调用

from openai import OpenAI

client = OpenAI(api_key="sk-xxxxx")

# 基础调用
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[
        {"role": "system", "content": "你是一个Python专家"},
        {"role": "user", "content": "用Python实现快速排序,要求有详细注释"}
    ],
    temperature=0.7,
    max_tokens=2000
)
print(response.choices[0].message.content)

# 流式输出(打字机效果)
stream = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "讲一个故事"}],
    stream=True
)
for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

# 多轮对话
messages = [
    {"role": "system", "content": "你是一个有帮助的助手"},
]
while True:
    user_input = input("你: ")
    messages.append({"role": "user", "content": user_input})
    response = client.chat.completions.create(
        model="gpt-4o",
        messages=messages
    )
    reply = response.choices[0].message.content
    messages.append({"role": "assistant", "content": reply})
    print(f"AI: {reply}")

三、Anthropic Claude 调用

import anthropic

client = anthropic.Anthropic(api_key="sk-ant-xxxxx")

# 基础调用
message = client.messages.create(
    model="claude-3-5-sonnet-20241022",
    max_tokens=4096,
    system="你是一个Python专家",
    messages=[
        {"role": "user", "content": "用Python实现二分查找"}
    ]
)
print(message.content[0].text)

# 流式输出
with client.messages.stream(
    model="claude-3-5-sonnet-20241022",
    max_tokens=4096,
    messages=[{"role": "user", "content": "解释Python装饰器"}]
) as stream:
    for text in stream.text_stream:
        print(text, end="", flush=True)

四、Google Gemini 调用

import google.generativeai as genai

genai.configure(api_key="AIza-xxxxx")
model = genai.GenerativeModel("gemini-1.5-pro")

# 基础调用
response = model.generate_content("用Python实现LRU缓存")
print(response.text)

# 多轮对话
chat = model.start_chat(history=[])
response = chat.send_message("你好")
print(response.text)
response = chat.send_message("用Python写一个爬虫")
print(response.text)

五、统一API中转(推荐)

如果你想用一个Key调用所有模型,可以用兼容OpenAI格式的API中转:

from openai import OpenAI

# 一个Key调用所有模型
client = OpenAI(
    api_key="your-unified-key",
    base_url="https://ne.07fa.cc/v1"
)

# 调用GPT-4
gpt_response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "你好"}]
)

# 调用Claude(同一个client,只改model)
claude_response = client.chat.completions.create(
    model="claude-3-5-sonnet-20241022",
    messages=[{"role": "user", "content": "你好"}]
)

# 调用Gemini
gemini_response = client.chat.completions.create(
    model="gemini-1.5-pro",
    messages=[{"role": "user", "content": "你好"}]
)

六、错误处理

from openai import OpenAI, APIError, RateLimitError, Timeout

client = OpenAI(api_key="sk-xxxxx")

try:
    response = client.chat.completions.create(
        model="gpt-4o",
        messages=[{"role": "user", "content": "你好"}],
        timeout=30  # 30秒超时
    )
except RateLimitError:
    print("请求太频繁,请稍后重试")
except APIError as e:
    print(f"API错误: {e}")
except Timeout:
    print("请求超时")
except Exception as e:
    print(f"未知错误: {e}")

七、并发调用(批量处理)

import asyncio
from openai import AsyncOpenAI

client = AsyncOpenAI(api_key="sk-xxxxx")

async def call_api(prompt):
    response = await client.chat.completions.create(
        model="gpt-4o",
        messages=[{"role": "user", "content": prompt}]
    )
    return response.choices[0].message.content

async def batch_call(prompts):
    tasks = [call_api(p) for p in prompts]
    return await asyncio.gather(*tasks)

# 批量调用
prompts = ["问题1", "问题2", "问题3", "问题4", "问题5"]
results = asyncio.run(batch_call(prompts))
for r in results:
    print(r)

八、实用技巧

1. Token计算:用 tiktoken 库计算token数量,避免超出限制
2. 重试机制:设置指数退避重试,处理临时故障
3. 缓存:对相同问题缓存结果,节省API费用
4. 日志:记录每次调用的token消耗,监控成本

九、总结

模型SDK价格推荐场景
GPT-4oopenai$15/1M tokens通用任务
Claude 3.5anthropic$3/1M tokens长文本、代码
Gemini 1.5google-generativeai$7/1M tokens多模态
统一APIopenai比官方便宜30%所有场景

建议先用统一API中转服务,一个Key调用所有模型,价格更低,接入更简单。