2.4 Python环境搭建与第一个OpenAI API调用程序

4 阅读4分钟

2.4 Python环境搭建与第一个OpenAI API调用程序

一、环境准备

1.1 安装Python

确保已安装Python 3.8+。在终端执行:

python --version

若未安装,请从 python.org 下载安装。

1.2 创建虚拟环境(推荐)

# 创建项目目录
mkdir gpt-demo && cd gpt-demo

# 创建虚拟环境
python -m venv venv

# 激活虚拟环境
# Windows:
venv\Scripts\activate
# macOS/Linux:
# source venv/bin/activate

1.3 安装依赖

pip install openai python-dotenv
  • openai:OpenAI官方Python SDK
  • python-dotenv:从.env文件加载环境变量,便于安全管理API Key

二、配置API密钥

2.1 获取API Key

  1. 登录 platform.openai.com
  2. 进入 API Keys 页面
  3. 创建新密钥并复制保存(仅显示一次)

2.2 配置到项目

在项目根目录创建 .env 文件:

OPENAI_API_KEY=sk-your-api-key-here

注意:将 .env 加入 .gitignore,避免密钥泄露。


三、第一个"Hello, AI"程序

创建 hello_ai.py

"""
第一个OpenAI API调用程序
运行前确保已配置 OPENAI_API_KEY
"""

import os
from dotenv import load_dotenv
from openai import OpenAI

# 加载.env中的环境变量
load_dotenv()

# 初始化客户端
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

def main():
    response = client.chat.completions.create(
        model="gpt-3.5-turbo",
        messages=[
            {"role": "system", "content": "你是一个友好的AI助手。"},
            {"role": "user", "content": "用一句话介绍你自己。"}
        ],
        temperature=0.7,
        max_tokens=200
    )
    
    reply = response.choices[0].message.content
    print("AI回复:", reply)

if __name__ == "__main__":
    main()

运行:

python hello_ai.py

若配置正确,将看到AI的自我介绍。


四、交互式对话版本

"""
简单的交互式对话程序
"""

import os
from dotenv import load_dotenv
from openai import OpenAI

load_dotenv()
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))

messages = [
    {"role": "system", "content": "你是一个有帮助的AI助手,回答简洁准确。"}
]

def chat(user_input: str) -> str:
    messages.append({"role": "user", "content": user_input})
    response = client.chat.completions.create(
        model="gpt-3.5-turbo",
        messages=messages,
        temperature=0.7,
        max_tokens=500
    )
    reply = response.choices[0].message.content
    messages.append({"role": "assistant", "content": reply})
    return reply

if __name__ == "__main__":
    print("输入 'quit' 退出对话\n")
    while True:
        user_input = input("你: ").strip()
        if user_input.lower() == "quit":
            break
        if not user_input:
            continue
        reply = chat(user_input)
        print("AI:", reply, "\n")

五、常见错误与排查

错误原因解决
AuthenticationErrorAPI Key无效或未配置检查.env与OPENAI_API_KEY
RateLimitError请求过于频繁降低并发、增加重试间隔
InvalidRequestError参数错误(如model不存在)核对model ID与参数格式

六、国内网络与代理配置

6.1 访问OpenAI API的常见问题

国内直接访问OpenAI API可能遇到连接超时。可选方案:

  • 代理:在环境中设置HTTP_PROXYHTTPS_PROXY
  • 镜像/中转:使用第三方提供的API中转服务(需注意安全与合规)
  • 国内模型:使用DeepSeek、通义千问等兼容API的国产模型(见第6章)

6.2 代理配置示例

import os
os.environ["HTTP_PROXY"] = "http://127.0.0.1:7890"
os.environ["HTTPS_PROXY"] = "http://127.0.0.1:7890"
# 在创建OpenAI client之前设置

6.3 OpenAI SDK的base_url

若使用中转服务,可指定自定义base_url:

client = OpenAI(
    api_key="your-key",
    base_url="https://your-proxy.com/v1"
)

七、项目结构建议

gpt-demo/
├── .env              # API密钥(不提交)
├── .gitignore        # 包含 .env
├── requirements.txt  # openai, python-dotenv
├── hello_ai.py       # 第一个程序
└── chat.py           # 交互式对话

八、常见错误与排查

错误原因解决
AuthenticationErrorAPI Key无效或未配置检查.env与OPENAI_API_KEY
RateLimitError请求过于频繁降低并发、增加重试间隔
InvalidRequestError参数错误(如model不存在)核对model ID与参数格式
ConnectionError/Timeout网络问题配置代理或使用国内模型
ModuleNotFoundError依赖未安装pip install openai python-dotenv

九、与《大模型应用开发极简入门》第2.4节的对应

本书第2章「开始使用OpenAI Python库」强调环境搭建:安装 openai 库、API 密钥配置、基础调用代码;并给出实战目标:编写第一个「Hello, AI」程序,实现文本生成。本节与之对应:环境准备对应「安装与配置」,第一个 "Hello, AI" 程序对应「基础调用代码」,交互式对话版本对应在代码中实现多轮调用。书中建议的 python-dotenv.env 管理 API Key 在本节已完整体现,便于与第3章「API 密钥安全管理」衔接。


十、requirements.txt 与依赖锁定

在项目根目录创建 requirements.txt,便于他人复现环境:

openai>=1.0.0

python-dotenv>=1.0.0

安装时执行 pip install -r requirements.txt。若需锁定版本,可使用 pip freeze > requirements.txt(注意会包含全部已安装包,通常仅保留项目直接依赖即可)。


十一、响应对象结构与错误处理

11.1 常用字段

  • response.choices[0].message.content:助手回复文本
  • response.choices[0].message.role:一般为 "assistant"
  • response.usage:可选,包含 prompt_tokenscompletion_tokenstotal_tokens,用于成本统计

11.2 简单错误处理示例

try:
    response = client.chat.completions.create(...)
    reply = response.choices[0].message.content
except openai.AuthenticationError:
    print("API Key 无效,请检查 .env")
except openai.RateLimitError:
    print("请求过于频繁,请稍后重试")
except openai.APIError as e:
    print("API 错误:", e)

首次运行若报错,请先确认 .envOPENAI_API_KEY 已填写且无多余空格,再执行 python hello_ai.py 验证。


十二、小结

通过本节,你已完成 Python 环境搭建、API 密钥配置与第一个调用程序。掌握虚拟环境、.env 配置与基础调用方式,是后续开发的基础。下一节将深入 ChatCompletion API 的多轮对话与消息结构。


下一节预告:2.5 ChatCompletion API多轮对话实现与消息结构详解