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

电商客服+导购智能体的设计与开发晒

这个代码的核心功能是基于输入词的长度动态选择反义词示例并调用大模型生成反义词体现了 “动态少样本提示Dynamic Few-Shot Prompting” 与 “上下文长度感知的示例选择” 的能力。from langchain.prompts import FewShotPromptTemplate, PromptTemplatefrom langchain.prompts.example_selector import LengthBasedExampleSelectorfrom langchain_core.output_parsers import StrOutputParserfrom langchain_openai import ChatOpenAIimport osfrom dotenv import load_dotenv# 定义反义词任务的示例数据集few-shot examples# 每个示例包含一个输入词input和对应的反义词outputexamples [{input: 开心, output: 伤心},{input: 高, output: 矮},{input: 精力充沛, output: 没精打采},{input: 粗, output: 细},]# 定义单个示例的格式模板# 使用 {input} 和 {output} 作为占位符用于后续填充具体值example_prompt PromptTemplate(input_variables[input, output], # 声明模板中使用的变量名templateInput: {input}\nOutput: {output}, # 示例的文本格式)# 创建一个基于长度的示例选择器LengthBasedExampleSelector# 作用根据输入提示的总长度动态选择最合适的示例数量避免超出模型上下文限制example_selector LengthBasedExampleSelector(examplesexamples, # 提供所有候选示例example_promptexample_prompt, # 用于格式化每个示例的模板max_length25, # 设定整个 prompt含前缀、示例、后缀的最大 token 长度此处为字符数近似# 注意LengthBasedExampleSelector 默认使用 len(text) 计算长度非精确 token 数适用于简单场景)# 构建动态少样本提示模板FewShotPromptTemplate# 它会根据输入内容的长度自动从 examples 中选择合适数量的示例插入到 prompt 中dynamic_prompt FewShotPromptTemplate(example_selectorexample_selector, # 使用上面定义的动态选择器而非固定示例列表example_promptexample_prompt, # 单个示例的格式prefix给出每个输入的反义词, # 提示的开头部分任务指令suffixInput: {adjective}\nOutput:, # 提示的结尾部分包含待预测的输入占位符input_variables[adjective], # 声明最终用户输入的变量名与 suffix 中的 {adjective} 对应)# 测试 1输入较短应选择多个示例 print(【测试1】输入较短选择多个示例)print(dynamic_prompt.format(adjectivebig))print(------------)# 测试 2输入很长应只选择少量或一个示例以控制总长度 long_string big and huge and massive and large and gigantic and tall and much much much much much bigger than everything elseprint(【测试2】输入很长仅选择一个示例)print(dynamic_prompt.format(adjectivelong_string))print(------------)# 测试 3动态添加新示例 # 向示例选择器中新增一个示例胖 - 瘦new_example {input: 胖, output: 瘦}dynamic_prompt.example_selector.add_example(new_example)print(【测试3】添加新示例后查询热情)print(dynamic_prompt.format(adjective热情))print(------------)# 配置并调用 DeepSeek 大语言模型 llm ChatOpenAI(api_keyos.getenv(DEEPSEEK_API_KEY),base_urlos.getenv(DEEP_URL), # Deepseek 的 API 基础地址modeldeepseek-v3:671b, # Deepseek 对话模型可选deepseek-chat-pro 等高级模型temperature0.7, # 温度参数0-1越低越稳定max_tokens1024 # 最大生成 tokens)# 创建字符串输出解析器用于将模型返回的 AIMessage 转换为纯文本output_parser StrOutputParser()# 构建处理链Chainprompt → LLM → output parser# 使用 LangChain 的管道操作符 | 连接各组件chain dynamic_prompt | llm | output_parser# 调用链传入输入变量 {adjective: 热情}# 注意chain.invoke() 内部已包含 llm 调用和 output_parser 解析无需再手动调用 output_parsermessage chain.invoke({adjective: 热情})# ?? 注意上一行 chain.invoke() 已经返回了字符串因为最后是 StrOutputParser# 所以下面这行是多余的甚至会导致错误因为 message 已是 str不能再次 invoke# result output_parser.invoke(message) # ? 错误message 是 str不是 AIMessage# 正确做法直接使用 message 作为结果result messageprint(###############)print(【模型输出】)print(result)输出结果123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051【测试1】输入较短选择多个示例给出每个输入的反义词Input: 开心Output: 伤心Input: 高Output: 矮Input: 精力充沛Output: 没精打采Input: 粗Output: 细Input: bigOutput:------------【测试2】输入很长仅选择一个示例给出每个输入的反义词Input: 开心Output: 伤心Input: big and huge and massive and large and gigantic and tall and much much much much much bigger than everything elseOutput:------------【测试3】添加新示例后查询热情给出每个输入的反义词Input: 开心Output: 伤心Input: 高Output: 矮Input: 精力充沛Output: 没精打采Input: 粗Output: 细Input: 胖Output: 瘦Input: 热情Output:------------###############【模型输出】冷淡核心要点总结这段代码是基于 LangChain 框架对接 DeepSeek 大模型实现「动态少样本Few-Shot反义词生成」的完整案例核心解决「固定示例易超出模型上下文长度」的问题通过动态示例选择器适配不同长度输入同时结合 LangChain 链式调用简化模型调用流程先明确整体定位再拆解核心重点一、整体流程概览核心逻辑链代码遵循 LangChain 「示例准备 → 动态提示构建 → 模型调用 → 结果解析」的少样本学习经典流程整体可概括为1. 定义反义词任务的固定示例数据集为模型提供参考案例2. 配置基于长度的示例选择器根据输入文本长度动态筛选示例数量3. 构建动态少样本提示模板自动适配输入长度生成合规 Prompt4. 初始化 DeepSeek 模型客户端配置核心调用参数5. 构建「提示模板 → 大模型 → 输出解析」的链式调用流程6. 调用链条完成反义词生成并输出纯文本结果二、核心重点拆解必掌握1. 少样本提示Few-Shot Prompt核心组件这是实现「模型参考示例生成结果」的基础也是 LangChain 提示工程的核心用法- 示例数据集examples以键值对形式存储「输入-输出」示例为模型提供任务参考如开心→伤心- 单示例模板example_prompt定义单个示例的文本格式Input/Output 固定样式统一示例展示形式- 动态少样本模板FewShotPromptTemplate整合示例选择器、单示例模板、前缀/后缀生成最终发给模型的完整 Prompt- prefix任务指令给出每个输入的反义词明确模型要执行的任务- suffix待填充的用户输入占位符承接动态输入内容。2. 动态示例选择器LengthBasedExampleSelector这是代码的核心亮点解决「固定示例数量易超上下文长度」的问题核心作用根据输入文本的长度自动计算并选择合适数量的示例输入越长选的示例越少避免 Prompt 总长度超出模型上下文限制关键参数- examples候选示例列表- example_prompt示例格式化模板用于计算单示例长度- max_lengthPrompt 允许的最大长度此处为字符数近似值。3. LangChain 链式调用| 操作符简化多组件协作流程是 LangChain 核心设计理念- 链条构成dynamic_prompt生成 Prompt | llm调用模型 | output_parser解析结果- 核心优势无需手动分步调用先格式化 Prompt、再调用模型、最后解析结果一行代码完成全流程- 调用方式chain.invoke({adjective: 热情}) 传入输入变量直接返回解析后的纯文本结果。4. 输出解析器StrOutputParser解决「模型返回 AIMessage 对象→提取纯文本」的问题核心作用将 LangChain 模型返回的 AIMessage 类型含 content/metadata 等字段转换为纯字符串简化结果使用关键注意点链式调用中已包含解析步骤无需手动再次调用 output_parser.invoke()否则会报错。啦彩救狗

相关文章:

电商客服+导购智能体的设计与开发晒

这个代码的核心功能是:基于输入词的长度动态选择反义词示例,并调用大模型生成反义词,体现了 “动态少样本提示(Dynamic Few-Shot Prompting)” 与 “上下文长度感知的示例选择” 的能力。 from langchain.prompts impo…...

2-4有关项目‘基于音乐喜好的智能选型平台’中间层建立

建立中间层代码:select * from music_top250;CREATE TABLE yinyvepaihang.yinyve_info_mid (-> id INT PRIMARY KEY,-> yinyve_name VARCHAR(500) NOT NULL,-> yinyve_info TEXT NOT NULL,-> author VARCHAR(255),-> publisher …...

Vue 插槽(Slot)完全指南

插槽是 Vue 中组件内容分发的机制&#xff0c;让父组件可以向子组件传递 HTML 内容。一、为什么需要插槽&#xff1f;<!-- 子组件 Card.vue --> <div class"card"><div class"header">标题</div><div class"body">…...

DigitalInOut2:嵌入式数字I/O的双态缓存与惰性配置方案

1. 项目概述DigitalInOut2是一个面向嵌入式微控制器的轻量级、可移植的数字 I/O 抽象库&#xff0c;其设计目标并非替代 HAL 层&#xff0c;而是作为 HAL 之上的语义增强层&#xff0c;在保持极低资源开销的前提下&#xff0c;统一管理引脚的输入/输出模式切换、电平读写、上拉…...

html标签如何兼容旧浏览器_HTML5新标签降级方案【方法】

IE8及以下不识别HTML5语义标签&#xff0c;需用document.createElement注册并配合html5shiv添加display:block样式才能正常渲染和操作。旧版 IE&#xff08;尤其是 IE8 及以下&#xff09;不识别 <header>、<nav>、<section> 等 HTML5 语义标签&#xff0c;直…...

Qwen3.5-9B代码生成效果:单元测试自动生成+边界条件覆盖分析

Qwen3.5-9B代码生成效果&#xff1a;单元测试自动生成边界条件覆盖分析 1. 开篇&#xff1a;认识Qwen3.5-9B代码生成能力 Qwen3.5-9B是一款拥有90亿参数的开源大语言模型&#xff0c;在代码生成领域展现出惊人的能力。不同于普通代码补全工具&#xff0c;它能理解复杂编程逻辑…...

C#怎么使用ArraySegment和切片 C#如何用Range和Index对数组和字符串进行切片操作【语法】

<p>ArraySegment 是仅记录起始位置和长度的数组视图&#xff0c;不复制数据、无内存安全检查&#xff0c;越界不抛异常&#xff1b;Range/ Index 是 C# 8.0 语法糖&#xff0c;依赖类型实现对应索引器&#xff0c;字符串切片需防代理对越界。</p>ArraySegment 不是…...

解决Ubuntu浏览器认证校园网址无法打开的

清理 WebKit 缓存rm -rf ~/.cache/WebKit/ rm -rf ~/.cache/gnome-shell/portal-helper/重启网络管家sudo systemctl restart NetworkManager...

一键修改文件创建 修改 访问时间,这款小工具太方便 小巧无广告

今天再给大家带来一款吾爱原创的轻量小工具 ——文件时间编辑器&#xff0c;由 Thebzk 开发&#xff0c;整个软件只有 376 KB&#xff0c;小巧便携&#xff0c;功能纯粹。 软件下载地址 操作也非常简单&#xff1a;选中需要修改的文件或文件夹&#xff0c;自定义设置好想要的…...

Vite代理配置实战:如何通过响应头追踪真实接口地址

1. 为什么需要追踪Vite代理的真实接口地址 前端开发过程中&#xff0c;使用Vite的代理功能解决跨域问题已经成为标配。但实际调试时经常会遇到这样的困扰&#xff1a;浏览器Network面板里看到的请求地址全是http://localhost:5173/api/user这样的本地路径&#xff0c;根本不知道…...

关于power bi计算列使用 符号“>“出现报错的问题

解决办法很简单那就是转变逻辑&#xff0c;配合NOT或者"-"之类的方法&#xff0c;使用符号"<"。问题重新&#xff1a;在筛选器中对计算列使用了">"号&#xff0c;视觉对象报错。将">"修改为"<"&#xff0c;发现…...

Wise Care 365 优化工具安装教程:安装+系统优化工具

一、工具简介 Wise Care 365​ 是一款集系统清理、注册表修复、磁盘碎片整理及隐私保护于一体的 Windows 优化工具。 安装包下载&#xff1a;https://pan.quark.cn/s/36a0dcbfcf38 二、使用步骤 1. 解压工具包​ 右键点击【WiseCare...】压缩包 → 选择【解压到 WiseCare36…...

Wan2.2-I2V-A14B学术研究辅助:利用Visio绘制模型架构与技术路线图

Wan2.2-I2V-A14B学术研究辅助&#xff1a;利用Visio绘制模型架构与技术路线图 1. 为什么需要专业的技术图表 在学术研究和技术文档撰写中&#xff0c;清晰直观的图表往往比大段文字更能有效传达复杂概念。以Wan2.2-I2V-A14B这类AI模型为例&#xff0c;其架构通常包含多个模块…...

手把手教你离线部署Stable Diffusion XL:Python Diffusers库魔改实战(附完整代码)

手把手教你离线部署Stable Diffusion XL&#xff1a;Python Diffusers库魔改实战&#xff08;附完整代码&#xff09; 在金融、医疗等对数据安全要求极高的行业&#xff0c;或是某些科研机构的隔离网络中&#xff0c;AI模型的离线部署能力直接决定了技术落地的可能性。今天我们…...

threejs基础教程:从零开始构建你的第一个3D旋转立方体

1. 为什么选择Three.js入门3D开发 第一次接触3D开发时&#xff0c;我被各种专业术语吓到了——顶点着色器、光线追踪、法线贴图...直到发现Three.js这个宝藏库。它就像给WebGL套了个友好外壳&#xff0c;让普通前端开发者也能轻松创建3D效果。记得我最早用Three.js做的项目是个…...

VideoAgentTrek Screen Filter部署排错大全:从403 Forbidden到GPU内存不足

VideoAgentTrek Screen Filter部署排错大全&#xff1a;从403 Forbidden到GPU内存不足 部署AI视频处理工具&#xff0c;最怕的就是遇到各种报错&#xff0c;尤其是当你满怀期待地敲下运行命令&#xff0c;屏幕上却弹出一堆看不懂的红色错误信息时&#xff0c;那种感觉真是让人…...

WSL + Docker + GPU 安装 video-subtitle-remover 完整文档

&#x1f3af; 一、最终目标 在本机实现&#xff1a; 上传视频 → GPU处理 → 输出去字幕视频&#x1f9f1; 二、最终可用环境&#xff08;你实际跑通的&#xff09; WSL2 NVIDIA 驱动&#xff08;Windows&#xff09; 自装 Docker Engine NVIDIA Container Toolkit Docker GPU…...

别再重复造轮子了 教你一招:把全球开源宝库,变成你个人的技能库

文章目录前言一、为什么说"重复造轮子"是程序员最大的浪费&#xff1f;二、全球开源宝库到底有多大&#xff1f;你可能低估了三、找轮子的艺术&#xff1a;如何从海量仓库里挖出宝藏&#xff1f;3.1 善用AI搜索&#xff0c;别再用传统方式了3.2 关注Awesome系列和 cu…...

非科班转编程,面试通关全流程干货

文章目录 前言一、简历关&#xff1a;别让"自学"俩字毁了你1.1 教育背景怎么写&#xff1f;诚实但要有"小心机"1.2 项目经历&#xff1a;千万别写"XXX管理系统" 二、八股文关&#xff1a;别再傻傻背"Redis为什么快"了2.1 2025年八股文…...

I.MX6ULL 裸机开发:SPI 总线与多点触摸屏驱动原理剖析

摘要 本文基于 I.MX6ULL 裸机开发实践&#xff0c;系统梳理了 SPI 串行外设接口的通信协议、ECSPI 控制器配置方法以及 ADXL345 三轴加速度传感器的驱动实现。同时&#xff0c;针对开发板搭载的 GT9147 多点电容触摸控制器&#xff0c;详细分析了其 I2C 通信机制、中断处理流程…...

工控级PCIe转USB四通道µPD720201芯片选型与应用指南

1. 工控级PCIe转USB芯片的核心价值 在工业自动化设备开发中&#xff0c;经常会遇到一个经典问题&#xff1a;主控芯片自带USB2.0接口&#xff0c;但产线测试仪器、工业相机等外设需要USB3.0的高速传输能力。这时候PCIe转USB芯片就成了救命稻草&#xff0c;它就像个"协议翻…...

jQuery Tooltip:深入解析与最佳实践

jQuery Tooltip&#xff1a;深入解析与最佳实践 引言 在Web开发中&#xff0c;Tooltip&#xff08;工具提示&#xff09;是一种常见的交互元素&#xff0c;它可以在用户将鼠标悬停在某个元素上时显示额外的信息。jQuery作为一款流行的JavaScript库&#xff0c;提供了丰富的功能…...

IOFILE结构体的介绍与House of orange鸵

认识Pass层级结构 Pass范围从上到下一共分为5个层级&#xff1a; 模块层级&#xff1a;单个.ll或.bc文件 调用图层级&#xff1a;函数调用的关系。 函数层级&#xff1a;单个函数。 基本块层级&#xff1a;单个代码块。例如C语言中{}括起来的最小代码。 指令层级&#xff1a;单…...

AVP系统背后的技术拆解:车端、场端、云端到底谁在“开车”?

AVP系统技术全景&#xff1a;车端、场端与云端的协同博弈 当一辆特斯拉Model 3在商场停车场自动寻找车位时&#xff0c;它可能正经历着三种技术路线的激烈博弈。AVP&#xff08;自主代客泊车&#xff09;系统作为自动驾驶技术中最先商业化的场景&#xff0c;其背后的技术架构选…...

图论--最小生成树

prim算法(稠密图) 例题:https://www.acwing.com/problem/content/860/ 给定一个 n 个点 m 条边的无向图&#xff0c;图中可能存在重边和自环&#xff0c;边权可能为负数。 求最小生成树的树边权重之和&#xff0c;如果最小生成树不存在则输出 impossible。 给定一张边带权的…...

Photon Matrix激光灭蚊系统深度技术剖析:从理论到工程实现

引言&#xff1a;当反导技术遇上蚊虫防治 激光灭蚊的概念并非Photon Matrix首创。早在2007年&#xff0c;曾参与美国“星球大战”计划的物理学家Lowell Wood就曾在比尔及梅琳达盖茨基金会关于根除疟疾的研讨会上提出过类似设想。此后数年间&#xff0c;Intellectual Ventures等…...

C 语言从 0 入门(十三)|结构体:自定义数据类型与实战

大家好&#xff0c;我是网域小星球。 前面我们学习了基本数据类型、数组、指针、函数&#xff0c;能够处理数字、字符等简单数据。但在实际开发中&#xff0c;我们经常需要描述一个复杂对象&#xff0c;比如学生、商品、员工、书籍等&#xff0c;它们包含多种不同类型的信息&a…...

科研进展 | JAG: 大光斑高光谱激光雷达遥感辐射传输模型从垂直视角解锁森林叶绿素分布密码

大光斑高光谱激光雷达辐射传输模型: 垂直视角解锁叶绿素分布密码当森林的 “健康密码” 藏在垂直分层的枝叶间&#xff0c;传统遥感技术难以触及森林冠层中下层的生化奥秘&#xff1f; 近日&#xff0c;电子科技大学定量遥感团队白杰副研究员&#xff08;师资博士后&#xff09…...

SITS东南亚本地化失败案例复盘,37天重构AI模型适配流程——奇点大会唯一授权披露的应急响应SOP

第一章&#xff1a;奇点智能技术大会&#xff1a;SITS系列品牌的全球化布局 2026奇点智能技术大会(https://ml-summit.org) SITS&#xff08;Singularity Intelligence Technology Series&#xff09;作为奇点智能技术大会核心孵化的技术品牌矩阵&#xff0c;已形成覆盖算法研…...

思摩尔第一季营收38.6亿:同比增42% 全面收益总额1.3亿降39%

雷递网 乐天 4月10日思摩尔国际控股有限公司&#xff08;简称&#xff1a;“思摩尔”&#xff0c;股票代码&#xff1a;“6969”&#xff09;日前发布截至2026年3月31日的财报。财报显示&#xff0c;思摩尔2026年第一季度营收为38.56亿元&#xff0c;较上年同期的27.22亿元增长…...