news 2026/6/12 21:20:56

LangChain框架在高炉炼铁智能化领域的应用~系列文章02:从Prompt开始,让大模型听懂高炉的“黑话“

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
LangChain框架在高炉炼铁智能化领域的应用~系列文章02:从Prompt开始,让大模型听懂高炉的“黑话“

🎯 第2期:从Prompt开始,让大模型听懂高炉的"黑话"

专栏:《LangChain框架在高炉炼铁智能化领域的应用》
前情回顾:上期我们搭建了第一个"高炉助手",但AI刚进场时就是个"钢铁小白"😂
本期重点:Prompt Engineering —— 如何让大模型变成"炼铁专家"


📖 引言:AI的"语言关"

上一期我们留了个尾巴——

你兴冲冲地装好了 LangChain,把 AI 请进了中控室。结果你问它:

👨‍🏭:“炉顶温度偏高,十字测温径向温差有150°C了,是不是布料有问题?”

🤖AI(一脸懵):“您好,作为AI助手,我无法实时获取高炉数据。请查阅相关手册或咨询现场工程师。”

😤 血压上来了有没有!

问题出在哪?不是模型不够强,是你没教会它"说人话"——准确地说,是没教会它说"炼铁人的话"。

这就涉及 LangChain 中最重要的基础技能之一:Prompt Engineering(提示词工程)🎓


📝 什么是 Prompt?别整玄乎的

Prompt,翻译过来是"提示词",本质上就是——你给 AI 写的"岗位说明书"📄

┌─────────────────────────────────────────┐ │ "亲爱的AI员工, │ │ 你的岗位是高炉炼铁专家, │ │ 你需要……(此处省略500字)" │ │ │ │ —— 这就是System Prompt │ └─────────────────────────────────────────┘

在 LangChain 中,Prompt 主要分三类:

类型英文名一句话解释高炉场景类比
🧠系统提示System PromptAI的"人设"告诉AI:你是个有30年经验的炼铁总工
💬用户提示Human Message用户的问题现场操作工的问话
🤖AI回复AI MessageAI的回答总工给出的建议

🔧 LangChain 中的 Prompt 三板斧

第一板斧:PromptTemplate — 变量注入

场景:每天早会都要生成高炉日报,内容格式一样,数据每天不同。

最原始的方式——每次都手写完整的 Prompt:

# ❌ 错误示范:硬编码,每次都要写一遍prompt="请分析高炉A在2025年1月1日的生产数据,风温1200°C,风压0.38MPa..."
✅ LangChain 的正确姿势:PromptTemplate
fromlangchain.promptsimportPromptTemplatefromlangchain_openaiimportChatOpenAI# 📌 定义 Prompt 模板daily_report_prompt=PromptTemplate(input_variables=["furnace_name","date","wind_temp","wind_pressure","si_content"],template=""" 你是一位资深高炉炼铁专家,请根据以下数据生成{date}的{ furnace_name }生产日报。 📊 【关键参数】 - 风温:{wind_temp} - 风压:{wind_pressure} - 铁水硅含量:{si_content} 请从以下三个方面分析: 1️⃣ 炉况评价:当前炉况是否稳定? 2️⃣ 异常提示:是否存在异常趋势? 3️⃣ 操作建议:给出具体的调整建议。 注意:语气要专业,结论要明确,不能模棱两可。 """)# 📌 注入实际数据prompt=daily_report_prompt.format(furnace_name="5号高炉",date="2025年6月5日",wind_temp="1210°C",wind_pressure="0.39 MPa",si_content="0.42%")# 📌 调用模型llm=ChatOpenAI(model="doubao-seed-2-0-lite-260215",temperature=0.3)response=llm.invoke(prompt)print(response.content)

🔍 拆解一下

  • PromptTemplate就像 Excel 模板——数据填进去,报告自动出
  • 使用{}占位符,运行时注入实际参数
  • 不管换几号高炉、换哪天的数据,模板一套搞定!

第二板斧:ChatPromptTemplate — 多人对话管理

场景:高炉中控室不是一个人在战斗,而是操作工、值班主任、工程师之间的对话轮换。

fromlangchain.promptsimportChatPromptTemplatefromlangchain.prompts.chatimportSystemMessagePromptTemplate,HumanMessagePromptTemplate# 📌 构建"多人对话"模板chat_prompt=ChatPromptTemplate.from_messages([# 🧠 System Prompt —— "人设"SystemMessagePromptTemplate.from_template("你是{company_name}的炼铁首席专家,拥有30年高炉操作经验。""你的风格是:专业、果断、数据驱动。""每次回答必须引用数据,给出明确结论,不能含糊其辞。"),# 💬 第一轮对话HumanMessagePromptTemplate.from_template("当前{ furnace_name }的压量关系出现异常:风压{wind_pressure},风量{wind_volume},""透气性指数下降到{permeability}。请分析原因并给出操作建议。"),])# 📌 使用messages=chat_prompt.format_messages(company_name="XX钢铁集团",furnace_name="3号高炉",wind_pressure="0.42 MPa",wind_volume="4800 m³/min",permeability="32.5")llm=ChatOpenAI(model="doubao-seed-2-0-lite-260215",temperature=0.3)response=llm.invoke(messages)print(response.content)
生成的消息结构
System: 你是XX钢铁集团的炼铁首席专家…… Human: 当前3号高炉的压量关系出现异常……

这种结构比单纯的字符串拼接更清晰,模型理解效果也更好 ✅


第三板斧:FewShotPromptTemplate — 给AI看"参考答案"

场景:想让 AI 按特定格式输出炉况诊断结果,但光用文字描述它不一定懂。

最好的办法——给它看几个例子📚

fromlangchain.prompts.few_shotimportFewShotPromptTemplatefromlangchain.promptsimportPromptTemplate# 📌 给AI看几个"标准答案"examples=[{"question":"铁水温度1480°C,硅含量0.35%,炉渣碱度1.15","answer":""" 【炉况判断】炉温正常偏下行 【置信度】80% 【依据】铁温1480°C处于正常区间下限,硅含量0.35%偏低 【建议】适当增加焦比3-5kg/t,关注后续铁温变化 """},{"question":"铁水温度1520°C,硅含量0.65%,炉渣碱度1.25","answer":""" 【炉况判断】炉温偏高 【置信度】85% 【依据】铁温1520°C超过正常上限,硅含量0.65%偏高 【建议】适当减焦或增加矿石量,降低炉热水平 """}]# 📌 定义示例模板example_prompt=PromptTemplate(input_variables=["question","answer"],template="输入:{question}\n输出:{answer}")# 📌 构建 FewShot Promptfew_shot_prompt=FewShotPromptTemplate(examples=examples,example_prompt=example_prompt,prefix="你是一位炉况诊断专家。请按照以下示例格式分析高炉炉况:",suffix="输入:{input}\n输出:",input_variables=["input"])# 📌 测试prompt=few_shot_prompt.format(input="铁水温度1505°C,硅含量0.52%,炉渣碱度1.20")llm=ChatOpenAI(model="doubao-seed-2-0-lite-260215",temperature=0.3)response=llm.invoke(prompt)print(response.content)

✨ 效果:AI 会严格按照示例的格式输出,不会"自由发挥"。


🏭 实战案例:高炉炉况诊断 Prompt 链

把我们学的三板斧组合起来,做一个完整的炉况诊断系统 😎

fromlangchain.promptsimport(PromptTemplate,ChatPromptTemplate,SystemMessagePromptTemplate,HumanMessagePromptTemplate)fromlangchain_openaiimportChatOpenAIfromlangchain.prompts.few_shotimportFewShotPromptTemplate# 初始化模型llm=ChatOpenAI(model="doubao-seed-2-0-lite-260215",temperature=0.2,# 诊断场景要低温度,更稳定timeout=600)# ───────────── 第一步:炉况评估 Prompt ─────────────furnace_eval_prompt=ChatPromptTemplate.from_messages([SystemMessagePromptTemplate.from_template("你是一位精通高炉炼铁工艺的资深专家。""你擅长通过分析关键参数判断炉况。""请严格按照给定的输出格式回答,不要随意增删内容。"),HumanMessagePromptTemplate.from_template(""" 请评估以下高炉的炉况: 📊 关键参数: - 风温:{wind_temp} - 风量:{wind_volume} - 风压:{wind_pressure} - 透气性指数:{permeability_index} - 铁水温度:{iron_temp} - 硅含量:[Si] = {si_content} - 炉渣碱度:R = {basicity} - 料速:{charging_speed} 批/h 请输出以下格式的评估结果: 【炉温水平】偏热/正常/偏凉 【炉况稳定性】稳定/波动/异常 【重点关注】列出1-2个需关注的指标 【操作建议】1-2条具体建议 """),])# ───────────── 第二步:执行评估 ─────────────messages=furnace_eval_prompt.format_messages(wind_temp="1180°C",wind_volume="4850 m³/min",wind_pressure="0.385 MPa",permeability_index="34.2",iron_temp="1475°C",si_content="0.38%",basicity="1.18",charging_speed="6.5")response=llm.invoke(messages)print("🔍 炉况评估结果:")print(response.content)

🎬 执行效果预览

🔍 炉况评估结果: 【炉温水平】偏凉 【炉况稳定性】波动 【重点关注】铁水温度偏低(1475°C),硅含量已接近下限 【操作建议】 1. 建议加焦3-5批,提高炉热水平 2. 适当降低风量50-100m³/min,稳定压量关系

💡经验之谈:在工业场景中,Temperature(温度参数)要调低(0.1~0.3),否则 AI 每次回答不一样,现场没法用!


⚡ Prompt 进阶技巧:让AI更"听话"

🚫 负面指令(Negative Instructions)

# ✅ 明确告诉AI不要做什么prompt=""" 你是高炉炼铁专家。请遵循以下约束: - ❌ 不要使用模糊词汇(如"可能"、"大概"、"也许") - ❌ 不要输出与高炉无关的内容 - ✅ 必须引用数据支撑结论 - ✅ 结论必须明确(正常/异常/紧急) """

📋 结构化输出约束

# 让AI输出JSON格式,方便下游解析prompt=""" 分析以下数据并输出JSON格式的结果: {json_data} 请严格按照以下Schema输出: {{ "furnace_status": "stable|unstable|crisis", "confidence": 0.0~1.0, "abnormal_params": ["param1", "param2"], "suggestions": ["suggestion1", "suggestion2"] } """

🔄 思维链(Chain-of-Thought)

prompt=""" 请逐步思考以下高炉炉况诊断问题: 1️⃣ 首先,列出所有异常参数 2️⃣ 其次,分析参数之间的关联性 3️⃣ 然后,找出最可能的根本原因 4️⃣ 最后,给出操作建议 数据:{data} 请按上述步骤逐一输出你的思考过程。 """

这种"先思考再回答"的方式,能显著提升复杂诊断的准确率 📈


📊 本期小结

内容核心要点
Prompt分类System / Human / AI Message
PromptTemplate变量注入,一套模板打天下
ChatPromptTemplate多轮对话管理
FewShotPromptTemplate给AI看样例,输出更规范
工业场景要点低温、结构化、负面指令

💡 小贴士:写好 Prompt 的核心秘诀就一句话——“把AI当成一个刚入职的实习生,你要事无巨细地告诉他该怎么做”


📌 下期预告

第3期:《模型调用篇:选对模型,高炉炼铁事半功倍》🚀

Prompt 写好了,模型怎么选?是选豆包还是 GPT?是选 DeepSeek 还是 Kimi?

不同的模型有不同的"性格"——有的擅长推理,有的擅长代码,有的便宜好用……

下一期,我们手把手教你如何在 LangChain 中配置和切换模型,找到最适合"高炉场景"的 AI 大脑!💪

🌟别忘了收藏+关注,16期连载不迷路!

作者:高炉炼铁智能化技术研究者,专注钢铁冶金与人工智能 交叉领域。

👍 如果觉得有帮助,请点赞、收藏、转发!
版权归作者所有,未经许可请勿抄袭,套用,商用(或其它具有利益性行为)
🔔 关注专栏,不错过后续精彩内容!

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/12 21:20:55

集成电路内部热特性测试:从结温估算到物理测量的技术跃迁

🎓作者简介:科技自媒体优质创作者 🌐个人主页:莱歌数字-CSDN博客 211、985硕士,从业16年 从事结构设计、热设计、售前、产品设计、项目管理等工作,涉足消费电子、新能源、医疗设备、制药信息化、核工业等…

作者头像 李华
网站建设 2026/6/12 21:20:55

【计算机毕业设计案例】基于 Vue.js 的智能社区民生服务管理基于 Vue.js 的老旧社区便民服务平台的设计与实现 基于 Vue.js 的社区养老帮扶服务系统的设计与实现(程序+文档+讲解+定制)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围::小程序、SpringBoot、SSM、JSP、Vue、PHP、Java、pyth…

作者头像 李华
网站建设 2026/6/12 21:19:58

丝杆升降机蜗轮齿面胶合,原因与预防

蜗轮蜗杆升降机在重载、高速或润滑不良时,常出现齿面胶合(粘着磨损),导致升降机迅速失效。本文分析胶合机理,并提出预防措施。一、胶合的特征蜗轮齿面上出现撕裂状凹坑,材料从齿面被撕下并粘附在蜗杆上。伴…

作者头像 李华
网站建设 2026/6/12 21:14:05

okbiye AI PPT 重塑答辩效率:万字论文一键转规范毕业答辩幻灯片

okbiye-免费查重复率aigc检测/开题报告/毕业论文/智能排版/文献综述/AI PPTAI PPT制作 - Okbiye智能写作https://www.okbiye.com/ppt 引言:毕业季 PPT 制作,困住无数毕业生的隐形难关 每年五六月份毕业冲刺阶段,毕业论文定稿后的答辩 PPT 制…

作者头像 李华
网站建设 2026/6/12 21:12:16

NomNom终极指南:快速掌握No Man‘s Sky存档编辑技巧

NomNom终极指南:快速掌握No Mans Sky存档编辑技巧 【免费下载链接】NomNom NomNom is the most complete savegame editor for NMS but also shows additional information around the data youre about to change. You can also easily look up each item individu…

作者头像 李华