这个 get_completion 函数的目的是与 OpenAI 的 GPT-3.5-turbo 模型进行交互,发送提示并获取响应。以下是详细解释:

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

这个函数的工作流程如下:

  1. 接收一个提示(prompt)和可选的模型名称(model)。
  2. 创建一个消息列表,包含用户的提示。
  3. 调用 OpenAI API,使用指定的模型发送消息并获取响应。
  4. 从响应中提取生成的文本内容并返回。

这个函数简化了与 OpenAI 模型的交互过程,使用户只需要提供提示,就能得到模型生成的文本回复。