pip install openai
如果有环境配置需要,可以通过下面依赖安装
pip install -r requirements.txt
如果是Windows环境,建议使用Anaconda
如果是kali等Linux虚拟机,建议使用下面指令新建独立环境,使用独立环境里的python
python3 -m env path/to/env
path/to/env/bin/python ...
path/to/env/bin/pip ...
考虑安全问题,代码中不应该包含key原文
Windows中,可以通过编辑环境变量来创建,键名为OPENAI_KEY,键值为sk-…
Linux命令行中,通过下面命令引入。如果希望永久存储在环境变量中,可以在.bashrc或.zshrc文件末尾添加下面这行语句
export OPENAI_KEY='sk-......'
之后,在python中,使用下面命令即可引入环境变量
import os
import openai
openai.api_key = os.getenv("OPENAI_KEY")
下面是构造一个请求可能使用到的参数及其含义
参数名 | 功能 |
---|---|
model |
指定要使用的模型。 |
messages |
包含对话历史的列表,提供上下文信息。 |
max_tokens |
控制生成回复的最大标记数量。 |
temperature |
控制生成的多样性。 |
top_p |
限制生成回复的选择范围。 |
frequency_penalty |
控制回复中重复内容的惩罚。 |
presence_penalty |
控制回复中提到指定角色的惩罚。 |
stop |
一个包含标记的列表,用于指定生成回复的停止条件。 |
n |
控制生成回复的数量。 |
log_level |
设置日志级别,用于调试和记录 API 请求和响应。 |
logprobs |
控制是否返回生成回复中每个标记的对数概率值。 |
user |
设置用户 ID,用于多用户环境下区分不同的用户。 |
engine |
指定底层模型引擎,如 text-davinci-003 。 |
下面给出一个请求示例
import os
import openai
openai.api_key = os.getenv("OPENAI_KEY")
# 定义对话历史
conversation_history = [
{'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?'}
]
# 构造 OpenAI 请求
def get_completion_from_messages(messages, model="gpt-3.5-turbo", temperature=0):
response = openai.ChatCompletion.create(
model=model,
messages=messages,
temperature=temperature, # 控制模型输出的随机程度
)
#return response.choices[0].message["content"]
return response
# 发送 OpenAI 请求并获取回复,类似于交互式界面,实现了上下文功能
while True:
user_input=input()
conversation_history.append({'role':'user','content':user_input})
response = get_completion_from_messages(conversation_history)
# print(response)
print(response.choices[0].message["content"])
conversation_history.append({'role':'assistant','content':response.choices[0].message["content"]})