langchain 常见提示词模板使用案例

大模型对象创建&调用

""" 大模型共用定义 """importosfromdotenvimportload_dotenvfromlangchain_openaiimportChatOpenAI load_dotenv()# 创建大模型对象llm=ChatOpenAI(model="qwen-max-latest",base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",api_key=os.getenv("DASHSCOPE_API_KEY"),streaming=True,)result=llm.stream("介绍一下你自己")forchunkinresult:print(chunk.content,end="")
C:\Users\user\Desktop\mypython\class_mk_agent\chapter04\.venv\Scripts\python.exe C:\Users\user\Desktop\mypython\class_mk_agent\chapter04\bailian\LlmCommon.py 你好!我是Qwen,这是我的英文名,你也可以叫我通义千问。我是阿里云研发的一种超大规模语言模型,能够帮助用户生成各种类型的文本、回答问题、创作文字,如写故事、公文、邮件、剧本等,还能进行逻辑推理、编程,甚至表达观点和玩游戏等。 我支持多种语言,包括但不限于中文、英文、德语、法语、西班牙语等,能够满足国际化的使用需求。通过不断学习和优化,我致力于为用户提供更加准确、流畅和自然的交互体验。 如果你有任何问题或需要帮助,欢迎随时向我提问! 进程已结束,退出代码为0




langchain常用的提示词模板

模板类型适用场景关键特点示例
PromptTemplate简单任务、单轮问答字符串替换、简单直接翻译、摘要、分类
ChatPromptTemplate多轮对话、角色扮演支持多种消息角色、上下文管理客服、教学、咨询
FewShotPromptTemplate需要示例引导的任务提供少量示例、格式控制情感分析、代码生成、格式转换

提示词模板类继承关系

一、 PromptTemplate 字符串模板提示词

适用于单轮对话

01 字符串提示模板.py

通过传入模板字符串+变量列表创建

template="请将以下文本翻译成{target_language}: {text}"prompt=PromptTemplate(input_variables=["target_language","text"],template=template)# 格式化提示词formatted_prompt=prompt.format(target_language="法语",text="你好,世界!")

直接使用模板字符串

# 方法2: 直接传入模板字符串创建promptTemplate2=PromptTemplate.from_template("作为{role},请{action}: {content}")formatted_prompt2=promptTemplate2.format(role='资深文案',action='写一段产品介绍',content='新款智能手机')

使用模板字符串创建,并设置预设值

# 方法3: 传入模板字符串+变量列表创建,并预设部分变量值partial_prompt=PromptTemplate(template="{product}的主要功能包括:{features}",input_variables=["product","features"]).partial(product="智能手表")formatted_partial_prompt=partial_prompt.format(features='心率监测、GPS定位、消息提醒',product='智能手机')

代码案例

# 实际使用示例:预设翻译提示词模板translation_template=""" 你是一位专业的翻译专家。请将以下{source_language}文本翻译成{target_language}。 原文:{source_text} 要求: 1. 保持原意准确 2. 符合{target_language}的表达习惯 3. 如果是专业术语,请使用标准译法 翻译结果: """# 第一步 定义模板translation_prompt=PromptTemplate(template=translation_template,input_variables=["source_language","target_language","source_text"],)# 第二步 模板+变量 生成提示词formatted_prompt=translation_prompt.format(source_language="中文",target_language="英语",source_text="人工智能正在改变世界")# 第三步 传入模板运行模型try:result=llm.stream(formatted_prompt)print("大模型输出结果:")forchunkinresult:print(chunk.content,end="")exceptExceptionase:print(f"API调用失败:{e}")
大模型输出结果: Artificial intelligence is transforming the world.

二、对话提示词模板 ChatPromptTemplate

适用:多轮对话、角色扮演

特点: 支持多种消息角色、上下文管理

场景:客服、教学、咨询

02 对话提示词模板.py

方式 1 使用预定义角色的 MessagePromptTemplate 来创建

system_template="你是一个{role},具有{experience}的经验。你的沟通风格是{style}。"system_message_prompt=SystemMessagePromptTemplate.from_template(system_template)human_template="{question}"human_message_prompt=HumanMessagePromptTemplate.from_template(human_template)chat_prompt=ChatPromptTemplate.from_messages([system_message_prompt,human_message_prompt,])# 使用模板创建消息messages=chat_prompt.format_messages(role="资深软件架构师",experience="10年微服务架构设计",style="清晰、直接、有逻辑性",question="如何设计一个高可用的电商系统?")

方式 2 直接使用长度为 2 的元组列表创建

这里使用的元祖列表,固定第一个元素作为角色

chat_prompt2=ChatPromptTemplate.from_messages([("system","你是{expert_type}专家。请用{language}回答。"),("human","请解释一下{concept}。"),("assistant","好的,我来解释一下{concept}。"),("human","{follow_up_question}")])messages2=chat_prompt2.format_messages(expert_type="机器学习",language="中文",concept="神经网络",follow_up_question="那么深度学习又是什么呢?")

方式 3 使用方式 1+MessagePlaceHolder 消息占位符实现历史消息

# 方法3: 传入角色的MessagePromptTemplate+占位符列表创建customer_service_prompt=ChatPromptTemplate.from_messages([SystemMessagePromptTemplate.from_template("你是{company_name}的客服助手。公司主要产品是{product}。""你的服务态度应该是{friendly_level}。""如果遇到无法解决的问题,请建议用户联系{support_channel}。"),MessagesPlaceholder(variable_name="chat_history"),HumanMessagePromptTemplate.from_template("{user_input}")])chat_history=[HumanMessage(content="我的订单状态如何?"),AIMessage(content="请提供您的订单号,我来帮您查询。")]messages3=customer_service_prompt.format_messages(company_name="TechGadget",product="智能家居设备",friendly_level="热情耐心",support_channel="客服热线 400-123-4567",chat_history=chat_history,user_input="订单号是 ORD20231234567")

代码案例

customer_service_prompt=ChatPromptTemplate.from_messages([SystemMessagePromptTemplate.from_template("你是{company_name}的客服助手。公司主要产品是{product}。""你的服务态度应该是{friendly_level}。""如果遇到无法解决的问题,请建议用户联系{support_channel}。"),MessagesPlaceholder(variable_name="chat_history"),HumanMessagePromptTemplate.from_template("{user_input}")])try:prompt_param={"company_name":"3DM","product":"单机游戏售卖","friendly_level":"热情耐心且专业","support_channel":"客服热线 400-123-4567","chat_history":[],"user_input":"你们公司主要干啥的"}# 这里使用管道符进行链式调用,提示词模板+参数生成的提示词,会直接给llm作为参数chain=customer_service_prompt|llm response=chain.stream(prompt_param)forchunkinresponse:print(chunk.content,end="")exceptExceptionase:print(f"API调用失败:{e}")
C:\Users\user\Desktop\mypython\class_mk_agent\chapter04\.venv\Scripts\python.exe"C:\Users\user\Desktop\mypython\class_mk_agent\chapter04\bailian\02 对话提示词模板.py"您好!欢迎来到3DM游戏商城~我们公司主要致力于为广大玩家朋友提供最新、最全的正版单机游戏。在这里您可以找到各种类型的优质游戏作品,包括动作冒险、角色扮演、策略模拟等等。我们不仅提供优质的游戏资源,还配有完善的售后服务,确保每位玩家都能获得最佳的游戏体验。如果您对游戏有任何疑问或需求,随时都可以向我咨询哦! 进程已结束,退出代码为0

三、少量引导提示词模板 FewShotPromptTemplate

场景:需要示例引导的任务

特点:提供少量示例、格式控制

场景:情感分析、代码生成、格式转换

03 少量样本参数提示词模板.py

创建模板

创建引导词模板,需要引导词案例、前缀、后缀、引导词模板等信息

examples=[{"text":"这个产品真是太棒了,完全超出我的预期!","sentiment":"积极","reason":"使用了强烈的正面词汇'太棒了'和'超出预期'"},{"text":"服务一般,没什么特别的体验。","sentiment":"中性","reason":"使用中性词汇'一般',没有明显情感倾向"},{"text":"质量太差了,用了两天就坏了,非常失望!","sentiment":"消极","reason":"使用负面词汇'太差了'、'坏了'和'失望'"},{"text":"物流速度很快,但包装有点简陋。","sentiment":"混合","reason":"既有正面评价'很快',又有负面评价'简陋'"}]# 示例格式模板example_template=""" 文本: {text} 情感: {sentiment} 分析: {reason} """example_prompt=PromptTemplate(input_variables=["text","sentiment","reason"],template=example_template)# 前缀和后缀模板prefix="""你是一个情感分析专家。请分析以下文本的情感倾向。 以下是几个分析示例: """suffix=""" 现在请分析这个新文本: 文本: {input_text} 情感: 分析: """# 构建 FewShotPromptTemplatefew_shot_prompt=FewShotPromptTemplate(examples=examples,example_prompt=example_prompt,prefix=prefix,suffix=suffix,input_variables=["input_text"],example_separator="\n"+"-"*40+"\n")

代码案例

# 运行测试try:chain=few_shot_prompt|llm result=chain.invoke({"input_text":"东西很好用"})print(f"情感分析结果:\n{result.content}")exceptExceptionase:print(f"API调用失败:{e}")

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/1159399.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

langchain的工具调用

Tools 就是给大模型安装的"手和脚",让大模型能够调用外部函数/API来获取实时信息或执行具体操作。Tools 的工作流程 完整流程 用户问题 → 大模型思考 → 调用Tool → 执行Tool → 结果返回 → 大模型重新组织 → 最终回答 # 1. 用户提问 user_question …

告别熬夜做 PPT!虎贲等考 AI PPT:学术汇报的 “一键焕新” 神器

学术汇报的终极痛点是什么?不是论文写得不够好,而是熬了三个通宵做的 PPT,被导师批 “逻辑混乱、排版杂乱、重点不明”。从开题汇报、中期答辩到最终答辩,每一次 PPT 制作都像一场耗时耗力的 “硬仗”—— 既要提炼论文核心观点&a…

销售要少夸赞自己实力强,多问问客户害怕什么

制造业的销售常常会犯一个致命的错误:一和客户见面就急着向对方证明“我们技术领先同行”“设备精度非常高”“服务响应速度快”……但客户内心里想的却是:“你说得再好,万一出现问题,这个责任还是得我来承担,”在责任…

GetX 从 0 开始:理解 Flutter 的“对象级响应式系统”

很多人听说 GetX,是因为它“什么都能干”:状态管理、路由、依赖注入。 但如果一上来就学 API,很容易学成“工具集合”。 这篇文章只做一件事: 👉 从 0 建立对 GetX 的正确认知:它到底解决什么问题&#xff…

极致感知与定位:基于电鱼智能 RK3588 的 AMR 机器人高精度 vSLAM 导航方案

为什么 AMR 机器人首选 RK3588 进行 vSLAM?1. 多核异构算力匹配 vSLAM 任务链vSLAM 算法包含高度复杂的流水线,RK3588 的异构架构可以实现完美的分工:Cortex-A76 高大核:负责前端视觉里程计(VO)的特征点提取…

Java酒店管理系统(简易版)_java简易酒店管理系统

1.需求: 实现一个简单的酒店客房管理系统,它具备5个功能,分别为【1:查看所有房间功能;2:订房功能;3:退房功能;4:修改价格功能;5:退出本系统功能】…

电鱼智能 RK3576 实现商用清洁机器人的视觉避障与路径规划

什么是 电鱼智能 RK3576?电鱼智能 RK3576 是一款专为 AIoT 场景设计的中高端 SoC。它搭载 4 核 Cortex-A72 4 核 Cortex-A53 处理器,最大的亮点在于集成了 6TOPS 的独立 NPU(算力甚至接近旗舰级 RK3588 的单核 NPU 性能)。配合支…

揭秘!这位吴忠羽球教练凭什么带出锦标赛亚军?答案藏在3大教学绝招里

吴忠羽球教练韩宁波能带出锦标赛亚军,主要得益于以下三大教学绝招:科技赋能,精准训练肌电传感器揭秘力量传导链:韩宁波引入医疗级肌电传感器,开发出“肌肉激活顺序训练法”。学员佩戴8通道传感器进行专项训练&#xff…

基于DCT变换图像去噪算法的终极优化(1920*1080灰度图单核约22ms)

相关文章: 优化IPOL网站中基于DCT(离散余弦变换)的图像去噪算法(附源代码)。 SSE图像算法优化系列二十一:基于DCT变换图像去噪算法的进一步优化(100W像素30ms)。 这个算法2015年优化过一版,2018年又优化过一版,2016年初又来回访一…

韩宁波的羽球哲学:用竞技场的热血浇灌,让每个学员都成为自己的冠军

韩宁波的羽球哲学以“突破极限、科技赋能、跨界融合”为核心,通过竞技场的热血实践,让每个学员在技术、体能与心理层面实现自我超越,成为自己人生的冠军。以下从三大维度解析其哲学内涵与实践路径:一、突破极限:从“经…

python基于vue的流浪动物救助志愿者管理系统django flask pycharm

目录基于Python与Vue的流浪动物救助志愿者管理系统开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!基于Python与Vue的流浪动物救助志愿者管理系统 该系统采用前后端分离架构,后端…

2026 毕业季硬核攻略:8 款 AI 毕业论文工具实测,paperzz 领衔解锁学术创作新姿势

Paperzz-AI官网免费论文查重复率AIGC检测/开题报告/文献综述/论文初稿 paperzz - 毕业论文-AIGC论文检测-AI智能降重-ai智能写作https://www.paperzz.cc/dissertation 毕业季的论文攻坚战,早已不是单打独斗的苦役。当 AI 技术深度融入学术场景,一批高效…

基于 电鱼智能 RK3568 打造工业协作机械臂的一体化关节控制器

什么是 电鱼智能 RK3568?电鱼智能 RK3568 是一款高性能、低功耗的国产化工业核心平台。它搭载四核 64 位 Cortex-A55 处理器,主频 2.0GHz,内置 1TOPS NPU。对于机器人应用,其杀手锏在于支持 ECC 内存(数据安全&#xf…

python基于vue的咖啡点单程序设计django flask pycharm

目录基于Vue与Python的咖啡点单系统设计开发技术路线相关技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!基于Vue与Python的咖啡点单系统设计 技术栈选择 采用Vue.js作为前端框架,搭配Django或Fl…

吴忠羽球新势力!国家二级运动员韩宁波:用竞技基因解码进阶训练密码

吴忠羽球新势力!国家二级运动员韩宁波:用竞技基因解码进阶训练密码在宁夏吴忠的羽毛球版图上,国家二级运动员韩宁波正以"竞技基因科技赋能"的双核模式,重塑青少年羽毛球训练体系。从肌肉激活的毫米级调整到沙漠抗干扰训…

全网最全9个AI论文软件,专科生搞定毕业论文必备!

全网最全9个AI论文软件,专科生搞定毕业论文必备! AI 工具让论文写作不再难 对于专科生来说,毕业论文是大学生活中一个令人头疼的挑战。面对繁重的写作任务、严格的格式要求以及不断攀升的查重率,很多同学感到无从下手。而如今&…

电鱼智能 RK3399 赋能配送机器人的多屏交互与人脸识别支付

什么是 电鱼智能 RK3399?电鱼智能 RK3399 是一款高性能、高扩展性的六核(2A72 4A53)嵌入式核心板。虽然发布已有几年,但它在多媒体处理方面依然表现强劲。它支持 双路 MIPI/LVDS/HDMI/eDP 显示接口,且内置了双路 ISP&…

冠军教练的「双面人生」:韩宁波以赛场荣誉为基石,筑就吴忠羽毛球学习新范式

冠军教练的「双面人生」:韩宁波以赛场荣誉为基石,筑就吴忠羽毛球学习新范式在吴忠羽毛球运动的版图上,韩宁波的名字始终与突破、创新和普惠紧密相连。从国家二级运动员到冠军教练,从竞技赛场的技术革新到全民健身的生态构建&#…

[特殊字符]收藏!留学生大模型薪资曝光:55k起、140w总包,2026归国潮AI岗位全攻略

文章讲述了留学生回国就业热潮,特别是AI、大模型领域的高薪现象。字节跳动、美团、腾讯等大厂推出专项招聘计划,薪资远超往年,博士总包可达140w。同时分析了留学生回国求职面临的挑战,如信息不对称、竞争激烈等,并介绍…

宁夏羽球教育新标杆:韩宁波的「三维教学法」如何让学员技术体能双飞跃

韩宁波的「三维教学法」通过技术解构、体能强化、实战应用三个维度的有机联动,结合数字化工具与个性化训练方案,实现了学员技术与体能的双重突破,成为宁夏羽毛球教育的新标杆。以下从三个维度解析其创新路径与成效:一、技术解构&a…