DeepSeek 中message中角色role:user system assistant tool详解
在DeepSeek API中,message中的不同role用于区分对话中参与者的角色,
一、message中的不同role具体作用详细解释如下:
user
作用:代表用户的输入,包含用户的问题或指令。
使用场景:每次用户发起对话时使用,例如:“今天北京的天气如何?”
system
作用:设定对话的全局上下文或AI的行为模式(如身份、回复风格等)。
使用场景:通常在对话开始时定义,例如:“你是一个严谨的天气预报助手,仅回答天气相关问题。”
注意:可能支持在对话中动态插入system消息以调整模型行为。
assistant
作用:表示AI的回复,或触发工具调用(如函数执行请求)。
使用场景:
直接回答用户问题,例如:“北京今天晴,25℃。”
返回工具调用请求(如需要调用外部API获取天气数据)。
tool
作用:传递工具调用的执行结果,供AI进一步处理。
使用场景:当assistant请求工具调用后,客户端执行工具(如查询数据库),并通过tool角色返回结果。
示例:工具执行后返回 {"role": "tool", "content": "北京气温25℃"}。

二、Deepseek 典型对话流程示例:
初始化上下文 json 复制 {"role": "system", "content": "你是一个天气预报助手。"}
用户提问 json 复制 {"role": "user", "content": "北京今天天气如何?"}
AI请求工具调用 json 复制 {"role": "assistant", "content": "", "tool_calls": [{"name": "get_weather", "parameters": {"location": "北京"}}]}
客户端返回工具结果 json 复制 {"role": "tool", "content": "晴,25℃"}
AI生成最终回复 json 复制 {"role": "assistant", "content": "北京今天晴,气温25℃。"}
在DeepSeek API中,role 字段是用来指定消息发送者的角色,这对于构建对话系统或聊天机器人非常重要。不同的角色代表了对话中的不同参与者或信息来源,使得系统能够更好地理解和响应。以下是一些常见的角色及其用途:
三、其它示例
假设你正在构建一个聊天机器人,该机器人需要从天气API获取当前天气信息并回复用户。你的对话结构可能如下:
[
{
"role": "system",
"content": "你是一个天气查询助手。"
},
{
"role": "user",
"content": "今天天气怎么样?"
},
{
"role": "tool",
"function": "get_weather",
"arguments": {
"location": "New York"
}
},
{
"role": "tool",
"function": "get_weather",
"name": "weather_info",
"content": {
"temperature": 25,
"condition": "Sunny"
}
},
{
"role": "assistant",
"content": "今天纽约的天气是25度,晴朗。"
}
]
在这个示例中,tool 角色被用来调用外部的 get_weather 函数,然后 assistant 角色用来生成并发送给用户的最终回复。这样的结构使得对话系统能够灵活地处理各种任务和请求。
四、注意事项:
system消息通常位于对话开头,但部分API支持动态插入以调整模型行为。
tool角色需严格遵循工具调用流程:先由assistant发起请求,再由客户端返回结果。
合理使用角色能提升对话连贯性和准确性,尤其是在复杂工具调用场景中。
可关注我,一起学习AI
