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

LangChain学习之提示词模板 (Prompts) - 练习(2/8)

模块 2: 提示词模板 (Prompts) - 练习练习目标熟练使用PromptTemplate创建和格式化包含变量的提示词。熟练使用ChatPromptTemplate创建和格式化包含不同角色消息的聊天提示词。理解并实践FewShotPromptTemplate通过示例引导模型行为。准备工作确保已完成模块 1 的环境搭建。准备好您的 DeepSeek API 密钥。练习步骤步骤 1: 使用PromptTemplate生成产品描述创建一个名为product_description.ts的文件使用PromptTemplate为不同的产品生成描述。模板应包含product_name和features两个变量。// product_description.tsimportdotenv/config;import{PromptTemplate}fromlangchain/core/prompts;import{ChatOpenAI}fromlangchain/openai;import{StringOutputParser}fromlangchain/core/output_parsers;asyncfunctionmain(){constmodelnewChatOpenAI({model:deepseek-v4-flash,temperature:0.7,apiKey:process.env.DEEPSEEK_API_KEY,configuration:{baseURL:https://api.deepseek.com,},});constparsernewStringOutputParser();constpromptTemplatePromptTemplate.fromTemplate(请为以下产品生成一个吸引人的描述。产品名称{product_name}主要特点{features}。);constchainpromptTemplate.pipe(model).pipe(parser);console.log(正在为智能手表生成描述...);constresult1awaitchain.invoke({product_name:智能手表,features:心率监测、GPS、NFC支付,});console.log(\n--- 智能手表描述 ---\n);console.log(result1);console.log(\n正在为智能音箱生成描述...);constresult2awaitchain.invoke({product_name:智能音箱,features:语音助手、高保真音质、智能家居控制,});console.log(\n--- 智能音箱描述 ---\n);console.log(result2);}main().catch(console.error);运行您的代码npx ts-node product_description.ts步骤 2: 使用ChatPromptTemplate构建多角色对话创建一个名为chat_roles.ts的文件使用ChatPromptTemplate构建一个包含系统、人类和 AI 消息的对话。系统消息应定义 AI 的角色人类消息应包含用户的问题并预留一个 AI 消息的占位符。// chat_roles.tsimportdotenv/config;import{ChatOpenAI}fromlangchain/openai;import{ChatPromptTemplate,SystemMessagePromptTemplate,HumanMessagePromptTemplate,AIMessagePromptTemplate}fromlangchain/core/prompts;import{HumanMessage,AIMessage}fromlangchain/core/messages;asyncfunctionmain(){constchatModelnewChatOpenAI({model:deepseek-v4-flash,temperature:0.7,apiKey:process.env.DEEPSEEK_API_KEY,configuration:{baseURL:https://api.deepseek.com,},});constchatPromptChatPromptTemplate.fromMessages([SystemMessagePromptTemplate.fromTemplate(你是一个专业的心理咨询师以耐心和同理心回答问题。),HumanMessagePromptTemplate.fromTemplate(我最近感到压力很大工作和生活都一团糟我该怎么办),AIMessagePromptTemplate.fromTemplate(我理解你的感受压力确实会让人感到困扰。我们可以一起探讨一些应对策略。\n{ai_response_placeholder}),// 预留 AI 回复的占位符]);// 格式化提示词并填充 AI 回复的占位符constformattedMessagesawaitchatPrompt.formatMessages({ai_response_placeholder:你愿意分享更多细节吗比如是什么让你感到压力最大,});console.log(正在进行心理咨询对话...);constresponseawaitchatModel.invoke(formattedMessages);console.log(\n--- 对话结果 ---\n);console.log(response.content);}main().catch(console.error);运行您的代码npx ts-node chat_roles.ts步骤 3: 使用FewShotPromptTemplate进行情感分类创建一个名为few_shot_sentiment.ts的文件使用FewShotPromptTemplate通过少量示例来指导模型进行情感分类正面/负面。// few_shot_sentiment.tsimportdotenv/config;import{ChatOpenAI}fromlangchain/openai;import{FewShotPromptTemplate,PromptTemplate}fromlangchain/core/prompts;import{StringOutputParser}fromlangchain/core/output_parsers;asyncfunctionmain(){constmodelnewChatOpenAI({model:deepseek-v4-flash,temperature:0,apiKey:process.env.DEEPSEEK_API_KEY,configuration:{baseURL:https://api.deepseek.com,},});constparsernewStringOutputParser();// 将模型输出解析为字符串constexamples[{input:这部电影太棒了我非常喜欢,output:正面,},{input:今天的会议很无聊浪费时间。,output:负面,},{input:我收到了一个惊喜礼物太开心了,output:正面,},];constexamplePromptnewPromptTemplate({inputVariables:[input,output],template:文本: {input}\n情感: {output},});constfewShotPromptnewFewShotPromptTemplate({examples:examples,examplePrompt:examplePrompt,prefix:请根据以下示例判断文本的情感正面/负面,suffix:文本: {input}\n情感:,inputVariables:[input],exampleSeparator:\n\n,});constchainfewShotPrompt.pipe(model).pipe(parser);console.log(正在判断文本情感...);constresultawaitchain.invoke({input:我对这次的客户服务非常不满意。,});console.log(\n--- 情感判断结果 ---\n);console.log(result);}main().catch(console.error);运行您的代码npx ts-node few_shot_sentiment.ts思考题在什么情况下您会选择使用PromptTemplate而不是ChatPromptTemplate反之亦然。FewShotPromptTemplate中的prefix、suffix和exampleSeparator参数有什么作用尝试修改它们并观察对输出的影响。除了情感分类FewShotPromptTemplate还可以应用于哪些场景请举例说明。纯文本任务用 PromptTemplate对话角色用 ChatPromptTemplateprefix 是总指令suffix 引导输出exampleSeparator 分隔示例FewShot 适用于分类、抽取、格式转换、规则生成等几乎所有任务
http://www.gsyq.cn/news/1339068.html

相关文章:

  • 2026年一体式卫生间公司行业服务与发展趋势分析 - 品牌排行榜
  • 南京女性心理咨询机构如何选择?专业服务助力心理健康 - 品牌排行榜
  • 写给前端的 CANN-ops-fft:昇腾FFT算子库到底是啥?
  • 【硬核测评】程序员专属AI面霸养成指南:鹅来面OfferGoose,真的能让你Offer拿到手软?
  • 想学网络安全先收藏,帮你少走大量弯路
  • 2026年沙盘模型设计制作公司最新推荐榜:建筑/工业/规划/智能沙盘定制厂家甄选 - 海棠依旧大
  • 2026年5月贵阳黄金奢侈品回收公司最新推荐:黄金、彩金、奢侈品回收优选指南 - 海棠依旧大
  • Canvas 安全事件后高校场景钓鱼攻击机理与防御研究
  • 10-部署、联调与排障:这套平台如何真正稳定跑起来
  • 2026年贵阳黄金奢侈品回收公司靠谱推荐榜:黄金/彩金/珠宝/奢侈品/黄金首饰/黄金手镯/黄金项链回收 - 海棠依旧大
  • 终极指南:如何免费解锁WeMod Pro全部功能?Wand-Enhancer完整教程
  • 观察Taotoken用量看板如何帮助控制月度API支出
  • 跨平台三星固件管理终极指南:Bifrost如何革新固件下载体验
  • 2026年口碑好的唇彩灌装机生产商-推荐的高速唇彩灌装机生产商-知名的中速唇彩灌装机生产商 - 品牌推广大师
  • 深入浅出聊噪声:从热噪声、1/f噪声到SNR,如何为你的CMOS传感器/ADC选择低噪声运放?
  • 印尼语重音规则×ElevenLabs声学模型错配真相(附可直接复用的Python预处理脚本与IPA对齐验证工具)
  • tRPC-Go 框架 01:tRPC-Go 总览与核心架构
  • AI语音合成在MMORPG中的应用,从NPC个性化声线到玩家语音驱动角色动作的完整链路
  • 2026濮阳高性价比软件开发企业靠谱排行榜 - 资讯速览
  • Java找工作别老盯着所谓的“金三银四”与“金九银十”!
  • 2026年河北联邦外国语学校升学实力评测:用升学硬数据说话 - 奔跑123
  • Wireshark抓包排查DNS攻击实录:从tcpdump到iptables封禁的完整链路
  • 2026程序员面试必备工具盘点|刷题/简历/模拟面试/复盘全覆盖(亲测好用)
  • TrafficMonitor插件宝典:打造你的全能桌面监控中心
  • 别再被‘pip不是内部命令’搞懵了!Python新手必看的pip安装与修复保姆级教程(附ensurepip用法)
  • 2026通关榜!好用的降AIGC平台全盘点,AIGC痕迹直接抹平!
  • ElevenLabs陕西话语音上线倒计时:政策合规红线+广电备案要点+方言数据脱敏清单(2024Q3最新监管口径)
  • 辽宁森信再生资源:合规专业的本地电脑回收服务商 - 奔跑123
  • GHelper:华硕笔记本性能调优的终极解决方案
  • 深度解析AI游戏瞄准辅助:从YOLOv10模型到实时视觉识别的完整技术架构