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

第四章:大模型(LLM)】06.langchain原理-(5)LangChain Prompt 用法

第四章:大模型(LLM)

第六部分:LangChain 原理

第五节:LangChain Prompt 用法

Prompt 在 LangChain 中处于核心地位。它决定了模型接收的上下文和指令,从而直接影响输出质量。LangChain 针对 Prompt 做了高度抽象和封装,主要包含以下几个方面:


1. Prompt 的基本概念

  • Prompt:输入给 LLM 的文本(可能包含占位符、上下文、指令等)。

  • PromptTemplate:LangChain 对 Prompt 的抽象,用来支持动态插值可复用模板

  • MessagePromptTemplate:用于多轮对话,支持 System / Human / AI 多角色消息。

  • ChatPromptTemplate:封装一组消息模板,便于和聊天模型结合。


2. PromptTemplate 使用

from langchain.prompts import PromptTemplatetemplate = "请用一句话总结以下内容:{text}"
prompt = PromptTemplate(input_variables=["text"],template=template,
)# 渲染
final_prompt = prompt.format(text="LangChain 是一个用于构建大模型应用的框架。")
print(final_prompt)
# 输出: 请用一句话总结以下内容:LangChain 是一个用于构建大模型应用的框架。

特点:

  • 模板中使用 {变量名} 作为占位符。

  • input_variables 定义可替换的变量。


3. ChatPromptTemplate(对话型提示)

from langchain.prompts import ChatPromptTemplatechat_prompt = ChatPromptTemplate.from_messages([("system", "你是一个乐于助人的助手。"),("human", "请将以下内容翻译成英文:{text}")
])final_prompt = chat_prompt.format_messages(text="你好,世界!")
print(final_prompt)

输出是多条消息,适配聊天模型(如 OpenAI ChatCompletion)。


4. Few-shot Prompt(小样本提示)

from langchain.prompts import FewShotPromptTemplateexamples = [{"question": "2+2等于几?", "answer": "4"},{"question": "3+5等于几?", "answer": "8"},
]example_prompt = PromptTemplate(input_variables=["question", "answer"],template="Q: {question}\nA: {answer}"
)few_shot_prompt = FewShotPromptTemplate(examples=examples,example_prompt=example_prompt,suffix="Q: {input}\nA:",input_variables=["input"],
)print(few_shot_prompt.format(input="10+15等于几?"))

通过示例引导模型学习回答模式。


5. Prompt 的链式组合

Prompt 可以和 ChainMemory 结合:

  • Chain + Prompt:先动态生成 Prompt,再传给 LLM。

  • Memory + Prompt:记忆组件自动填充 Prompt 的历史对话部分。


6. 实战技巧

  1. 少即是多:Prompt 过长可能导致 LLM 迷失重点。

  2. 角色扮演:在 Prompt 中设置 AI 的身份,可改善回答风格。

  3. 输出约束:通过 JSON Schema、格式提示,提高结果可解析性。

  4. 动态拼接:结合外部数据源动态注入 Prompt。


7. 小结

  • LangChain 的 Prompt 系统提供了 灵活可重用的模板机制

  • PromptTemplateChatPromptTemplate,再到 FewShotPromptTemplate,逐步增强了 Prompt 的表达能力。

  • 配合 Chain / Memory,可以实现高度自动化的 Prompt 生成。

http://www.dtcms.com/a/333932.html

相关文章:

  • PowerPoint和WPS演示放映PPT时如何禁止鼠标翻页
  • [1Prompt1Story] 注意力机制增强 IPCA | 去噪神经网络 UNet | U型架构分步去噪
  • 国产之光时空克隆:功能对标谷歌地球,旅游规划还能加载倾斜摄影模型,三维视频融合 免费使用
  • GaussDB 数据库架构师修炼(十三)安全管理(3)-行级访问控制
  • 【C++】C++11
  • implement copy file content to clipboard on Windows
  • spring-ai-alibaba 学习(二十六)——graph总结
  • 超越“调参”:从系统架构师视角,重构 AI 智能体的设计范式
  • 玩转云原生,使用k9s管理k8s集群和k3s集群
  • 基本电子元件:金属氧化膜电阻器
  • PostgreSQL 时间函数及格式类型
  • 【机器学习深度学习】OpenCompass:支持的开源评估数据集及使用差异
  • [CSP-J2020] 方格取数
  • [1Prompt1Story] 生成行为控制器 | 语义向量重加权(SVR)
  • qt vs2019编译QXlsx
  • 从 “视频孪生” 到 “视频动态目标三维重构”:技术演进与核心突破
  • 使用npm link本地测试组件库
  • [Linux] Linux tar文档管理 系统间复制文档
  • KingbaseES高可用架构深度解析——从读写分离到异地灾备的全方位守护
  • 零改造迁移实录:2000+存储过程从SQL Server滑入KingbaseES V9R4C12的72小时
  • 线程池与异步编程——语法归纳
  • STM32F407 TIM pwm 调试笔记, LL库
  • 安卓11 12系统修改定制化_____如何去除安卓11 12的系统签名验证
  • 【大模型应用开发 1.嵌入模型与向量数据库 Chroma】
  • JavaEE 初阶第十九期:网络编程“通关记”(一)
  • C# 应用特性的更多内容:多维度解析与深度拓展
  • AI安全防御框架:纵深防御与零信任策略浅谈
  • 【C 学习】06-算法程序设计举例
  • pnpm(Performant npm)的安装
  • 欧姆龙CP系列以太网通讯实现上位机与触摸屏监控