这个 get_completion
函数的目的是与 OpenAI 的 GPT-3.5-turbo 模型进行交互,发送提示并获取响应。以下是详细解释:
函数定义
def get_completion(prompt, model="gpt-3.5-turbo"):
prompt
:这是传递给模型的文本提示,通常是一个字符串,告诉模型你想要它生成什么内容。model
:这是指定使用的模型名称,默认值是gpt-3.5-turbo
。如果你有其他模型可以使用,可以在调用函数时指定不同的模型。
创建消息
messages = [{"role": "user", "content": prompt}]
messages
:这是一个列表,包含一个字典。字典中的键值对{"role": "user", "content": prompt}
用于定义用户发送的消息。
role
:这个键的值是"user"
,表示这是用户发送的消息。content
:这个键的值是prompt
,即用户提供的文本提示。
调用 OpenAI API
response = openai.ChatCompletion.create(
model=model,
messages=messages,
temperature=0,
)
openai.ChatCompletion.create
:这是调用 OpenAI API 的方法,用于创建聊天完成请求。
model
:指定要使用的模型,值是model
参数(默认是gpt-3.5-turbo
)。messages
:指定要发送给模型的消息列表,即前面创建的messages
。temperature
:控制生成文本的随机性。值越低(如 0),生成的文本越确定和保守;值越高(如 1),生成的文本越随机和多样化。在这里设置为 0,表示生成的回复会尽量确定和一致。
返回响应
return response.choices[0].message["content"]
response
:这是从 OpenAI API 获取的响应对象。choices
:这是响应对象中的一个键,包含多个可能的回复。在这种情况下,我们只取第一个回复。[0]
:选择第一个回复。message
:选择回复中的message
键。["content"]
:获取回复中的content
,这是模型生成的文本内容。
总结
这个函数的工作流程如下:
- 接收一个提示(
prompt
)和可选的模型名称(model
)。 - 创建一个消息列表,包含用户的提示。
- 调用 OpenAI API,使用指定的模型发送消息并获取响应。
- 从响应中提取生成的文本内容并返回。
这个函数简化了与 OpenAI 模型的交互过程,使用户只需要提供提示,就能得到模型生成的文本回复。