【人工智能】一文教你用Python创建你的第一个OpenAI API项目

【精选优质专栏推荐】


每个专栏均配有案例与图文讲解,循序渐进,适合新手与进阶学习者,欢迎订阅。

在这里插入图片描述

前言

随着人工智能和大语言模型的发展,越来越多的开发者希望在本地搭建并使用 OpenAI 的先进模型,如 GPT-4。本教程旨在指导读者从零开始,通过 Python 和 FastAPI 搭建一个可运行的 OpenAI API 项目,体验模型推理与交互。

本文内容覆盖环境配置、依赖安装、API 调用以及项目测试。完成教程后,你将掌握创建本地 API 服务的基本流程,并为进一步开发前端界面或扩展功能打下基础。

在此之前,需确保计算机已安装 Python 3.9 或更高版本,并具备基础至中等水平的 Python 编程知识。文中代码可在支持 Python 的 IDE(如 Visual Studio Code)中运行。

获取 OpenAI Key

要运行 OpenAI API 项目,需要先获取 API 密钥。首先访问 OpenAI 官网,若尚未注册需先完成注册,已注册用户可直接登录。注册方式包括电子邮箱、Google 账户或 Microsoft 账户。

登录后,点击右上角的设置图标(齿轮),在左侧菜单中选择 Billing(账单),即可看到类似如下的界面:

在这里插入图片描述

目前,要稳定使用 GPT-4 等现代 OpenAI 模型,需开通付费计划,可选择订阅制或按量计费。在此过程中,需要提供借记卡或信用卡信息及账单地址,并完成简要的账户验证。

随后进入 API Keys 页面,点击右上角 + Create new secret key 生成新的 API 密钥。密钥格式为 sk-XXXXX,其中 XXXXX 为一串较长的字母数字组合,可能包含短横线或下划线。请将该密钥复制备用,以便后续使用。

设置 Python 项目和虚拟环境

假设你使用 VS Code(其他 IDE 的操作可能略有差异),首先在左侧文件目录中创建一个新项目文件夹,命名为 openai_api_hello 或类似名称。作为我们的第一个 OpenAI API 项目,文件名中的 hello 代表经典的 “Hello World”。

在该文件夹内新建两个文件:main.py 和 requirements.txt。其中 Python 文件暂时留空,在 requirements.txt 中添加以下内容:

fastapi
uvicorn
openai
python-dotenv

以上库和依赖需在虚拟环境中安装,添加之后点击保存。

由于项目依赖较多,建议使用虚拟环境,以便隔离依赖、避免版本冲突,并保持开发环境整洁。操作步骤如下:

1.按 Command + Shift + P 打开命令面板。

2.在下拉列表中选择 Python: Create Environment,或手动输入并选择 venv。

3.可选择创建新虚拟环境或使用现有环境。首次项目建议新建,并选择合适的 Python 版本(本文示例为 Python 3.11)。

4.系统会提示选择先前创建的 requirements.txt 并安装其中的依赖。这一步至关重要,因为项目运行需要 FastAPI、Uvicorn、OpenAI 和 Python-dotenv。

5.若最后一步未能执行,可在 IDE 终端中手动运行以下命令:

pip install fastapi uvicorn openai python-dotenv

主 Python 程序

接下来,在之前创建的 main.py 文件中添加以下代码:

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 Key:
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 库。当前版本暂未用到它,但若首次尝试成功,可在后续改进中通过 .env 文件管理 API Key,而不是将 Key 直接写入代码。具体方法稍后说明。

关键部分:

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

此处需替换为你生成的实际 API Key,具体是将 sk-XXXXX 替换为你的实际 key,并保留两边的引号。

若希望将 Key 存储在单独文件中,可在项目文件夹中创建 .env 文件,写入:

OPENAI_API_KEY=<YOUR KEY GOES HERE>

再将将以下指令:

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

替换为:

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 Key 直接粘贴在 Python 文件中,则无需上述步骤。

继续看其余部分:

app = FastAPI()

class ChatRequest(BaseModel):
    message: str

第一行创建基于 Web API 的 FastAPI 应用实例,用于处理请求。第二部分定义了一个 Pydantic 模型,FastAPI 将使用它验证和解析输入。请求体需为 JSON 格式,其中 message: str 字段表示传入的提示信息。

程序的主要函数如下:

@app.post("/chat")
async def chat(request: ChatRequest):
    (...)

此处定义了 API 的核心逻辑,即创建 GPT-4 实例、发送输入并返回响应。

运行和测试项目

保存 Python 文件,然后点击 “Run” 图标,或在终端运行:

python main.py

在 IDE 终端中运行以下命令(请确保当前目录正确且虚拟环境已激活):

uvicorn main:app --reload --port 8010

若终端显示类似如下的 INFO 消息,表示 FastAPI 服务器已成功启动:

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.

该服务可通过以下 URL 访问:

http://127.0.0.1:8010/docs

示例使用端口 8010,可根据实际情况调整端口号。

在浏览器中打开该 URL,若一切正常,将显示 FastAPI 的文档 Web 界面:

在这里插入图片描述

接下来进入最关键的部分:测试 API 项目。

在界面中,点击 POST /generate 框旁的箭头展开,然后选择 Try it out。

在此,你可以输入自定义提示向 GPT-4 提问。输入内容需使用 JSON 格式,将默认的 “string” 替换为你的实际提示,例如:

在这里插入图片描述

点击 Execute 按钮后,几秒钟内即可向下滚动查看响应:

在这里插入图片描述

至此,你的 API 项目已可以与 OpenAI 的 GPT-4 模型进行交互。

完成第一个项目后,可考虑的后续开发方向包括:

  • 使用 React、Vue 或 HTML + JavaScript,甚至 Streamlit 添加前端界面;

  • 改进错误处理流程;

  • 尝试其他 OpenAI 模型,如 GPT-3.5 或 o3。

结语

本文以逐步方式展示了如何搭建并运行首个本地 OpenAI API 项目,使用 GPT-4 等先进模型,并通过 FastAPI 提供 Web 界面,实现快速模型推理。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋说

感谢打赏

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值