# OpenAI API 学习笔记 **Published by:** [xiaosu](https://paragraph.com/@xiaosu/) **Published on:** 2025-02-11 **URL:** https://paragraph.com/@xiaosu/openai-api ## Content 获取 OpenAI API Key注册 OpenAI 账号如果您之前使用过 ChatGPT,那么 ChatGPT 的账号即为 OpenAI 账号,您可以直接使用。如果没有账号,可以在官网注册。 由于国内的网络限制,注册过程可能会比较复杂。网上有许多注册教程可供参考,您也可以选择在某些平台购买账号,或者直接购买一个有额度的 API Key。获取 OpenAI API Key登录后,将鼠标移动到页面左侧,您会看到一个弹出的侧边栏。 点击侧边栏中的“API Keys”进入 API Keys 页面。在这里,您可以管理(创建、删除等)所有的 API Key。 点击“Create new secret key”创建新 API Key,进行命名并确认。此时会弹出一个对话框,包含您创建的 Key,请务必立即保存,因为关闭对话框后将无法再次查看该 Key。 保存完成后,点击 Done,您就可以在该页面看到新创建的 API Key 了。获取 API 使用额度额度查询点击侧边栏中的“Usage”进入使用页面。该页面左侧显示了每天的花费,右侧则显示了额度。 在右侧的 Credit Grants 区域,分为三种颜色:灰色(未使用)、绿色(已使用)、红色(已过期)。只有在未使用状态(灰色状态)时,才能成功调用 API。额度充值点击侧边栏中的“Setting”下的“Billing”进入账单页面。在这个页面中,您可以管理充值相关事项。 要充值,首先需要添加一种付款方式,点击 Payment methods 进行管理。由于网络限制,国内的 Visa 卡可能无法使用,您可以尝试使用国外的卡,或者使用网络卡。 添加支付方式后,回到 Overview 页面点击 Add to credit balance 进行充值。充值完成后,回到 Usage 页面即可查看可用额度的变化。Python 使用测试配置 Python确保 Python 版本为 3.7.1 以上。为了方便使用,我使用 Anaconda 创建了一个虚拟环境。安装 OpenAI 库设置您的 API KeyOpenAI 默认会在环境变量中查找“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)。 plaintextOnce you add your API key below, make sure to not share it with anyone! The API key should remain private.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 数量等信息(可能会有延迟)。功能介绍(Python 为例)文本生成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 输出若想让模型永远输出 JSON 对象,可以将 response_format 设置为 { "type": "json_object" }。要使用 JSON 模式,一定要在 Prompt 中指示模型生成 JSON(比如在 system 信息中)。在使用输出的 JSON 前先检查 finish_reason,若是 length 则 JSON 结果是被剪裁的,不能使用。图像生成👉 野卡 | 一分钟注册,轻松订阅海外线上服务 ## Publication Information - [xiaosu](https://paragraph.com/@xiaosu/): Publication homepage - [All Posts](https://paragraph.com/@xiaosu/): More posts from this publication - [RSS Feed](https://api.paragraph.com/blogs/rss/@xiaosu): Subscribe to updates