
你的第一个 OpenAI API Python 项目分步指南
图片由 Editor | ChatGPT 提供
在最近的一篇文章中,我演示了如何设置您的第一个大型语言模型(LLM),这些模型已经下载并使用 Ollama 运行。Ollama 是一个用户友好的框架,支持多个平台来运行像 Mistral、LlaMA、Gemma 等开放模型。在此项目中,我们还使用 FastAPI 实现了一个轻量级的 REST API 和 Web 界面,用于用户与模型的交互。
应广大读者的要求,我们现在将整理一篇类似的循序渐进的文章,指导您完成使用专业 LLM 的第一个项目,这次将使用 OpenAI API 来访问 GPT-4 等最先进的模型,而不是在您的机器上下载和使用本地模型。
热身阅读
为了熟悉或回顾本文中使用的概念和工具,这里有一些推荐的或相关的阅读材料。
- 入门 LLM 的 5 个必备免费工具 – 熟悉我们将要使用的一些工具。
- 10 个大型语言模型关键概念解释 – 快速掌握 LLM 的术语。
- Python LLM 入门指南(使用 Ollama) – 尽管我们今天不使用 Ollama,但文章的其他部分与我们将要做的内容非常相关。
当然,如果您还没有阅读本系列之前的文章 Python 本地 LLM API 入门项目分步指南,建议您现在阅读。
还在看吗?好的,我们开始吧。
分步流程
在本教程中,我们将假定您已在机器上安装了 Python 3.9 或更高版本,并且您已掌握了 Python 编程语言的基础到中级知识。我们将使用的代码可以在像 Visual Studio Code 这样的 Python 友好型 IDE 中实现 — 请注意,由于需要使用多个依赖项以及推荐使用虚拟环境,这可能不适合在 Google Colab 或类似的云端笔记本环境中运行。不用担心,我将指导您完成所有必要的设置步骤。
获取 OpenAI API 密钥
要运行您自己的 OpenAI API 项目,您需要一个API 密钥。首先,请访问OpenAI 网站,如果您已经注册了 OpenAI 平台,请登录,或者进行注册。如果您是新用户,可以使用您的电子邮件地址、Google 或 Microsoft 账户进行注册。然后,转到设置(右上角的齿轮图标)并点击左侧菜单中的“Billing”(账单)。您应该会看到类似这样的内容。

截至目前,要可靠地访问 GPT-4 等现代 OpenAI 模型,需要付费计划,无论是订阅还是按需付费。在此过程中,系统会要求您提供借记卡/信用卡详细信息和账单地址,随后会有一个简单的账户验证过程。
接下来,转到API 密钥页面,然后通过点击右上角的 + Create new secret key 来创建新的 API 密钥。生成的密钥应为 sk-XXXXX
格式,其中 XXXXX
是一个长串的字母数字字符串,其中可能还包含一些特殊字符,如连字符和下划线。您稍后需要复制并粘贴此 API 密钥。
设置 Python 项目和虚拟环境
假设您正在使用 VS Code(如果您使用其他 IDE,可能需要采取略微不同的操作),让我们在左侧的文件目录中创建一个新的项目文件夹,并将其命名为 openai_api_hello
或类似名称:因为这是我们的第一个 OpenAI API 项目,“hello”作为项目名称的一部分,代表着无处不在的“Hello World”!
在此文件夹内,我们将再添加两个文件:main.py
和 requirements.txt
。我们暂时将 Python 文件留空,并将以下内容添加到 requirements.txt
文件中:
1 2 3 4 |
fastapi uvicorn openai python-dotenv |
这些是我们将在项目运行的虚拟环境中安装所需的库和依赖项。请确保您已保存对修改文件的更改。
设置虚拟环境对于处理需要多个依赖项的项目是推荐的,因为它可以隔离它们,防止库版本之间的冲突,并保持您的“开发生态系统”的有序性。您可以通过以下方式设置它:
- 按 Command + Shift + P 打开命令面板。
- 从下拉列表中选择 Python:Create Environment,或者手动输入,然后选择 venv。
- 您可以选择创建新的虚拟环境或选择现有的环境:我们建议为像这样的首次项目创建新的。然后,选择一个合适的 Python 版本(我选择了 Python 3.11)。
- 您现在应该会被提示选择之前创建的
requirements.txt
文件并安装列出的依赖项。这非常重要,因为我们的 Python 项目将需要 FastAPI、Uvicorn、OpenAI 和 Python-dotenv 才能正常工作。
如果最后一步不起作用,请尝试在 IDE 的终端中运行此命令:
1 |
pip install fastapi uvicorn openai python-dotenv |
主要的 Python 程序
现在是时候填充我们之前创建的空 main.py
文件了,添加以下代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
from fastapi import FastAPI, HTTPException from pydantic import BaseModel import os from openai import OpenAI from dotenv import load_dotenv from dotenv import load_dotenv import os # 重要提示:在此处的 "" 中粘贴您的 OpenAI API 密钥 client = OpenAI(api_key="sk-...") app = FastAPI() class ChatRequest(BaseModel): message: str @app.post("/chat") async def chat(request: ChatRequest): try: completion = client.chat.completions.create( model="gpt-4", messages=[ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": request.message} ] ) return {"response": completion.choices[0].message.content} except Exception as e: raise HTTPException(status_code=500, detail=str(e)) @app.get("/") def root(): return {"message": "Hello, World"} |
在继续之前,让我们看一下代码的不同部分。相信我,它非常简单。
首先,导入了必要的库和模块,以及 os
的原生库。在此代码版本中我们不需要它,但如果首次尝试成功,您可能希望返回到 Python 代码中,并将 API 密钥存储在项目中的一个附加文件(名为 .venv
)中,而不是直接将整个 API 密钥粘贴到 Python 程序中。我们稍后将对此进行详细说明。
非常重要的一点是,在这一行:
1 |
client = OpenAI(api_key="sk-XXXXX") |
您必须粘贴之前生成的 OpenAI API 密钥,具体来说是将 sk-XXXXX
字符串替换为您实际的密钥,并保留两侧的引号。或者,如果您想将 API 密钥存储在一个单独的文件中,请在项目文件夹中创建一个名为 .venv
的文件,并添加:
1 |
OPENAI_API_KEY=<YOUR KEY GOES HERE> |
要使用此方法访问密钥,请将以下指令替换为:
1 |
client = OpenAI(api_key="sk-XXXXX") |
替换为以下指令:
1 2 3 4 5 6 7 |
load_dotenv(dotenv_path=os.path.join(os.path.dirname(__file__), ".env")) api_key = os.getenv("OPENAI_API_KEY") print("Loaded API key:", api_key) # 用于调试和潜在的故障排除,如果有效则删除。 if not api_key: raise RuntimeError("OPENAI_API_KEY not found in environment variables") |
如果您只是决定将 API 密钥粘贴在 Python 文件代码中,则无需执行最后几个步骤。让我们看看更多的代码部分。
1 2 3 4 |
app = FastAPI() class ChatRequest(BaseModel): message: str |
第一条指令创建一个 FastAPI 应用程序实例,该应用程序基于一个提供服务的 Web API。第二条指令定义了一个所谓的 Pydantic 模型,FastAPI 利用该模型来平滑地验证和解析输入或请求,期望请求的主体为 JSON 格式。message: str
指令向请求主体添加一个名为“message”的字段,其值是一个字符串,用户将在其中指定 LLM 的提示。
程序的主要功能是这个:
1 2 3 |
@app.post("/chat") async def chat(request: ChatRequest): (...) |
这是定义 API 主要逻辑的地方,即通过创建实例来访问 GPT-4 模型,向其发送输入,并收集响应。
运行和测试项目
保存 Python 文件,然后点击“运行”图标,或在终端中运行 python main.py
。您还需要在 IDE 终端中运行以下命令(为此,非常重要,请确保您位于项目的正确目录中,并且虚拟环境已激活):
1 |
uvicorn main:app --reload --port 8010 |
如果您看到一系列像这样的“INF0”消息输出,这是一个好迹象,您的 FastAPI 服务器现在正在运行。
1 2 3 4 5 6 |
INFO: Will watch for changes in these directories: ['<PATH_IN_YOUR_MACHINE>/openai_api_hello'] INFO: Uvicorn running on http://127.0.0.1:8010 (Press CTRL+C to quit) INFO: Started reloader process [98131] using StatReload INFO: Started server process [98133] INFO: Waiting for application startup. INFO: Application startup complete. |
现在可以通过 http://127.0.0.1:8010/docs
访问该服务(这里我们使用了端口 8010,但请确保您使用的是正确的端口)。在浏览器中打开此 URL,如果一切顺利,您将看到一个类似这样的 FastAPI Docs Web 界面。

我们将进入流程中最激动人心的部分:测试我们的 API 项目!在显示的界面中,点击 POST/generate
框旁边的箭头展开它,然后点击“Try it out”(试用)按钮。
在这里,您可以输入任何您想问 GPT-4 的问题。您必须在专用的类似 JSON 的参数值中进行,如下所示,替换默认提示:"string"
。例如:

点击“Execute”(执行)按钮后,几秒钟后,您可以通过向下滚动一点来获得响应。

做得好,您的 API 项目现在已经开始与 OpenAI 的 GPT-4 模型进行对话了!
完成第一个项目后,您可能会想接下来做什么。后续开发的可能想法包括使用 React 或 Vue 等技术,或者 HTML 结合 JavaScript,甚至 Streamlit 来添加前端 UI。改进错误处理程序是另一个合乎逻辑的方法,或者尝试其他 OpenAI 模型,如 GPT-3.5 或 o3。
结论
本文分步说明了如何设置和运行您的第一个本地 OpenAI API 项目,用于使用 OpenAI 最先进的模型(如 GPT-4),基于 FastAPI,通过 Web 界面进行快速模型推理。如果您还没有查看构建第一个本地 LLM 项目的相关教程(在本文顶部链接),请不要错过!
Iván,写得真棒。注意到您说 API 密钥应该存储在 .venv 文件中(实际上是虚拟环境文件的文件夹),而不是 .env 文件中。
谢谢 Nonso!感谢您的反馈!