如果您之前使用过 ChatGPT,那么 ChatGPT 的账号即为 OpenAI 账号,您可以直接使用。如果没有账号,可以在官网注册。
由于国内的网络限制,注册过程可能会比较复杂。网上有许多注册教程可供参考,您也可以选择在某些平台购买账号,或者直接购买一个有额度的 API Key。
登录后,将鼠标移动到页面左侧,您会看到一个弹出的侧边栏。
点击侧边栏中的“API Keys”进入 API Keys 页面。在这里,您可以管理(创建、删除等)所有的 API Key。
点击“Create new secret key”创建新 API Key,进行命名并确认。此时会弹出一个对话框,包含您创建的 Key,请务必立即保存,因为关闭对话框后将无法再次查看该 Key。
保存完成后,点击 Done,您就可以在该页面看到新创建的 API Key 了。
点击侧边栏中的“Usage”进入使用页面。该页面左侧显示了每天的花费,右侧则显示了额度。
在右侧的 Credit Grants 区域,分为三种颜色:灰色(未使用)、绿色(已使用)、红色(已过期)。只有在未使用状态(灰色状态)时,才能成功调用 API。
点击侧边栏中的“Setting”下的“Billing”进入账单页面。在这个页面中,您可以管理充值相关事项。
要充值,首先需要添加一种付款方式,点击 Payment methods 进行管理。由于网络限制,国内的 Visa 卡可能无法使用,您可以尝试使用国外的卡,或者使用网络卡。
添加支付方式后,回到 Overview 页面点击 Add to credit balance 进行充值。充值完成后,回到 Usage 页面即可查看可用额度的变化。
确保 Python 版本为 3.7.1 以上。为了方便使用,我使用 Anaconda 创建了一个虚拟环境。
OpenAI 默认会在环境变量中查找“OPENAI_API_KEY”,并使用其作为 OpenAI Key。您可以通过以下两种方式设置 OpenAI Key:
为所有项目设置 在系统环境变量中添加 OPENAI_API_KEY(按 Win 键搜索环境变量即可打开该页面)。添加完成后,可以打开 cmd,使用 echo %OPENAI_API_KEY%
检查是否设置成功。
python from openai import OpenAI
client = OpenAI()
为单个项目设置 在项目文件夹中创建 .env
文件(若要用 git 进行管理,请使用 gitignore 忽略),输入 OPENAI_API_KEY=(您的 Key)
。
plaintext
OPENAI_API_KEY=abc123
运行测试时,如果没有报错,则表示设置成功。
如果您希望使用其他环境变量名,可以使用以下代码:
python client = OpenAI( api_key=os.environ.get("CUSTOM_ENV_NAME"), )
以下是一个简单的 gpt-3.5 chat 请求示例:
python import os import dotenv from openai import OpenAI
dotenv.load_dotenv()
client = OpenAI( api_key=os.environ.get("OPENAI_API_KEY"), )
completion = client.chat.completions.create( model="gpt-3.5-turbo", messages=[ {"role": "system", "content": "You are a poetic assistant, skilled in explaining complex programming concepts with creative flair."}, {"role": "user", "content": "Compose a poem that explains the concept of recursion in programming."} ] )
print(completion.choices[0].message.content)
现在您可以在 Usage 页面 查看此次请求的花费、token 数量等信息(可能会有延迟)。
OpenAI API 可以理解语言(GPT-4 也可以理解图像),并返回文字。
python response = client.chat.completions.create( model="gpt-3.5-turbo", messages=[ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Who won the world series in 2020?"}, {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in 2020."}, {"role": "user", "content": "Where was it played?"} ] )
主要的输入是 messages
,它是一个 message 对象的列表。每个 message 对象由 role
(system、user 或 assistant)和 content
组成。一般来说,对话都是由一个 system 信息开头,然后跟着数个 user 或 assistant 信息。
system(可选):用于设置 AI 的行为,如个性或对话过程中的行为指示;
user:AI 要回应的信息;
assistant:之前 AI 回复的信息,也可以自己写,以给 AI 预期输出的参考。
每个回复中都有 finish_reason:
stop:API 返回信息已完成,或触发了 stop 参数传入的 stop sequence;
length:到达了 max_token 参数或模型的 token 限制;
tool_call:模型决定调用工具;
content_filter:由于内容过滤器,内容被隐藏;
null:还没完成。
GPT-4 的 vision 版本可以理解图像。在 user message 的 content 中,添加 type 为 image_url 的图像 URL 即可。
您可以同时添加多个图像。
若想让模型永远输出 JSON 对象,可以将 response_format 设置为 { "type": "json_object" }
。
要使用 JSON 模式,一定要在 Prompt 中指示模型生成 JSON(比如在 system 信息中)。
在使用输出的 JSON 前先检查 finish_reason,若是 length 则 JSON 结果是被剪裁的,不能使用。