当前位置: 首页 > 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…...

【电机】深入解析无刷直流电机BLDC的工作原理与性能优势

1. 无刷直流电机BLDC的革新性设计 第一次拆解无刷电机时,我被它的精巧结构震撼到了——传统有刷电机里那些容易磨损的碳刷和换向器完全消失了,取而代之的是三个呈星形排列的线圈和一组永磁体。这种将"电刷物理接触"变为"电子换向"的…...

Wan2.2-I2V-A14B镜像免配置方案:单卡24G显存+120GB内存开箱即用部署指南

Wan2.2-I2V-A14B镜像免配置方案:单卡24G显存120GB内存开箱即用部署指南 1. 镜像概述与核心优势 Wan2.2-I2V-A14B是一款专为文生视频任务优化的私有部署镜像,针对RTX 4090D 24GB显存显卡进行了深度优化。这个镜像最大的特点就是"开箱即用"——…...

如何快速将学术论文转换为精美海报:揭秘Paper2Poster多代理智能生成系统

如何快速将学术论文转换为精美海报:揭秘Paper2Poster多代理智能生成系统 【免费下载链接】Paper2Poster [NeurIPS 2025 D&B] Open-source Multi-agent Poster Generation from Papers 项目地址: https://gitcode.com/gh_mirrors/pa/Paper2Poster Paper2P…...

别再手动改时间了!Ubuntu 22.04 用 timedatectl 一键切换时区到 Asia/Shanghai 的完整指南

告别时间混乱:Ubuntu 22.04 时区管理终极指南 刚装好Ubuntu系统,发现右下角的时间总是不对?每次连接远程服务器都要手动计算时差?作为Linux新手,你可能还在图形界面里翻找时区设置,或者用着老旧的tzselect…...

3分钟快速上手:多平台资源下载神器res-downloader终极指南

3分钟快速上手:多平台资源下载神器res-downloader终极指南 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader 在当今…...

OpenRecall安全审计指南:如何确保开源代码无后门

OpenRecall安全审计指南:如何确保开源代码无后门 【免费下载链接】openrecall OpenRecall is a fully open-source, privacy-first alternative to proprietary solutions like Microsofts Windows Recall. With OpenRecall, you can easily access your digital hi…...

WaveTools鸣潮工具箱:5分钟快速上手画质优化与账号管理终极指南

WaveTools鸣潮工具箱:5分钟快速上手画质优化与账号管理终极指南 【免费下载链接】WaveTools 🧰鸣潮工具箱 项目地址: https://gitcode.com/gh_mirrors/wa/WaveTools WaveTools鸣潮工具箱是一款专为《鸣潮》PC版玩家设计的强大辅助工具&#xff0c…...

5个步骤彻底解决GTA5在线模式崩溃问题:YimMenu防崩溃菜单完全指南

5个步骤彻底解决GTA5在线模式崩溃问题:YimMenu防崩溃菜单完全指南 【免费下载链接】YimMenu YimMenu, a GTA V menu protecting against a wide ranges of the public crashes and improving the overall experience. 项目地址: https://gitcode.com/GitHub_Trend…...

终极指南:如何用JPEGView实现极速图像查看与轻量编辑

终极指南:如何用JPEGView实现极速图像查看与轻量编辑 【免费下载链接】jpegview Fork of JPEGView by David Kleiner - fast and highly configurable viewer/editor for JPEG, BMP, PNG, WEBP, TGA, GIF and TIFF images with a minimal GUI. Basic on-the-fly ima…...

极域电子教室破解全攻略:如何3步解除全屏控制恢复操作自由

极域电子教室破解全攻略:如何3步解除全屏控制恢复操作自由 【免费下载链接】JiYuTrainer 极域电子教室防控制软件, StudenMain.exe 破解 项目地址: https://gitcode.com/gh_mirrors/ji/JiYuTrainer 还在为课堂上被老师全屏控制电脑而烦恼吗?当极域…...

突破GitHub访问瓶颈:Fast-GitHub工具如何实现极速访问体验

突破GitHub访问瓶颈:Fast-GitHub工具如何实现极速访问体验 【免费下载链接】Fast-GitHub 国内Github下载很慢,用上了这个插件后,下载速度嗖嗖嗖的~! 项目地址: https://gitcode.com/gh_mirrors/fa/Fast-GitHub 你是否经常遇…...

ComfyUI ControlNet Aux预处理器:三步轻松搞定AI图像精准控制 [特殊字符]

ComfyUI ControlNet Aux预处理器:三步轻松搞定AI图像精准控制 🎨 【免费下载链接】comfyui_controlnet_aux ComfyUIs ControlNet Auxiliary Preprocessors 项目地址: https://gitcode.com/gh_mirrors/co/comfyui_controlnet_aux 想要让AI生成的图…...

SDMatte Web界面交互优化点:框选反馈延迟降低、结果预览缩放、批量上传支持

SDMatte Web界面交互优化点:框选反馈延迟降低、结果预览缩放、批量上传支持 1. 产品概述 SDMatte 是一款面向高质量图像抠图场景的 AI 模型,特别适合处理以下专业需求: 主体分离:从复杂背景中精确提取目标物体透明物体提取&…...

旧iPhone复活指南:用Legacy-iOS-Kit让老设备重获新生

旧iPhone复活指南:用Legacy-iOS-Kit让老设备重获新生 【免费下载链接】Legacy-iOS-Kit An all-in-one tool to restore/downgrade, save SHSH blobs, jailbreak legacy iOS devices, and more 项目地址: https://gitcode.com/gh_mirrors/le/Legacy-iOS-Kit 你…...

从网盘分享困境到秒传革命:一个普通用户的真实体验与完整指南

从网盘分享困境到秒传革命:一个普通用户的真实体验与完整指南 【免费下载链接】rapid-upload-userscript-doc 秒传链接提取脚本 - 文档&教程 项目地址: https://gitcode.com/gh_mirrors/ra/rapid-upload-userscript-doc 你是否曾经历过这样的场景&#x…...

BiRefNet模型TensorRT终极加速指南:5步实现3倍推理速度提升

BiRefNet模型TensorRT终极加速指南:5步实现3倍推理速度提升 【免费下载链接】BiRefNet [CAAI AIR24] Bilateral Reference for High-Resolution Dichotomous Image Segmentation 项目地址: https://gitcode.com/gh_mirrors/bi/BiRefNet BiRefNet作为CAAI AIR…...

跨平台集成方案:微信小程序调用星图Qwen3-VL API实战

跨平台集成方案:微信小程序调用星图Qwen3-VL API实战 1. 引言 想象一下,你的微信小程序能够看懂用户上传的图片,还能智能回答关于图片内容的问题。比如用户拍一张商品照片,小程序就能自动识别商品信息并提供详细介绍&#xff1b…...

BiRefNet终极指南:如何快速部署高性能图像分割模型

BiRefNet终极指南:如何快速部署高性能图像分割模型 【免费下载链接】BiRefNet [CAAI AIR24] Bilateral Reference for High-Resolution Dichotomous Image Segmentation 项目地址: https://gitcode.com/gh_mirrors/bi/BiRefNet BiRefNet是一款基于CAAI AIR24…...

索托拉西布治疗KRAS G12C突变NSCLC,ORR达37.1%,中位DOR 11.1个月

在非小细胞肺癌(NSCLC)的治疗领域,KRAS G12C突变曾是一块难以攻克的“坚冰”。传统治疗方案对于携带这一突变的患者效果有限,患者往往面临着疾病快速进展和生存期短的困境。然而,索托拉西布的出现为这部分患者带来了新…...

iOS开发中.p12证书密码丢失的应急处理与安全导出指南

1. 当.p12证书密码丢失时,开发者该怎么办? 遇到.p12证书密码丢失的情况,很多iOS开发者会感到手足无措。这种情况在实际开发中并不少见,特别是当项目交接或长时间未使用证书时。我曾经接手过一个老项目,就遇到过前任开发…...

收藏!后端转大模型开发1年,从CRUD麻木到眼里有光,小白也能参考的转行实录

做后端开发整整五年,说句实在话,日常工作几乎离不开CRUD的循环——增删改查反复敲,偶尔优化下接口响应速度、排查线上突发的bug,日子过得像精准运转的发条钟,安稳是真安稳,但越往后走,心里的恐慌…...

阿那格雷治疗高风险真性红细胞增多症相关血小板增多,降低血栓事件风险

真性红细胞增多症(PV)作为一种慢性骨髓增殖性肿瘤,其显著特征为红细胞数量异常增多,同时常伴随血小板计数升高。血小板增多不仅增加了血液黏稠度,更显著提升了血栓形成的风险,而血栓事件正是PV患者死亡的主…...

从零开始:Qwen2.5-3B大模型LoRA微调与ollama本地部署实战

1. 环境准备与工具安装 想要玩转Qwen2.5-3B大模型的微调和部署,首先得把工具和环境准备好。我建议使用Linux系统(Ubuntu 20.04)或者MacOS,Windows用户可以考虑WSL2。以下是需要安装的核心工具: Python 3.9&#xff1…...

Dart异步编程中runZonedGuarded的异常捕获实战指南

1. 为什么你需要关注Dart异步异常捕获? 在移动应用和后台服务开发中,异步操作无处不在。想象你正在开发一个Flutter应用,当用户点击按钮触发网络请求时,如果服务器突然返回错误,而你的代码没有妥善处理这个异常&#x…...

CHORD-X开发入门:C语言基础与系统底层接口调用示例

CHORD-X开发入门:C语言基础与系统底层接口调用示例 如果你对CHORD-X系统的视觉处理能力感兴趣,想自己动手写点程序来调用它,但又觉得那些复杂的框架和高级语言有点绕,那这篇文章就是为你准备的。咱们今天不聊Python,也…...

手把手教你用Ozone调试FreeRTOS项目(含J-Link配置避坑指南)

手把手教你用Ozone高效调试FreeRTOS项目(附J-Link实战避坑指南) 在嵌入式开发中,调试FreeRTOS系统往往面临诸多挑战——线程状态难以追踪、任务堆栈分析复杂、实时性问题定位困难。SEGGER Ozone作为专为J-Link设计的跨平台调试器&#xff0c…...

Qwen3-Embedding-4B入门指南:向量归一化对余弦相似度计算的影响实验对比

Qwen3-Embedding-4B入门指南:向量归一化对余弦相似度计算的影响实验对比 1. 引言:从关键词匹配到语义理解 你有没有遇到过这样的烦恼?在文档里搜索“苹果”,结果既找到了水果,也找到了手机,甚至还有一堆无…...

我不是在用 AI 助手,我在把自己的能力沉淀成组织资产暗

1. 什么是 Apache SeaTunnel? Apache SeaTunnel 是一个非常易于使用、高性能、支持实时流式和离线批处理的海量数据集成平台。它的目标是解决常见的数据集成问题,如数据源多样性、同步场景复杂性以及资源消耗高的问题。 核心特性 丰富的数据源支持&#…...

5分钟搞定抖音无水印下载:douyin-downloader终极指南

5分钟搞定抖音无水印下载:douyin-downloader终极指南 【免费下载链接】douyin-downloader A practical Douyin downloader for both single-item and profile batch downloads, with progress display, retries, SQLite deduplication, and browser fallback suppor…...