会话补全(Chat completions)
会话补全(Chat completions)
使用 OpenAI 的 API,你可以使用 gpt-3.5-turbo 构建你自己的应用来做这些事情:
•
起草一份邮件或者其他文字内容
•
写 Python 代码
•
回答关于一组文档的问题
•
创建会话代理 ( conversational agents )
•
给你的软件提供一个自然语言的接口
•
辅导各种学科
•
语言翻译
•
假扮成游戏中货其他内容的角色
介绍
聊天模型通过一串聊天对话作为输入,并返回一个模型生成的消息作为输出。
尽管聊天格式的设计是为了多轮对话更简单,但它对于没有任何对话的单轮任务同样有用(例如以前由 text-davinci-003 等指令遵循模型提供的任务)。
下面是一个 API 调用的例子:
代码块
# 提示: 你需要使用 OpenAI Python v0.27.0 版本来运行下面的代码
import openai
openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"role": "system", "content": "你是一个能干的助手."},
{"role": "user", "content": "谁赢得了2020年的世界职业棒球大赛?"},
{"role": "assistant", "content": "洛杉矶道奇队在2020年赢得了世界职业棒球大赛冠军."},
{"role": "user", "content": "它在哪里举办的?"}
]
)
messages 参数是主要的输入。 messages 必须是一哥的消息对象 ( message object )数组,每个对象拥有一个 role ( “system”, “user”, 或 “assistant” ) 和 content ( 消息的内容 )。会话可以少至 1 条消息或者是有许多条。
通常,会话首先使用系统消息 ( “system” ) 格式化,然后交替使用用户消息 ( “user” ) 和助手消息 ( “assistant” )。
系统消息有助于设定助手的行为。在上面的例子中,助手被说明为“你是一个能干的助手”。
用户消息帮助指示助手。它们可以由应用的用户生成,也可以由开发者设置为指令。
助手消息用于存储之前的响应。它们也可以是由开发者编写用于获取期望响应的示例。
当用户的指令是关于之前的消息时,包含聊天历史记录将有所帮助。在前面的例子中,用户最后的问题“在哪里举办的?”只有在前面关于世界职业棒球大赛的上下文中有意义。因为模型不能记住前面的请求,所以全部的相关信息必须在会话中提供。如果会话包含的 token 超出了模型的限制,则需要用一些方法去缩减会话。