跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
PythonAI

Python 调用大模型 API 接口开发指南

介绍使用 Python 调用大模型 API 的开发指南。涵盖环境配置、API 密钥获取及主流服务商对比。内容包括基础调用示例、流式响应、异步并发、工具调用及多模态处理。提供 LiteLLM 统一 SDK 和 LangChain 框架集成方案,包含性能优化建议与 Streamlit 聊天机器人实战项目。涉及错误处理、成本控制及安全最佳实践。

氛围发布于 2026/3/15更新于 2026/10/22110 浏览

Python 调用大模型 API 接口开发指南

大模型 API 已成为 AI 开发的核心,涵盖文本生成、聊天机器人、代码补全等场景。本指南从零起步,覆盖主流提供商(如 OpenAI、Anthropic、Groq、Hugging Face、Google Gemini 等),包括环境准备、基本调用、高级技巧、统一框架、性能优化和完整项目实战。

教程基于 Python 3.12+,参考主流文档和社区最佳实践(如 LiteLLM SDK、Groq 集成等)。假设你有基本的 Python 知识(如 import、函数、异常处理)。

0. 环境准备

  1. 获取 API 密钥:
    • OpenAI:官网 platform.openai.com/account/api-keys 创建密钥。
    • Anthropic (Claude):console.anthropic.com/account/keys。
    • Groq:console.groq.com/keys(免费试用快)。
    • Hugging Face:huggingface.co/settings/tokens(免费推理 API)。
    • Google Gemini:makersuite.google.com/app/apikey。
    • 存储密钥:用环境变量(安全)。例如 export OPENAI_API_KEY="sk-..."(Windows 用 set)。

测试环境:

import os
print(os.environ.get("OPENAI_API_KEY")) # 应输出你的密钥

安装 Python 依赖: 使用 pip 安装核心库。推荐用虚拟环境(venv)。

# 基础:请求库
pip install requests httpx

# 主流 SDK(推荐)
pip install openai anthropic groq huggingface-hub litellm

# 可选:异步/流式(高性能)
pip install aiohttp asyncio

# 集成框架(高级)
pip install langchain streamlit

1. 主流大模型 API 提供商速览

以下是热门选项(免费/付费混合):

提供商核心模型示例优势定价(输入/输出 per 1K tokens)Python SDK免费额度
OpenAIGPT-4o, GPT-4o-mini多模态(文本 + 图像 + 音频),工具调用强$2.5/$10 (GPT-4o)openai$5 试用
AnthropicClaude 3.5 Sonnet大上下文(200K+ tokens),安全$3/$15anthropic免费试用限速
GroqLlama 3.1 70B, Mixtral超快推理(LPU 硬件),开源模型$0.24/$0.24 (Mixtral)
groq
免费 API 限额
Hugging FaceLlama 3, Mistral开源模型免费推理,自定义免费/付费(Inference API)huggingface-hub无限免费(限速)
Google GeminiGemini 1.5 Pro多模态 + 搜索集成$0.5/$1.5google-generativeai免费试用
Mistral AIMistral Large 2高效多语言$2/$6mistralai免费社区模型
CohereAya 23B企业级自定义$0.5/$1cohere免费试用
ElevenLabsVoice AI (非纯文本)语音合成$0.18/minelevenlabs免费 10K chars

选择建议:初学者从 OpenAI/Groq 开始(SDK 简单)。生产用 LiteLLM 统一多提供商。

2. 基本调用

核心:发送提示(prompt),获取响应。以下是单行/简单示例。

2.1 OpenAI 示例
import os
from openai import OpenAI
client = OpenAI(api_key=os.environ["OPENAI_API_KEY"])
response = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role":"user","content":"解释量子计算,简短点。"}]
)
print(response.choices[0].message.content)

输出示例:量子计算利用量子比特进行并行计算,能解决经典计算机难题,如因子分解。

2.2 Anthropic (Claude) 示例
import os
from anthropic import Anthropic
client = Anthropic(api_key=os.environ["ANTHROPIC_API_KEY"])
response = client.messages.create(
    model="claude-3-5-sonnet-20241022",
    max_tokens=100,
    messages=[{"role":"user","content":"写一首关于 AI 的短诗。"}]
)
print(response.content[0].text)
2.3 Groq 示例
import os
from groq import Groq
client = Groq(api_key=os.environ["GROQ_API_KEY"])
response = client.chat.completions.create(
    model="llama3-70b-8192",
    messages=[{"role":"user","content":"Python 如何处理异常?"}]
)
print(response.choices[0].message.content)
2.4 Hugging Face Inference API 示例
import os
from huggingface_hub import InferenceClient
client = InferenceClient(token=os.environ["HF_TOKEN"])
response = client.text_generation(
    "meta-llama/Llama-3.2-3B-Instruct",
    "描述 Hugging Face 的作用。",
    max_tokens=50
)
print(response)

通用提示:用 try-except 处理错误(如限速、密钥无效)。例如 except Exception as e: print(e)。

3. 高级技巧

3.1 流式响应(Streaming)

实时输出(如聊天 App)。

stream = client.chat.completions.create(
    model="gpt-4o-mini",
    messages=[{"role":"user","content":"讲个笑话。"}],
    stream=True
)
for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="")
3.2 异步调用(Async,高并发)

用 asyncio 并发多个请求。

import asyncio
from openai import AsyncOpenAI

async_client = AsyncOpenAI(api_key=os.environ["OPENAI_API_KEY"])

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

async def main():
    tasks = [async_call("提示 1"), async_call("提示 2")]
    results = await asyncio.gather(*tasks)
    print(results)

asyncio.run(main())
3.3 工具调用(Function Calling)

让模型调用自定义函数(如计算器)。OpenAI/Anthropic 支持。

# OpenAI 工具示例
tools = [{"type":"function","function":{"name":"add_numbers","description":"加两个数","parameters":{"type":"object","properties":{"a":{"type":"number"},"b":{"type":"number"}},"required":["a","b"]}}}}]
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role":"user","content":"3+5=?"}],
    tools=tools
)
# 如果调用工具,执行函数
if response.choices[0].message.tool_calls:
    tool_call = response.choices[0].message.tool_calls[0]
    if tool_call.function.name == "add_numbers":
        args = json.loads(tool_call.function.arguments)
        result = args["a"] + args["b"]
        print(result)
3.4 多模态(图像/音频)

OpenAI GPT-4o 支持。

response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role":"user","content":[{"type":"text","text":"描述这张图。"},{"type":"image_url","image_url":{"url":"https://example.com/image.jpg"}}]}])
print(response.choices[0].message.content)

4. 统一多提供商:LiteLLM SDK

LiteLLM 支持 100+ LLM,一键切换。

from litellm import completion
import os
os.environ["OPENAI_API_KEY"]="..."
os.environ["ANTHROPIC_API_KEY"]="..."

# 调用 OpenAI
response = completion(model="gpt-4o-mini", messages=[{"role":"user","content":"Hi!"}])

# 切换到 Claude
response = completion(model="claude-3-5-sonnet-20241022", messages=[{"role":"user","content":"Hi!"}])
print(response.choices[0].message.content)

优势:成本跟踪、负载均衡、日志。

5. 集成框架:LangChain(链式/代理开发)

构建复杂应用。

from langchain_groq import ChatGroq
from langchain.prompts import PromptTemplate
from langchain.chains import LLMChain

llm = ChatGroq(model="llama3-70b-8192", api_key=os.environ["GROQ_API_KEY"])
prompt = PromptTemplate(input_variables=["topic"], template="解释 {topic}。")
chain = LLMChain(llm=llm, prompt=prompt)
print(chain.run("区块链"))

6. 性能优化与最佳实践

优化点做法示例收益参考
限速处理用 time.sleep() 或 retry 库避免封禁
成本控制计算 tokens(tiktoken 库),用 LiteLLM 跟踪节省 20-50%
错误重试pip install tenacity;@retry 装饰器鲁棒性 ↑
监控/日志用 Langfuse 集成(e.g., Groq)。追踪使用
安全环境变量存密钥;输入过滤防注入—
批量处理batch API(OpenAI 支持)5-10x 快
  • 常见错误:401(密钥错)、429(限速)、超时(加 timeout=30)。
  • 本地运行:用 Ollama/Hugging Face Transformers 跑开源模型(无 API 费)。例如 from transformers import pipeline; pipe = pipeline("text-generation", model="meta-llama/Llama-3.2-3B")。

7. 完整项目实战:Streamlit 聊天机器人

用 Groq 构建 Web UI。

app.py:

import streamlit as st
from groq import Groq
import os

client = Groq(api_key=os.environ["GROQ_API_KEY"])
st.title("Groq 聊天机器人")

if "messages" not in st.session_state:
    st.session_state.messages = []

for message in st.session_state.messages:
    with st.chat_message(message["role"]):
        st.markdown(message["content"])

prompt = st.chat_input("说点什么?")
if prompt:
    st.session_state.messages.append({"role":"user","content": prompt})
    with st.chat_message("user"):
        st.markdown(prompt)
    with st.chat_message("assistant"):
        stream = client.chat.completions.create(
            model="mixtral-8x7b-32768",
            messages=[{"role": m["role"],"content": m["content"]} for m in st.session_state.messages],
            stream=True
        )
        response = st.write_stream([chunk.choices[0].delta.content or "" for chunk in stream])
        st.session_state.messages.append({"role":"assistant","content":"".join(response)})

运行:streamlit run app.py。访问 localhost:8501。

8. 进阶学习路线

阶段重点资源
入门基本调用、流式OpenAI/Groq 官方 docs;本教程
中级工具/多模态、LangChainLangChain 教程;Hugging Face 课程
高级微调/代理、RAG'From Zero to LLM Hero' 指南; LiteLLM GitHub
专家网关/观测、自定义模型Helicone/BricksLLM; PyTorch 集成

目录

  1. Python 调用大模型 API 接口开发指南
  2. 0. 环境准备
  3. 基础:请求库
  4. 主流 SDK(推荐)
  5. 可选:异步/流式(高性能)
  6. 集成框架(高级)
  7. 1. 主流大模型 API 提供商速览
  8. 2. 基本调用
  9. 2.1 OpenAI 示例
  10. 2.2 Anthropic (Claude) 示例
  11. 2.3 Groq 示例
  12. 2.4 Hugging Face Inference API 示例
  13. 3. 高级技巧
  14. 3.1 流式响应(Streaming)
  15. 3.2 异步调用(Async,高并发)
  16. 3.3 工具调用(Function Calling)
  17. OpenAI 工具示例
  18. 如果调用工具,执行函数
  19. 3.4 多模态(图像/音频)
  20. 4. 统一多提供商:LiteLLM SDK
  21. 调用 OpenAI
  22. 切换到 Claude
  23. 5. 集成框架:LangChain(链式/代理开发)
  24. 6. 性能优化与最佳实践
  25. 7. 完整项目实战:Streamlit 聊天机器人
  26. 8. 进阶学习路线

更多推荐文章

查看全部
  • Java 工作中建表规约实战
  • WPF 中使用 ListView 封装组合控件 TreeView+DataGrid
  • 鸿蒙电商购物车实战:用户管理、商品列表与购物车功能实现
  • 多模态 AI 技术解析与未来人机交互演进
  • VSCode Copilot 认证失败排查与修复指南
  • 数据驱动多离散场景分布鲁棒电热综合能源系统优化 (Matlab 实现)
  • OpenWork 开源平替 Claude Cowork:本地优先的 AI 协作方案
  • Spring Bean 作用域、生命周期与自动装配源码解析
  • 基于 Kafka 的医嘱事件架构设计
  • Spring 日志模块 Spring-Jcl 详解与 Log4j 集成案例
  • SpringBoot 整合 Neo4j 图数据库实战指南
  • AI 热榜深度解析:平台生态、多智能体与评测体系趋势
  • 基于 SpringBoot 与 Vue 的电子产品销售系统设计与实现
  • 二分答案算法详解:木材加工与砍树问题
  • AI 绘画多设备协同:PC 生成、手机审核与平板标注工作流
  • 在 macOS 上通过 Docker 本地安装 OpenClaw 完整教程
  • PCIE044 基于复旦微 JFM7VX690T 的全国产化 FPGA 开发套件
  • Mac mini M4 本地部署 OpenClaw 与 Ollama 接入飞书机器人
  • 七款主流大模型英文降 AI 检测率横向测评与选型建议
  • Kali Linux 虚拟机安装与基础配置图文教程

相关免费在线工具

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online