OpenAI system,user,assistant 角色详解

要使用ChatGPT API与OpenAI的聊天模型进行交互,您必须在消息对象中提供其中一个角色systemuserassistant。在本指南中,我们将讨论在ChatGPT API请求中使用这些角色的含义。

1. ChatGPT API消息中的角色是什么?

首先,让我们看一下使用OpenAI ChatGPT API的基本请求。

curl -s https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR-API-KEY" \
  -d '{
    "model": "gpt-3.5-turbo-16k",
    "messages": [{"role": "user", "content": "ChatGPT是什么?"}]
  }'

要与OpenAI ChatGPT模型进行对话,您必须在消息数组中提供一个或多个消息。每个消息必须与systemuserassistant中的一个角色相关联。

角色表示消息作者的角色。根据角色,ChatGPT了解它应该如何行为以及谁在发起调用。让我们讨论每个角色。

2. 系统角色

聊天机器人的行为是通用的。“system"角色有助于通过分配特定行为给聊天助手来创建对话的上下文或范围。例如,如果您希望与ChatGPT在与体育相关的话题范围内进行对话,可以将"system"角色分配给聊天助手,并设置内容为"体育专家”。然后ChatGPT会表现得像体育专家一样回答您的问题。"system"角色指示了ChatGPT在对话消息中应该具有哪种个性。

让我们看一个例子。

curl -s https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR-API-KEY" \
  -d '{
    "model": "gpt-3.5-turbo-16k",
    "messages": [{"role": "system", "content": "您是足球专家"}]
  }'

结果:

{
  "id": "chatcmpl-7WqSSEotClV5cSaxrU0lCHWT6ALIQ",
  "object": "chat.completion",
  "created": 1688062500,
  "model": "gpt-3.5-turbo-16k-0613",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "我在这里回答您关于这项运动的任何问题。无论是关于规则、策略、球员还是与足球相关的任何其他问题,都请随时提问!"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 12,
    "completion_tokens": 38,
    "total_tokens": 50
  }
}

虽然传递带有系统角色的消息并非必需,但它有助于在内部为对话设置模型行为。

3. 用户角色

"user"角色代表实际的最终用户,他正在向ChatGPT发送提示。在以下示例中,第一个消息对象和"system"角色并不是必需的。我们使用它来为对话分配上下文。"user"角色指示消息/提示来自最终用户或人类。

curl -s https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR-API-KEY" \
  -d '{
    "model": "gpt-3.5-turbo-16k",
    "messages": [
	  {
           "role": "system",
           "content": "您是足球专家"
	  },
	  {
	   "role": "user",
	   "content": "谁赢得了2018年的FIFA世界杯?"
	  }
	]
  }'

结果:

{
  "id": "chatcmpl-7WrMNkWGxyX4EXY5iANmHE6I1R27b",
  "object": "chat.completion",
  "created": 1688065967,
  "model": "gpt-3.5-turbo-16k-0613",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "法国赢得了2018年的FIFA世界杯。"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 25,
    "completion_tokens": 11,
    "total_tokens": 36
  }
}

4. 助手角色

"assistant"角色代表响应最终用户提示的实体。这个角色表示消息是助手(聊天模型)的响应。"assistant"角色用于在当前请求中设置模型的先前响应,以保持对话的连贯性。

 curl -s https://api.openai.com/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR-API-KEY" \
  -d '{
    "model": "gpt-3.5-turbo-16k",
    "messages": [
          {
         "role": "system",
         "content": "您是足球专家"
          },
          {
                 "role": "user",
                 "content": "谁赢得了2018年的FIFA世界杯?"
          },
          {
                 "role": "assistant",
                 "content": "法国赢得了2018年的FIFA世界杯。"
          },
          {
                 "role": "user",
                 "content": "下一届FIFA世界杯什么时候

举行?"
          }
        ]
  }'

此外,在消息数组中,您可以将角色设置为“assistant”以用于最后的消息对象,它可以是自定义消息。如果消息的角色是“assistant”,ChatGPT会验证最后一条消息的内容的正确性。

结果:

{
  "id": "chatcmpl-7WryqleJdvZzz4vtdQs4erG3Kx7mT",
  "object": "chat.completion",
  "created": 1688068352,
  "model": "gpt-3.5-turbo-16k-0613",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "下一届FIFA世界杯计划于2026年举行,将由加拿大、墨西哥和美国联合举办。"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 51,
    "completion_tokens": 31,
    "total_tokens": 82
  }
}

5. 结论

在这个快速教程中,我们了解了ChatGPT API消息中“system”、“user”和“assistant”角色的含义,以及如何在API中使用它们。

  • 10
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
OpenAI是一个人工智能研究机构,提供了一系列的API和工具,以帮助开发人员构建智能系统。要接入OpenAI,您需要按照以下步骤操作: 1. 注册OpenAI账户并创建API密钥 在OpenAI官网注册账户并创建API密钥,以便您可以使用OpenAI提供的API。 2. 安装OpenAI API客户端库 您需要安装OpenAI API客户端库以便调用OpenAI API。您可以使用以下命令在Java项目中安装OpenAI API客户端库: ``` // 使用 Maven 安装 OpenAI API 客户端库 <dependency> <groupId>com.openai</groupId> <artifactId>openai-api</artifactId> <version>0.0.1</version> </dependency> ``` 3. 编写Java代码 在Java项目中编写代码以调用OpenAI API。以下是一个简单的示例: ```java import com.openai.api.ApiException; import com.openai.api.api.CompletionsApi; import com.openai.api.model.CompletionRequest; import com.openai.api.model.CompletionResponseData; public class OpenAIDemo { public static void main(String[] args) { CompletionsApi apiInstance = new CompletionsApi(); String prompt = "Hello, my name is"; CompletionRequest completionRequest = new CompletionRequest(); completionRequest.setPrompt(prompt); completionRequest.setMaxTokens(5); completionRequest.setTemperature(0.5); completionRequest.setN(1); String apiKey = "YOUR_API_KEY"; try { CompletionResponseData result = apiInstance.createCompletion(completionRequest, apiKey); System.out.println(result.getChoices().get(0).getText()); } catch (ApiException e) { System.err.println("Exception when calling CompletionsApi#createCompletion"); e.printStackTrace(); } } } ``` 在这个示例中,我们使用OpenAI API的Completions API来生成文本。我们提供了一个简单的提示,然后设置了一些参数(例如生成的最大标记数和生成的温度)。然后我们调用了createCompletion方法,并传递了我们的API密钥。最后,我们打印出了生成的文本。 以上是一个简单的示例,您可以根据自己的需求来调用OpenAI提供的不同API。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值