以下是详细的OpenAI API使用方法:
获取API密钥
- 访问OpenAI官方网站(https://platform.openai.com/)并注册账号.
- 登录后,点击右上角的个人资料名称或图标,选择“View API Keys”.
- 在API密钥页面,点击“Create new secret key”来创建新的API密钥,将其妥善保存,因为此密钥仅在生成时显示一次.
安装OpenAI库
在命令行中使用 pip install openai
命令安装OpenAI的Python库,以便在Python代码中调用API.
配置API密钥
在Python代码中,通过以下方式配置API密钥 :
import openai
openai.api_key = "YOUR_API_KEY"
将 "YOUR_API_KEY"
替换为你获取到的真实API密钥,你也可以按照以下方式将密钥设置为环境变量来配置:
- macOS/Linux系统:在终端中输入
export OPENAI_API_KEY="你的_api_密钥_在这里"
。 - Windows系统:在PowerShell中输入
setx OPENAI_API_KEY "你的_api_密钥_在这里"
。
选择模型与调用API
OpenAI提供了多种模型和不同的API端点,以下是一些常见的应用场景及对应的调用示例:
文本生成
使用 text-davinci-003
等模型进行文本生成 :
response = openai.Completion.create(
engine="text-davinci-003",
prompt="写一段关于人工智能未来发展的描述。",
max_tokens=100
)
print("生成的文本:", response.choices[0].text.strip())
engine
:指定使用的模型,不同模型在理解和生成能力上有所差异 。prompt
:生成文本的输入内容,模型会依据此提示生成相应文本 。max_tokens
:限制生成文本的长度,可根据实际需求调整 。
问答系统
将问题作为提示输入,获取模型生成的答案 :
question = "什么是生成式AI?"
response = openai.Completion.create(
engine="text-davinci-003",
prompt=f"回答以下问题:{question}",
max_tokens=50
)
print("回答:", response.choices[0].text.strip())
文本总结
对长文本进行总结 :
long_text = """生成式AI是指使用AI模型生成文本、图像、声音或其他内容。它基于大型神经网络模型,通过学习大量数据,能够生成类似人类创造的内容。"""
response = openai.Completion.create(
engine="text-davinci-003",
prompt=f"对以下内容进行总结:{long_text}",
max_tokens=50
)
print("总结:", response.choices[0].text.strip())
代码生成和解释
- 代码生成:使用
code-davinci-002
等模型生成代码 :
response = openai.Completion.create(
engine="code-davinci-002",
prompt="写一段python代码,打开一个文本文件并读取内容。",
max_tokens=50
)
print("生成的代码:", response.choices[0].text.strip())
- 代码解释:让模型解释代码的功能 :
code_to_explain = "for i in range(10): print(i**2)"
response = openai.Completion.create(
engine="code-davinci-002",
prompt=f"解释以下python代码:{code_to_explain}",
max_tokens=50
)
print("代码解释:", response.choices[0].text.strip())
图像生成
使用 image.create
方法和 dall-e
模型根据文本描述生成图像 :
response = openai.image.create(
prompt="沙滩上的椰树,晴天,大海背景",
n=1,
size="512x512"
)
print("生成的图片 url:", response['data'][0]['url'])
prompt
:描述图像的文本,dall-e
会依据此描述生成相应图像 。n
:生成图像的数量 。size
:控制生成图像的尺寸,支持256x256、512x512和1024x1024等不同分辨率 。
聊天机器人或自定义对话系统
使用 gpt-3.5-turbo
或 gpt-4
等模型构建对话系统 :
def chat_with_ai(prompt):
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "user", "content": prompt}
]
)
return response['choices'][0]['message']['content']
# 启动对话
print("AI:", chat_with_ai("你好!我是一个AI助手。有什么可以帮助你的?"))
print("AI:", chat_with_ai("请解释一下量子力学。"))
调整参数
在调用API时,可以根据具体需求调整各种参数,如:
max_tokens
:控制生成文本的长度,值越大生成的文本越长,但同时也会增加API调用的成本和生成时间.temperature
:调整生成内容的创造性,取值范围在0到1之间。较高的值会使生成的内容更具随机性和创造性,较低的值则会使生成的内容更保守、更接近训练数据中的常见模式.top_p
:控制生成文本时从概率分布中选择单词的范围,较小的值会使生成的文本更集中于概率较高的单词,较大的值则会增加选择低概率单词的机会,从而使生成的内容更具多样性 。frequency_penalty
和presence_penalty
:分别用于控制生成文本中单词的重复频率和新单词的出现频率,可以避免生成的文本过于重复或单调 。