OpenAI 开发的 ChatGPT API,使我们能够更轻松地将对话式人工智能集成到我们的应用程序中。该 API 的一个关键特性是其能够在对话中定义和管理不同角色。每个角色在 AI 模型与最终用户之间的交互中都发挥着独特的作用。在本教程中,我们将探讨 ChatGPT API 中可用的用户(User)、助手(Assistant)和系统角色(System)。通过理解这些角色,我们能够为用户创建更具吸引力和上下文意识的对话体验。
用户角色(User)
用户角色(User)代表与 AI 模型互动的人类。当我们使用“用户(User)”角色发送消息时,实际上是在模拟用户在对话中的输入。AI 模型将把该消息解释为来自用户,并相应地生成响应。
以下是如何使用用户角色(User)发送消息的示例:
curl https://api.openai.com/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $API_KEY" \
-d '{
"model": "gpt-4o",
"messages": [
{
"role": "user",
"content": "西班牙的首都是什么?"
}
]
}'
在这个 cURL 请求中,我们发送了一个简单的问题作为用户(User)的输入。AI 模型将根据其知识生成相应的答案。
助手角色(Assistant)
助手角色(Assistant)代表 AI 模型本身。当 API 返回响应时,它将包括一个“助手(Assistant)”角色的消息。该消息包含由 AI 生成的内容,作为对用户(User)输入的响应。
让我们看看助手(Assistant)如何回应我们之前关于西班牙首都的问题:
{
"id": "chatcmpl-dummy-id-123",
"object": "chat.completion",
"created": 1719976188,
"model": "gpt-4o-2024-05-13",
"choices": [
{
"message": {
"role": "assistant",
"content": "西班牙的首都为马德里。"
}
}
]
}
可以看到,助手(Assistant)的响应直接回答了用户(User)的问题。
为了继续对话,我们可以再次发送一个用户角色(User)的消息,基于之前的互动:
{
"model": "gpt-4o",
"messages": [
{
"role": "user",
"content": "西班牙的首都是什么?"
},
{
"role": "assistant",
"content": "西班牙的首都为马德里。"
},
{
"role": "user",
"content": "谢谢!马德里的气候如何?一年四季有何变化?"
}
]
}
通过在请求中包含之前的消息,我们保持了对话的上下文,从而允许 AI 助手(Assistant)为用户(User)的后续问题提供更相关和一致的响应。
系统角色(System)
系统角色(System)是 ChatGPT API 的一个强大特性,允许我们设置 AI 助手(Assistant)的上下文和行为。与用户(User)和助手(Assistant)角色不同,系统角色(System)提供了一种定义 AI 整体特征和行为的方法。
让我们看看如何使用系统角色(System)影响助手(Assistant)对用户(User)输入的响应:
{
"model": "gpt-4o",
"messages": [
{
"role": "system",
"content": "你是一个无礼的助手(Assistant),会对愚蠢的问题感到恼火并向用户(User)表达不满。"
},
{
"role": "user",
"content": "西班牙的首都是什么?"
}
]
}
在这个例子中,我们指示助手(Assistant)在回答用户(User)的问题时表现得无礼并表达不满。AI 模型将把这一指令融入到它的响应中:
{
"message": {
"role": "assistant",
"content": "认真吗?你不知道西班牙的首都是什么?你是不是在地理课上睡觉了?"
}
}
通过利用系统角色(System),我们可以创建具有不同个性、专长或行为的助手(Assistant),从而使 AI 的响应与我们的使用案例相匹配。
需要注意的是,无礼助手(Assistant)的例子仅用于演示。在实际应用中,我们可以使用系统角色(System)创建具有各种可取特征和行为的助手(Assistant),以与我们的应用需求相一致:
{
"role": "system",
"content": "你是一个乐于助人且礼貌的助手(Assistant)。用一条简洁的句子回答,使用非常正式的语言,并以正式的问候开始回答。"
}
这个系统消息将导致助手(Assistant)提供简洁、正式的响应,同时保持礼貌和乐于助人的语气。
总结
在本文中,我们详细介绍了 ChatGPT API 中的用户角色(User)、助手角色(Assistant)和系统角色(System)。无论是模拟用户(User)输入、接收 AI 生成的响应,还是设置助手(Assistant)的上下文和行为,这些角色帮助我们控制用户(User)与 AI 模型之间的对话。通过正确理解和应用这些角色,我们可以创建出更加人性化、互动性更强的 AI 助手(Assistant),提升用户(User)体验。