消息对象中字段的说明

发布时间:2026/10/3 19:15:45

消息对象中字段的说明 消息对象字段说明SystemMessage参数列表content消息内容字段名可以省略SystemMessage(你是个善解人意的助手)相当于SystemMessage(content你是个善解人意的助手)HumanMessage参数列表content消息内容字段名可以省略HumanMessage你好啊)metadata元数据字段可以有很多自定义举例带有元数据字段from dotenvimportload_dotenvimportos from langchain.chat_modelsimportinit_chat_model from langchain_core.messagesimportHumanMessage from richimportprint as rprint load_dotenv(overrideTrue)CLOSEAI_API_KEYos.getenv(CLOSEAI_API_KEY)CLOSEAI_API_BASEos.getenv(CLOSEAI_API_BASE)modelinit_chat_model(modelgpt-5.4-mini,api_keyCLOSEAI_API_KEY,base_urlCLOSEAI_API_BASE)messages[HumanMessage(contentHello World!,nameBob,idmsg987)]rprint(model.invoke(messages))name和id都属于元数据字段当消息类型相同对消息进行区分。但不是所有模型都支持这一功能是否支持取决于模型供应商需要查看官方手册。比如OpenAI的API手册告诉我们HumanMessage支持name作为元数据字段如下图所示。而DeepSeek得API官方文档明确支持name作为元数据但实测发现模型无法识别此处通过CloseAI平台调用 gpt-5.4-mini 展示 name 的作用。from langchain_openrouterimportChatOpenRouter from dotenvimportload_dotenvimportos from langchain_core.messagesimportSystemMessage,HumanMessage load_dotenv(overrideTrue)CLOSEAI_API_KEYos.getenv(CLOSEAI_API_KEY)CLOSEAI_API_BASEos.getenv(CLOSEAI_API_BASE)modelinit_chat_model(# modelopenai/gpt-6.1-sol,modelopenai:gpt-5.4-mini,api_keyCLOSEAI_API_KEY,base_urlCLOSEAI_API_BASE,)messages[SystemMessage(你是一个信息抽取器。你会收到多条来自不同发言者的 user 消息。每条消息可能带有 name 字段。你的任务是严格根据每条消息的 name 提取发言者及其观点并输出JSON。禁止使用“第一个人/第二个人”这种相对称呼。若某条消息没有 name则输出unknown。输出格式{\speakers\:[{\name\:\...\,\claim\:\...\}]}), HumanMessage(content我认为 112,nameBob), HumanMessage(content我认为 112,nameTom), HumanMessage(content请列出谁说了什么不要判断对错。,nameaudience)]responsemodel.invoke(messages)print(response.content)说明模型加载了 name传递 的信息这在 多人对话场景 很有用。拓展使用ChatOpenRouter调用 没有将name正确传递 给模型服务。即from langchain_openrouterimportChatOpenRouter from dotenvimportload_dotenvimportos from langchain_core.messagesimportSystemMessage,HumanMessage load_dotenv(overrideTrue)OPENROUTER_API_KEYos.getenv(OPENROUTER_API_KEY)OPENROUTER_API_BASEos.getenv(OPENROUTER_API_BASE)modelChatOpenRouter(# modelopenai/gpt-6.1-sol,modelgpt-4o-mini,api_keyOPENROUTER_API_KEY,base_urlOPENROUTER_API_BASE,)messages[SystemMessage(你是一个信息抽取器。你会收到多条来自不同发言者的 user 消息。每条消息可能带有 name 字段。你的任务是严格根据每条消息的 name 提取发言者及其观点并输出JSON。禁止使用“第一个人/第二个人”这种相对称呼。若某条消息没有 name则输出unknown。输出格式{\speakers\:[{\name\:\...\,\claim\:\...\}]}), HumanMessage(content我认为 112,nameBob), HumanMessage(content我认为 112,nameTom), HumanMessage(content请列出谁说了什么不要判断对错。,nameaudience)]responsemodel.invoke(messages)print(response.content)AIMessage参数列表content模型输出的原始内容字段名可以省略AIMessage(你好)相当于AIMessage(content你好)response_metadataAIMessage特有属性LLM的响应中附加元数据根据不同的模型会有不同如可能会包含本次token使用量等信息tool_callsAIMessage特有属性表示工具调用信息当LLM决定调用工具时在AIMessage中就会包含这个属性没有工具调用则为空。结构如下tool_calls[{name:get_weather,#应调用的工具名args:{city:杭州},# 调用工具的参数id:call_00_gIXYOD1Q1OkEXmdDBqXR1578,# 工具调用的唯一标识IDtype:tool_call},{name:get_news,args:{},id:call_01_jD3phD5PEaIZf0mVLhKt0861,type:tool_call}]toool_calls属性是一个ToolCall列表每个ToolCall是一个字典包含字段见上usage_metadata用量信息举例AIMessage调用工具AIMessage(content,tool_calls[{name:get_weather,args:{city:北京},id:call_xxx}])更丰富的参数from langchain_core.messagesimportSystemMessage,HumanMessage from langchain.chat_modelsimportinit_chat_model from dotenvimportload_dotenvimportos from richimportprint as rprint# 从.env文件中加载环境变量load_dotenv(overrideTrue)CLOSEAI_API_KEYos.getenv(CLOSEAI_API_KEY)CLOSEAI_API_BASEos.getenv(CLOSEAI_API_BASE)modelinit_chat_model(modelgpt-6.1-sol,model_provideropenai,api_keyCLOSEAI_API_KEY,base_urlCLOSEAI_API_BASE)messages[SystemMessage(你叫小智是一名助人为乐的助手。), HumanMessage(你好好久不见请介绍下你自己。)]responsemodel.invoke(messages)rprint(response)返回内容分析ToolMessage参数列表content文件内容name工具名称tool_call_id工具调用唯一IDToolMessage必须紧邻匹配的AIMessage和前者tool_calls中的id一致ToolMessage(content工具输出,nameget_weather,tool_call_idcall_00_nUD2NC9QRN5Cg1GaoIkBJQ4s# 一定要和AI消息中的调用ID匹配)举例1工具调用json格式from langchain.chat_modelsimportinit_chat_model from dotenvimportload_dotenvimportos# 从.env文件中加载环境变量load_dotenv(overrideTrue)CLOSEAI_API_KEYos.getenv(CLOSEAI_API_KEY)CLOSEAI_BASE_URLos.getenv(CLOSEAI_BASE_URL)modelinit_chat_model(modelgpt-5.4-mini,model_provideropenai,api_keyCLOSEAI_API_KEY,base_urlCLOSEAI_BASE_URL)def get_weather(city: str)-str:return不错哦~# 模拟模型绑定工具model_with_toolsmodel.bind_tools([get_weather])ai_message{role:assistant,content:,tool_calls:[{name:get_weather,args:{location:北京},id:call_00_nUD2NC9QRN5Cg1GaoIkBJQ4s}]}tool_message{role:tool,content:今天北京天气晴朗万里无云~,tool_call_id:call_00_nUD2NC9QRN5Cg1GaoIkBJQ4s}messages[{role:user,content:北京天气如何}, ai_message, tool_message]responsemodel.invoke(messages)print(response)工具调用对象格式from langchain_core.messagesimportAIMessage, ToolMessage,HumanMessage from langchain.chat_modelsimportinit_chat_model from dotenvimportload_dotenvimportos# 从.env文件中加载环境变量load_dotenv(overrideTrue)CLOSEAI_API_KEYos.getenv(CLOSEAI_API_KEY)CLOSEAI_BASE_URLos.getenv(CLOSEAI_BASE_URL)modelinit_chat_model(modelgpt-5.4-mini,model_provideropenai,api_keyCLOSEAI_API_KEY,base_urlCLOSEAI_BASE_URL)def get_weather(city: str)-str:return不错哦~# 模拟模型绑定工具model_with_toolsmodel.bind_tools([get_weather])# ai_message {# role: assistant,# content: ,# tool_calls: [{# name: get_weather,# args: {location: 北京},# id: call_00_nUD2NC9QRN5Cg1GaoIkBJQ4s# }]# }ai_messageAIMessage(content[], tool_calls[{name:get_weather,args:{location:北京},id:call_00_nUD2NC9QRN5Cg1GaoIkBJQ4s}])# tool_message {# role: tool,# content: 今天北京天气晴朗万里无云~,# tool_call_id: call_00_nUD2NC9QRN5Cg1GaoIkBJQ4s# }tool_messageToolMessage(content今天北京天气晴朗万里无云~, tool_call_idcall_00_nUD2NC9QRN5Cg1GaoIkBJQ4s)messages[# {role: user, content: 北京天气如何},HumanMessage(content北京天气如何), ai_message, tool_message]# for message in messages:# print(message)responsemodel.invoke(messages)print(response)
延伸阅读

更多相关文章

2026/10/3 19:15:45

M 系列 Mac 跑靶场:架构不兼容时先确认三件事

授权与合规声明 本文全部操作对象均为自建隔离靶场(本机容器或隔离虚拟机),涉及安全测试的环节必须以取得合法授权为前提。未经授权的渗透测试违反《中华人民共和国网络安全法》与《刑法》相关条款,须承担相应法律责任。本文只讲环…

2026/10/3 19:15:45

建筑造价转大模型:定额分地区版本,价格不能跨区外推

版权与内容来源声明 本文为原创整理。文中涉及官方文档、开源仓库、论文与公开报道的内容,均在附表 A 中标注来源;引用官方原文保持原样,不作改写。文中命令、版本号与界面截图以本文成文时的实测/核验结果为准,标注「待验证」的部…

2026/10/3 19:10:45

superpowers:将AI编码工具升级为自动化Java开发与测试代理

你有没有过这种经历:一个老 Java 项目堆了三年的技术债,光是给UserService补单元测试就花了一整天,修 NPE 修到怀疑人生。我上个月就被这么折腾了一轮,翻遍 GitHub 后找到了一个叫superpowers的开源项目,才发现手里这些…

2026/10/3 20:55:50

多目标跟踪中的数据关联:从匈牙利算法到YOLO MOT指标解析

1. 数据关联到底在解决什么问题 把马路上十几个人、几十辆车同时盯住,还要保证画面上每个目标框从头到尾都不张冠李戴,这件事看起来只用一句“跟踪嘛”就能带过,真正落地去做,几乎是把多目标跟踪项目做崩的头号因素。跟踪器从检测…

2026/10/3 20:55:50

MySQL IN查询优化:分片、覆盖索引与临时表JOIN的落地实践

做后端这几年,被IN查询“背刺”的次数可不算少。尤其是权限过滤、批量 ID 查询、批量导出这类业务,产品一句话“把选中的 ID 都查出来”,SQL 里就甩进来几百甚至上千个 ID。数据量小的时候,IN用着是真爽;可一旦目标表到…

2026/10/3 20:55:50

基于Python+Spark的智慧城市交通大数据系统全链路解析

简介:以Python与Spark为核心的智慧城市交通大数据系统毕业设计资料包,面向计算机相关专业本科生及需要完成课设、毕设或初期立项演示的开发者。资源完整覆盖数据采集、处理、分析与可视化流程,提供可运行的Python爬虫脚本、Scala与Java处理程…

2026/10/3 20:55:50

高级数据库查询实战:从多表连接到窗口函数的SQL备考指南

备考计算机三级(数据库技术)的同学,十有八九会在交出一套 SELECT 语句后被批错。不是你不会写查询,而是高级数据库查询考的不只是语法,它考的是你对关系模型、分组逻辑和查询优化器的理解。很多人在这一步掉链子&#…

2026/10/3 20:55:50

数字IC后端PPA优化:用Innovus Module Region锁定Timing一致性

说实话,在数字IC后端跑项目的时候,最让工程师抓狂的不是时序收敛不了,而是同样的设计、同样的约束、同样的脚本,昨天跑和今天跑结果却对不上。尤其在做PPA优化阶段,你明明把某个关键路径的setup违例修掉了,…

2026/10/3 20:50:50

SpringBoot多数据源实战:dynamic-datasource集成与避坑指南

做后端开发的兄弟,大概率都遇到过这样的场景:项目刚上线时一套MySQL库跑得挺欢,后来订单量大了,老板说要把报表拆出来,于是又多了一个只读库;再往后,用户服务单独拆了一套库,数据分析…

2026/10/2 8:16:46

东莞市品牌网站建设报价常见报错与解决

东莞品牌网站建设报价单背后:一份保姆级建站教程避坑实录 网站做好了没人访问,这大概是很多老板最头疼的事。花了大几万做的品牌站,上线后流量惨淡,比路边摊还冷清。别急着骂外包公司,很多“东莞品牌网站建设报价”里藏着不少猫腻,比如用模板站冒充定制…

2026/10/2 18:20:53

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/10/3 15:02:19

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/10/3 0:04:31

国内大学生必备的AI写作辅助软件是哪款?

国内高校学生在论文写作过程中,越来越依赖AI辅助工具提升效率,主流方案以本土化全流程工具为核心,结合通用大模型与专业插件,覆盖选题构思、框架搭建、初稿撰写、查重降重、格式调整等关键环节,本文将深入解析当前主流…

2026/10/3 0:04:31

Codex接入Jev模型完整指南:配置方法、本地部署与踩坑排查

最近不少人在讨论 Codex 搭配 Jev 这套玩法,我一开始没太当回事,直到自己把 Jev 接进 Codex跑了几轮编码任务之后,才明白那些说“直接起飞”的人是怎么想的。Codex 作为工具本身已经够能打了,但模型固定、上下文策略固定&#xff…

2026/10/3 0:04:31

GitHub 热门: NVIDIA/Model-Optimizer

👋 Hi,我擅长 AI 大模型应用落地、意识解码与 AI 开发工具链 。 💡 创业路上,用技术换时间,一起把 AI 变成生产力 🚀 >GitHub 热门: NVIDIA/Model-Optimizer 凌晨两点,你刚把跑通了的 Qwen3.…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑