AI开发-python-langchain框架(1-7 提示词-模板中的模板)
本案例通过精心设计的提示模板将历史对话内容与用户指令有机组合引导模型生成精准的对话摘要。这种设计模拟了真实对话场景模型既能回顾之前的交流内容又能理解当前提出的总结要求从而输出符合预期的结果。消息模板对话结构的骨架设计聊天提示模板是整个流程的骨架它定义了信息的组织方式。模板包含两个关键元素对话历史占位符和总结指令。占位符如同一个可伸缩的插槽能够动态容纳任意轮次的历史消息总结指令则明确告知模型当前任务目标。这种前后分明的结构确保模型不会混淆历史内容与当前指令为生成准确摘要奠定基础。消息类型角色区分的语义价值LangChain 要求每条消息必须明确标识发言者角色人类消息与人工智能消息采用不同的类型封装。这种角色区分并非形式主义而是具有重要的语义价值。模型依赖这些标识来理解对话的流向与逻辑例如分辨哪些内容是用户提问、哪些是系统回答。在总结过程中这种角色信息帮助模型保留对话的交互本质而非简单拼接文本片段。参数化设计灵活复用的关键技巧总结指令中的字数要求被设计为可替换变量这是提示工程中的重要技巧。通过参数化同一套模板能够适应不同场景需求十字段落适合快速浏览百字段落适合详细回顾。这种设计避免了为每种需求重复编写模板实现一次定义多次复用显著提升开发效率与系统可维护性。看代码from langchain.prompts import ( ChatPromptTemplate, # 构建多轮对话提示模板 HumanMessagePromptTemplate, # 构造用户消息模板 MessagesPlaceholder, # 占位历史对话消息 ) from langchain_core.messages import AIMessage, HumanMessage # 定义消息类型 from langchain_openai import ChatOpenAI # 适配 OpenAI 风格的聊天模型 from langchain_core.output_parsers import StrOutputParser # 将模型输出转为纯文本 import os # 用于安全读取环境变量 # # 步骤 1构建对话总结提示模板 # # 用户指令模板要求模型用指定字数总结对话历史 SUMMARY_INSTRUCTION 用 {word_count} 字总结我们迄今为止的对话。 # 创建用户消息模板支持变量替换 summary_message_template HumanMessagePromptTemplate.from_template(SUMMARY_INSTRUCTION) # 组装完整聊天模板 # 1. 先插入历史对话通过 MessagesPlaceholder 动态填充 # 2. 再追加用户总结指令 chat_prompt_template ChatPromptTemplate.from_messages( [ MessagesPlaceholder(variable_nameconversation), # 历史对话占位符 summary_message_template, # 总结指令 ] ) # # 步骤 2模拟多轮对话历史用于测试 # # 用户提问 user_query HumanMessage(content学习编程最好的方法是什么?) # AI 回答结构化建议 ai_response AIMessage( content\ 1. 选择编程语言决定您想要学习的编程语言。 2. 从基础开始熟悉变量、数据类型和控制结构等基本编程概念。 3. 练习、练习、再练习学习编程的最好方法是通过实践经验。\ ) # 构建对话历史列表 conversation_history [user_query, ai_response] # # 步骤 3调试 - 查看最终发送给模型的提示消息可选 # # 格式化模板替换变量生成实际消息列表 formatted_messages chat_prompt_template.format_prompt( conversationconversation_history, word_count10 ).to_messages() print( * 60) print(【调试】发送给模型的完整消息序列) for idx, msg in enumerate(formatted_messages, 1): role User if isinstance(msg, HumanMessage) else AI print(f{idx}. [{role}] {msg.content}) print( * 60) # # 步骤 4初始化语言模型DeepSeek # llm ChatOpenAI( api_keyos.getenv(DEEPSEEK_API_KEY), # 从环境变量读取 API 密钥更安全 base_urlos.getenv(DEEP_URL), # 从环境变量读取 DeepSeek 的 API 基础地址 modeldeepseek-v3:671b, # 指定使用的模型名称 temperature0.7, # 控制生成文本的随机性0~1值越高越有创造性 max_tokens1024 # 限制模型最大输出长度以 token 为单位 ) # # 步骤 5构建处理链Prompt → LLM → Parser # # 链式流程输入变量 → 提示模板 → 语言模型 → 字符串解析 summary_chain chat_prompt_template | llm | StrOutputParser() # # 步骤 6执行链式调用生成对话总结 # # 调用链传入对话历史与字数要求 summary_result summary_chain.invoke({ conversation: conversation_history, word_count: 10 # 要求 10 字总结 }) # 输出结果 print(\n【生成结果】对话总结10 字) print(- * 60) print(summary_result) print(- * 60)输出的结果【调试】发送给模型的完整消息序列1. [User] 学习编程最好的方法是什么?2. [AI] 1. 选择编程语言决定您想要学习的编程语言。2. 从基础开始熟悉变量、数据类型和控制结构等基本编程概念。3. 练习、练习、再练习学习编程的最好方法是通过实践经验。3. [User] 用 10 字总结我们迄今为止的对话。【生成结果】对话总结10 字------------------------------------------------------------think好的用户让我用10个字总结我们迄今为止的对话。首先我需要回顾之前的对话内容。用户最初问的是学习编程最好的方法我给出了三点建议选择语言、从基础开始、多练习。然后用户现在要求总结要求是10个字。首先我需要确保总结涵盖主要点。原回答的三个要点是选择语言、基础概念、实践练习。但10个字可能不够详细需要更简洁。可能需要用更简练的词汇比如“学编程需选语言、基础、实践”这样可能超过10字。需要精简。可能的组合“学编程选语言基础实践。” 这样刚好10个字。检查是否准确选语言对应第一步基础对应第二步实践对应第三步。是的涵盖了主要点。另外用户可能希望总结既简洁又准确所以需要确保没有遗漏关键信息。同时用户可能希望总结能让人一看就明白核心内容所以用冒号和逗号分隔可能更清晰。确认字数是否符合中文每个字和标点算一个字符。这里“学编程选语言基础实践。”正好10个字符包括标点。所以这个应该是合适的。/think学编程选语言基础实践。------------------------------------------------------------

相关新闻

震惊!95%的AI Agent项目都凉了?阿里云新方案让小白也能快速开发智能体,20亿美金收购背后的技术秘密!

震惊!95%的AI Agent项目都凉了?阿里云新方案让小白也能快速开发智能体,20亿美金收购背后的技术秘密!

最近科技圈最大的瓜,莫过于“Meta豪掷20亿美元收购Manus”。很多人疑惑:这个曾被嘲讽“套壳”的公司,凭啥值这么多钱? 其实答案藏在一个行业共识里:AI Agent(智能代理)早就不是概念了&#xff…

2026/7/7 16:42:53 阅读更多 →
大模型检索技术大揭秘!这3种损失函数哪个最强?小白也能秒懂的AI开发必看指南!

大模型检索技术大揭秘!这3种损失函数哪个最强?小白也能秒懂的AI开发必看指南!

Agent 系统发展得这么快那么检索模型还重要吗?RAG 本身都已经衍生出 Agentic RAG和 Self-RAG 这些更复杂的变体了。 答案是肯定的,无论 Agent 方法在效率和推理上做了多少改进,底层还是离不开检索。检索模型越准,需要的迭代调用就…

2026/7/3 16:37:19 阅读更多 →
99999999

99999999

9999

2026/7/6 18:10:18 阅读更多 →

最新新闻

【Java课程设计/毕业设计】基于前后端分离的餐饮营收统计系统的设计与实现 基于 SpringBoot 的智慧餐饮点餐服务系统的设计与实现【附源码、数据库、万字文档】

【Java课程设计/毕业设计】基于前后端分离的餐饮营收统计系统的设计与实现 基于 SpringBoot 的智慧餐饮点餐服务系统的设计与实现【附源码、数据库、万字文档】

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

2026/7/7 21:15:27 阅读更多 →
Python魔法方法:解释器级对象行为契约详解

Python魔法方法:解释器级对象行为契约详解

1. 这不是语法糖,是Python的底层操作系统接口 “Introducing Python Magic Methods”——光看标题,很多人会下意识划走:又是那种讲 __init__ 和 __str__ 的入门教程?但如果你真这么想,就错过了Python最硬核、最常被…

2026/7/7 21:13:27 阅读更多 →
AWS Amplify Gen 2 实战指南:代码即架构的全栈开发范式

AWS Amplify Gen 2 实战指南:代码即架构的全栈开发范式

1. 为什么我三年内用 Amplify 重构了 7 个生产项目——一个全栈开发者的真实视角你有没有过这种体验:凌晨两点,对着一个刚上线的 React 管理后台抓狂。前端页面跑得飞快,但用户一点击“导出报表”,整个 UI 就卡死三秒——因为后端…

2026/7/7 21:13:27 阅读更多 →
《边缘行者2》预告片解析:赛博朋克动画技术与叙事演进

《边缘行者2》预告片解析:赛博朋克动画技术与叙事演进

🚀 30款热门AI模型一站整合,DeepSeek/GLM/Qwen 随心用,限时 5 折。 👉 点击领海量免费额度 1. 从预告片看《边缘行者2》的技术与叙事走向 《赛博朋克:边缘行者》第一季在Netflix上线后,凭借其独特的视觉…

2026/7/7 21:13:27 阅读更多 →
Python数据结构实战:6大生产场景选型与避坑指南

Python数据结构实战:6大生产场景选型与避坑指南

1. 这不是又一篇“列表、字典、元组”的流水账——为什么你学了十遍Python数据结构还是写不出干净代码? “Python Data Structures Tutorial”这个标题,光看字面,像极了那些被点开率拖垮的入门教程:打开是三行定义,五张…

2026/7/7 21:11:26 阅读更多 →
Git prune 原理与安全清理:不可达对象的精准回收机制

Git prune 原理与安全清理:不可达对象的精准回收机制

1. 项目概述:Git prune 不是“删库”,而是给 Git 做一次精准的“淋巴引流” Git prune 这个命令,名字里带个“prune”(修剪),听起来像园艺活儿——剪掉枯枝败叶,让树更健康。但很多刚接触 Git 的…

2026/7/7 21:05:23 阅读更多 →

日新闻

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

图片浏览是移动应用中最高频的场景之一。从社交应用的照片流到电商平台的商品图集,从旅游应用的景点相册到摄影作品展示——用户对图片浏览的体验要求不断提高:流畅的切换动画、直观的缩略图导航、便捷的收藏操作、自动播放模式。HarmonyOS NEXT ArkUI 虽…

2026/7/7 0:05:16 阅读更多 →
24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V稳压芯片完整选型指南 PW8600 PW75XX PW2815 PW2312B LDODC/DC全方案 一、24V稳压方案概述 24V直流电源在工业自动化、门禁系统、电梯控制、汽车电子、LED驱动、监控设备等场景中应用极广,是最常见的中压直流母线电压。要将24V母线稳定降压至下游MCU、传感器…

2026/7/7 0:05:16 阅读更多 →
RAG+知识图谱混合检索与Graph RAG核心对比

RAG+知识图谱混合检索与Graph RAG核心对比

做企业RAG落地的团队,往往容易卡在一容易踩坑的选型难题: 当需求单纯靠向量RAG搞不定、单纯靠知识图谱也搞不定,必须同时依赖「文本语义理解 实体关系推理」时,到底是做「向量图谱混合检索」就够了,还是必须上「Grap…

2026/7/7 0:07:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/7 14:24:45 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/7 12:34:47 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/7 15:59:06 阅读更多 →

月新闻