OpenAI SDK 环境搭建教程
OpenAI SDK 环境搭建教程不管你后面用 LangChain / LangGraph / 原生 AgentOpenAI SDK 都是绕不开的底座——而且国产模型DeepSeek、Qwen、GLM全兼容这套接口装一次能吃遍天。一、前置条件Python ≥ 3.9推荐 3.10/3.113.13 刚出部分库还没跟上一个 API KeyOpenAI 官方 / DeepSeek / 阿里百炼 / 腾讯云 AI 都行检查python --version # 或 python3 --version二、项目初始化建议走虚拟环境别全局装踩过坑的都懂。mkdir my_agent cd my_agent python -m venv .venv # 激活 # macOS/Linux: source .venv/bin/activate # Windows: # .venv\Scripts\activate激活后命令行前面会出现(.venv)标记说明进沙箱了。三、安装 OpenAI SDKpip install --upgrade openai python-dotenvopenaiSDK 本体python-dotenv从.env文件读 API Key避免硬编码 当前最新大版本是openai 1.02023 年底重构过和 0.x 旧版 API 不兼容。如果你抄的老教程报错ChatCompletion.create() got an unexpected keyword argument...就是版本不对。四、配置 API Key关键步骤1. 建.env文件千万别提交到 Gittouch .env.env内容# OpenAI 官方 OPENAI_API_KEYsk-xxxxxxxxxxxxxxxx OPENAI_BASE_URLhttps://api.openai.com/v1 # 或用 DeepSeek便宜国内直连 # OPENAI_API_KEYsk-xxxxxxxxx # OPENAI_BASE_URLhttps://api.deepseek.com/v1 # 或用 Qwen阿里百炼 # OPENAI_API_KEYsk-xxxxxxxxx # OPENAI_BASE_URLhttps://dashscope.aliyuncs.com/compatible-mode/v1 为什么配BASE_URL国产模型 API 格式和 OpenAI 完全兼容只换地址和 Key 就能用后面代码一行不用改。2..gitignore别忘了.env .venv/ __pycache__/五、最小可运行示例新建main.pyimport os from openai import OpenAI from dotenv import load_dotenv load_dotenv() client OpenAI( api_keyos.getenv(OPENAI_API_KEY), base_urlos.getenv(OPENAI_BASE_URL), ) resp client.chat.completions.create( modelgpt-4o-mini, # DeepSeek 换成 deepseek-chat messages[ {role: system, content: 你是一个 Oracle DBA 专家}, {role: user, content: 什么场景不适合建索引用三点说明} ], temperature0.7, max_tokens500, ) print(resp.choices[0].message.content)跑python main.py能输出 → 环境 OK。六、几个必知的 SDK 用法1. 流式输出StreamingAgent 对话必备不然用户干等。stream client.chat.completions.create( modelgpt-4o-mini, messages[{role: user, content: 解释 Oracle GROUP BY}], streamTrue, ) for chunk in stream: content chunk.choices[0].delta.content if content: print(content, end, flushTrue)2. Function CallingAgent 工具调用的根基tools [{ type: function, function: { name: query_oracle, description: 执行 Oracle SQL, parameters: { type: object, properties: { sql: {type: string, description: SQL 语句} }, required: [sql] } } }] resp client.chat.completions.create( modelgpt-4o-mini, messages[{role: user, content: 查 emp 表 10 号部门多少人}], toolstools, ) print(resp.choices[0].message.tool_calls)3. 结构化输出Pydantic 模式v1.40from pydantic import BaseModel class SqlAnswer(BaseModel): sql: str explanation: str resp client.beta.chat.completions.parse( modelgpt-4o-mini, messages[{role: user, content: 写一条查 10 号部门员工的 SQL}], response_formatSqlAnswer, ) print(resp.choices[0].message.parsed.sql)七、国产模型对照表BASE_URL 模型名模型BASE_URLmodel 名OpenAI 官方https://api.openai.com/v1gpt-4o-mini/gpt-4oDeepSeekhttps://api.deepseek.com/v1deepseek-chat/deepseek-reasonerQwen阿里百炼https://dashscope.aliyuncs.com/compatible-mode/v1qwen-plus/qwen-maxGLM智谱https://open.bigmodel.cn/api/paas/v4glm-4-flash腾讯 Hunyuanhttps://api.hunyuan.cloud.tencent.com/v1hunyuan-lite八、常见报错排错报错原因解决AuthenticationError 401Key 错了 / 没加载.env检查os.getenv(OPENAI_API_KEY)是否 NoneNotFoundError 404model 名拼错 / base_url 不对核对模型名DeepSeek 是deepseek-chat不是gpt-4oRateLimitError 429配额用完 / 新 Key 限流等或换 Keyconnect timeout网络OpenAI 官方需梯子换国产模型或配代理AttributeError: ChatCompletion.createopenai 0.x 老版本pip install -U openai升到 1.x九、项目结构建议从小开始my_agent/ ├── .venv/ ├── .env # Key不上 Git ├── .gitignore ├── requirements.txt # pip freeze requirements.txt ├── main.py # 入口 └── agent/ ├── __init__.py ├── tools.py # 工具函数 └── prompts.py # System Prompt 模板requirements.txt至少锁openai1.60 python-dotenv