这是来自 ChatGPT 聊天补全的官方文档:
openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[
{"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?"}
]
)
Run Code Online (Sandbox Code Playgroud)
我对系统角色的第一个理解是一条只是向用户打招呼的消息。但用“你是一个有用的助手”来问候用户是没有意义的。它还解释了:
系统消息有助于设置助手的行为。在上面的示例中,助理收到的指示是“你是一位乐于助人的助理”。
那么,我是否在系统角色中编写人工智能的行为,例如:You're professional assistant如果我希望人工智能成为专业人士,或者我可以在角色中编写:You're a funny assistant如果我希望它成为一个有趣的人工智能。
或者只是一条问候语?
我想使用 ChatGPT 在我的网站上创建一个聊天机器人。我有一些预先定义的问题答案,如下所示:
Question: What is the price of ...?
Answer: $100
Question: How this help ..?
Anwer: 1) Improve... 2) Better... 3) More...
Run Code Online (Sandbox Code Playgroud)
当客户提出与预定义问题相关的问题时,它应该从预定义问题中获取答案并使用自然语言来回答客户。
但我不知道实现这个的逻辑。聊天完成分为三种角色(系统、用户、助手)。
我是否在系统角色中插入所有这些预定义的问题和答案,例如:
[
'role' => 'system',
'content' => 'I write all the information here'
],
Run Code Online (Sandbox Code Playgroud)
或者我将其全部写在单个用户提示符中,例如:
[
'role' => 'system',
'content' => 'You're are a helpful assistant'
],
[
'role' => 'user',
'content' => 'I write all the information here'
]
Run Code Online (Sandbox Code Playgroud)
或者我将其分成不同的用户提示,例如:
[
'role' => 'system',
'content' => 'You're are a helpful assistant'
],
[ …Run Code Online (Sandbox Code Playgroud)