最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
如何正确构建 LangChain Prompt Chain 完成文本重述与翻译
时间:2026-07-08 10:01:57 编辑:袖梨 来源:一聚教程网
本文详解如何通过合理设计 chatprompttemplate 的消息类型(system/human)来确保 llm 同时完成文本重述和目标语言翻译,避免仅重述不翻译的常见错误。
本文详解如何通过合理设计 chatprompttemplate 的消息类型(system/human)来确保 llm 同时完成文本重述和目标语言翻译,避免仅重述不翻译的常见错误。
在 LangChain 中使用 ChatPromptTemplate 构建 prompt chain 时,消息角色(role)的语义至关重要。原始代码中将所有指令(包括语言要求)都放在 "system" 消息中,而用户输入仅作为 "user" 消息传入,这导致模型未被明确告知“需执行翻译任务”——系统消息虽设定了上下文,但缺乏对具体操作步骤的显式指令;而人类消息(即 "user")又只传递了原始文本,未包含任务定义,因此模型倾向于仅完成更易识别的重述动作,忽略翻译。
✅ 正确做法是:将角色定义与任务指令分离,并将核心操作逻辑置于 "human" 消息中:
- "system" 消息用于设定助手身份与行为准则(如:“你是一位擅长文本重述与多语言翻译的助手”);
- "human" 消息则清晰声明待执行的两步任务(重述 + 翻译),并内联 {input} 和 {language} 占位符,确保模型在推理时能同时感知输入内容与目标语言约束。
以下是优化后的完整链构建示例:
from langchain_core.prompts import ChatPromptTemplatefrom langchain_core.output_parsers import StrOutputParser# ✅ 清晰的角色分工system_message = "You are a helpful assistant specializing in rephrasing and translating technical texts accurately and professionally."human_template = ( "Your task comprises two mandatory steps:n" "1. Rephrase the following text to improve clarity, conciseness, and tone—without changing its factual meaning: {input}.n" "2. Translate the rephrased version into {language}. Output only the final translated text—no explanations, no markup, no extra commentary.")chat_prompt = ChatPromptTemplate.from_messages([ ("system", system_message), ("human", human_template),])# 链式组装(假设 llm 已初始化)chain = chat_prompt | llm | StrOutputParser()# 调用时传入 input 和 language(注意:此处 language 应为自然语言名称,如 "Czech (CZ)",与前端选中的 value 一致)answer = chain.invoke({ "input": user_input, "language": selected_language # e.g., "Czech (CZ)"})
? 关键注意事项:
- ❌ 避免在多个 "system" 消息中拼接指令(如原代码中两个 "system" 条目),LangChain 不保证其合并逻辑,且易稀释主任务信号;
- ✅ "human" 消息是驱动模型执行动作的核心入口,所有可变任务指令(含变量插值)必须放在此处;
- ? 若仍出现翻译失效,可在 human_template 中强化约束,例如追加:“If the output is not in {language}, revise it immediately.” 或要求输出前自我校验;
- ? 前端 language_options 字典设计合理,但需确保 selected_language(如 "Czech (CZ)")与模型训练语料中的语言标识兼容;若模型对括号标注敏感,可改用纯语言名(如 "Czech")并同步更新字典值。
通过明确划分系统角色与用户指令,并将任务逻辑结构化嵌入 human 消息,即可稳定触发 LLM 的双重能力,让 prompt chain 真正按预期工作。
相关文章
- 《Disney Lorcana: Wilds Unknown》预购开启 首批《Toy Story》及皮克斯卡牌购买指南 07-29
- 车来了赶车闹钟如何设置 07-29
- 崩坏星穹铁道余晖残卷巨剑守护打法攻略 07-29
- 崩坏星穹铁道砂金角色部分背景介绍 07-29
- 崩坏3雷电芽衣什么时候上线 07-29
- 玩具熊的五夜后宫4代噩梦气球男孩Nightmare Balloon Boy介绍 07-29