当前位置: 首页 > news >正文

AI Agent白手起家27: LangChain 提示词模板原理与实践

纲要

  • 提示词在大模型应用中的核心地位
  • 提示词模板的工作原理
  • 提示词模板的优势
  • 从自然语言到结构化输出的完整链路
  • 优质提示词的基本要素
  • LangChain 中的两种模板
    • PromptTemplate
    • ChatPromptTemplate
  • 实战:使用ChatPromptTemplate构建一个旅游攻略生成器
  • 完整可运行代码
  • 总结

提示词:大模型应用的“控制面板”

对于任何基于大语言模型的应用而言,提示词(Prompt)是最主要的人机交互方式。即便不进行应用开发,我们日常使用 ChatGPT、DeepSeek 等工具时,本质上就是在不断撰写提示词。在 LangChain 的组件体系中,提示词模板被提升到了一个可工程化、可复用的层次,成为连接用户意图与模型能力的核心桥梁。

一个大模型应用的典型 IO 流程如下:

提示词模板 + 变量

格式化生成完整 Prompt

大语言模型 ChatModel

自然语言回答

输出解析器 Output Parser

结构化数据 e.g. JSON

  • 提示词模板将动态内容抽象为变量,将不变的部分固化,类似于填空题。
  • 大模型接收完整的提示词,进行推理并返回自然语言。
  • 输出解析器将自然语言转换为程序可读的结构化数据(如 JSON),供下游系统使用。

这个过程清晰地展示了提示词在整个系统中的关键作用:它既是模型的输入源,也是影响输出质量最重要的可控因素。

提示词模板的工作原理

在没有模板的情况下,我们每次调用模型都要手动拼接完整的提示词,不仅重复劳动,还难以维护和版本控制。提示词模板通过占位符将可变部分抽离:

  • 模板: “{role},请为我规划一个{theme}的旅行攻略,预算{budget}元。”
  • 变量: role=“导游”, theme=“海南”, budget=“10000”
  • 格式化后: “导游,请为我规划一个海南的旅行攻略,预算10000元。”

在 LangChain 中,这一过程通过formatinvoke方法完成,模板会自动处理变量的注入,生成最终提交给模型的字符串或消息列表。

提示词模板的核心优势

  • 复用性:同一个模板可以填入不同的变量值,生成多样化的提示词。
  • 可维护性:集中管理提示词逻辑,修改模板一处即可同步所有调用。
  • 版本控制:模板作为代码的一部分,可以纳入 Git 进行团队协作和历史追溯。
  • 安全性:可对变量进行校验,防止注入恶意内容。

好提示词的要素

优质提示词通常包含以下结构(对非推理模型尤其重要):

  • 角色设定:赋予模型一个专家身份,引导其进入特定领域语境。
  • 背景信息:提供上下文,说明问题的来龙去脉。
  • 明确目标:清晰描述希望达成的结果。
  • 约束条件:指明格式、语气、禁忌等要求。

例如,一个糟糕的提示词:

“帮我做一份旅行攻略。”

而一个高质量的提示词:

“假设你是一名资深导游,我要和两位朋友去海南玩七天,预算一万元。我们不喜欢行程太赶,也不喜欢网红景点,更偏爱有文化底蕴的地方。请推荐景点并附上门票价格。”

后者给出了明确的角色、约束和期望,模型响应质量会显著提升。

LangChain 中的两种模板

LangChain 为不同模型类型提供了对应的模板类:

模板类适用模型输出格式
PromptTemplate传统 LLMs(纯文本补全)字符串
ChatPromptTemplateChatModels(对话型)消息列表(支持 system, human, ai 等角色)

目前绝大多数模型都已转向 Chat 模式,因此推荐优先使用ChatPromptTemplate。它支持系统消息、人类消息的独立构建,并将模板变量分别注入。

实战:使用 ChatPromptTemplate 构建旅游攻略生成器

下面通过一个完整示例,展示如何用 LangChain 的提示词模板构建一个可复用的旅行攻略助手。我们将定义一个包含系统角色和用户模板的ChatPromptTemplate,并调用模型生成结构化回答。

项目结构

├── main.py └── requirements.txt

依赖安装

pipinstalllangchain-openai langchain-core

完整可运行代码

importosfromlangchain_openaiimportChatOpenAIfromlangchain_core.promptsimportChatPromptTemplate# 1. 初始化模型llm=ChatOpenAI(model="gpt-3.5-turbo",temperature=0.7,api_key=os.getenv("OPENAI_API_KEY"),)# 2. 定义提示词模板template=ChatPromptTemplate.from_messages([("system","你是一位资深的旅行规划师,擅长制定个性化的旅行方案。"),("human",("我要和{num_people}位朋友去{destination}玩{days}天,""总预算{budget}元。我们不喜欢行程太紧凑,也不喜欢网红景点,""更偏爱有文化底蕴的景点。请推荐景点并尽量附上门票价格。")),])# 3. 填入具体变量prompt=template.invoke({"num_people":"两","destination":"海南","days":"7","budget":"10000",})print("生成的提示词消息:")print(prompt.to_string())print("\n"+"="*50+"\n")# 4. 调用模型response=llm.invoke(prompt)print("模型回答:")print(response.content)ifresponse.usage_metadata:print("\nToken 用量:",response.usage_metadata)

运行说明

  • 需要设置环境变量OPENAI_API_KEY为有效的 OpenAI API 密钥。
  • 代码使用 GPT-3.5-turbo 进行演示,成本低且足以完成规划任务。
  • 可根据需要调整模板中的系统消息和人类消息,增加更多约束或角色细节。
  • 若想接入本地模型(如 Ollama),将ChatOpenAI替换为ChatOllama并修改base_url即可,模板部分完全通用。

总结

  • 提示词是连接人类意图和模型能力的唯一通道,其质量直接决定应用效果。
  • LangChain 的提示词模板通过变量和格式化实现了提示词的工程化管理,提升了复用性、可维护性和安全性。
  • ChatPromptTemplate是目前最推荐的模板类型,支持多角色消息构建,适配绝大多数模型。
  • 好的提示词应包含角色、背景、目标和约束四个要素,这是 AI Agent 开发的基本功。
http://www.jsqmd.com/news/1330518/

相关文章:

  • 网安自学四个月就敢面试,我踩过的那些雷
  • 5分钟从零掌握JPlag:开源代码相似度检测神器
  • ROS节点开发入门:从工作空间创建到发布订阅通信实战
  • Python爬虫实战:构建中国地震台网数据自动化采集与分析系统
  • MQTT协议与Mosquitto实战:物联网可靠通信的核心机制与工程实践
  • Java安全开发:ESAPI配置全解析与实战避坑指南
  • Unity新手引导系统设计:基于任务队列的非侵入式实现方案
  • GitHub个人访问令牌(PAT)创建与安全使用全指南
  • 2026年8月山东省电信200M单宽带申请避坑攻略 - 找卡家园
  • 2026年8月辽宁省大连市移动单宽带我的真实踩坑经历 - 找卡家园
  • 深蓝词库转换:打破20+输入法壁垒,实现词库自由迁移的技术解密
  • 挑战微软 Windows 365 Link 安全架构:能否打破 EFI 安全启动锁定?
  • 2026年8月福建省宁德市电信单宽带怎么安装 - 找卡家园
  • 3分钟快速上手:免安装微信网页版终极解决方案指南
  • iOS虚拟定位终极指南:无需越狱,轻松模拟全球位置
  • 从代码补全到智能体:如何为Codex设计结构化Skill提升AI编程效率
  • 2026年8月克拉玛依市电信1000M单宽带小白怎么选宽带 - 找卡家园
  • MedRGAG:基于知识需求动态协调RAG检索与生成,解决大模型信源冲突
  • 泛微E9表单开发:详解明细字段属性联动JS实现与实战
  • 企业级AI应用安全架构:从容器到MicroVM的四层纵深防御实践
  • NVIDIA-SMI ERR!错误深度解析:从GPU监控原理到硬件级诊断修复
  • Unity程序化动画:使用Animation Rigging与IK实现动态手臂跟随控制
  • Windows 11与苹果设备文件互传:SMB共享配置与速度优化全攻略
  • Visual C++运行库终极修复指南:告别DLL错误的一键解决方案
  • 投资者情绪:从行为金融学原理到市场实战度量与应用
  • LIVP格式转换指南:苹果动态照片处理技巧
  • 2026年8月福建省龙岩市电信单宽带怎么安装? - 找卡家园
  • C#调用DLL常见错误排查与解决方案实战指南
  • SAP工单下达校验:WORKORDER_UPDATE BADI实战设计与性能优化
  • 测试计划实战指南:从核心要素到嵌入式、Web、模板项目的定制化应用