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

MeteorSeed繁

这个代码的核心功能是基于输入词的长度动态选择反义词示例并调用大模型生成反义词体现了 “动态少样本提示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()否则会报错。磁辟式揪

相关文章:

MeteorSeed繁

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

Windows 10/11 免费获取 macOS 风格鼠标指针:完整配置指南

Windows 10/11 免费获取 macOS 风格鼠标指针:完整配置指南 【免费下载链接】macOS-cursors-for-Windows Tested in Windows 10 & 11, 4K (125%, 150%, 200%). With 2 versions, 2 types and 3 different sizes! 项目地址: https://gitcode.com/gh_mirrors/ma/…...

基于微信云开发与ColorUI打造个性化简历小程序

1. 为什么选择微信云开发ColorUI做简历小程序 最近帮朋友做了一个简历小程序,从申请账号到上线只用了3天时间。整个过程完全基于微信云开发,配合ColorUI组件库,连服务器都不用租,特别适合个人开发者快速搭建作品集。相比传统简历P…...

聊一聊 C# 中的闭包陷阱:foreach 循环的坑你还记得吗?敖

. GIF文件结构 相比于 WAV 文件的简单粗暴,GIF 的结构要精密得多,因为它天生是为了网络传输而设计的(包含了压缩机制)。 当我们用二进制视角观察 GIF 时,它是由一个个 数据块(Block) 组成的&…...

需求管理中的用户故事与用例结合方法

需求管理中的用户故事与用例结合方法 在敏捷开发中,需求管理是确保项目成功的关键环节。用户故事和用例是两种常见的需求表达方式,各有优势:用户故事简洁灵活,侧重用户价值;用例则结构化清晰,适合复杂场景…...

ESP8266轻量级Homie物联网框架封装库

1. 项目概述 simple-homie-iot-rc433 是一个面向 ESP8266 平台(亦可适配 ESP32)的轻量级 Homie 物联网框架封装库,其核心定位并非从零实现 Homie 协议栈,而是对 homie-iot/esp 官方库进行工程化抽象与使用模式简化。它不引入新…...

STM32WLE5CCU6实战:从官方例程到第三方模块的PingPong通信移植详解

1. STM32WLE5CCU6硬件平台与PingPong通信基础 STM32WLE5CCU6是ST推出的Sub-1GHz无线微控制器,集成了Cortex-M4内核和LoRa射频模块。与常见的NUCLEO-WL55JC开发板不同,实际项目中我们更常遇到采用QFN48封装的独立芯片方案,比如搭配亿佰特E77这…...

Three.js 3D热力图实现全解析(从原理到实战)

1. 3D热力图的核心原理与实现思路 第一次接触3D热力图时,我也被那些酷炫的立体数据可视化效果惊艳到了。这种技术本质上是通过颜色和高度两个维度来呈现数据密度分布,比传统的2D热力图多了Z轴信息。在Three.js中实现这个效果,关键要理解三个核…...

Unity TMP(TextMesh Pro)中文显示全攻略:从字体生成到编码优化

1. 为什么TextMesh Pro中文显示会出问题 第一次用TextMesh Pro做中文项目时,我也被满屏的"口口口"搞懵了。这其实是字体资源缺失的典型表现——就像你电脑里没装中文字体时打开文档全是乱码。TextMesh Pro(简称TMP)和传统Unity Te…...

OBS多路推流插件窗口消失?三步快速找回+终极预防指南

OBS多路推流插件窗口消失?三步快速找回终极预防指南 【免费下载链接】obs-multi-rtmp OBS複数サイト同時配信プラグイン 项目地址: https://gitcode.com/gh_mirrors/ob/obs-multi-rtmp 你是否正在使用OBS进行多平台直播,却发现obs-multi-rtmp插件…...

NXP MPXHZ6250A压力传感器嵌入式驱动库解析

1. OSS-EC_NXP_MPXHZ6250A_00000057 压力传感器驱动库深度解析NXP MPXHZ6250A 是一款高精度、集成信号调理电路的硅压阻式绝对压力传感器,广泛应用于汽车进气歧管压力(MAP)、工业过程控制、医疗呼吸设备及环境监测等对稳定性与温漂抑制要求严…...

AHT20温湿度传感器驱动库深度解析与跨平台移植

1. 项目概述DFRobot_AHT20 是一款面向嵌入式开发者的标准化传感器驱动库,专为 DFRobot 推出的 AHT20 温湿度传感器模块(SKU: SEN0527 / SEN0528)设计。该库以 Arduino 平台为基准实现,但其底层 IC 协议交互逻辑、状态机设计与数据…...

使用Alpine配置WSL ssh门户狙

1. 哑铃图是什么? 哑铃图(Dumbbell Plot),有时也称为DNA图或杠铃图,是一种用于比较两个相关数据点的可视化图表。 它源于人们对更有效数据比较方式的持续探索。 在传统的时间序列比较中,我们通常使用两条折…...

收藏!2026程序员必看:AI浪潮下如何逆袭高薪新机会?大模型时代生存指南

2026年AI岗位需求激增,大厂春招AI相关岗位占比创新高,薪资可达13.7万。初级程序员面临被AI取代的风险,但AI行业复合型人才稀缺,程序员角色从编码者升级为AI指挥者。文章提供针对不同经验程序员的AI技能学习路线图,建议…...

ArcGIS进阶:利用Python脚本在字段计算器中实现复杂条件赋值

1. 为什么需要Python脚本进行复杂字段赋值 在ArcGIS中处理属性表数据时,新手最常犯的错误就是手动逐条编辑。我曾经接手过一个项目,同事花了整整三天时间手动修改5000多条记录,结果还出现了大量错误。实际上,字段计算器(Field Ca…...

从AES-CMAC到数字签名:揭秘消息认证与身份验证的技术演进

1. 从AES-CMAC到数字签名:技术演进全景图 记得我第一次接触消息认证码(MAC)是在开发智能门锁项目时。当时需要确保设备接收的指令不被篡改,但又不希望引入太复杂的加密机制。AES-CMAC就像个轻量级的"数据指纹生成器"&am…...

Vivado IP核管理指南:xci vs xcix,哪种方式更适合你的项目?

Vivado IP核管理实战:xci与xcix的深度选择策略 在FPGA开发领域,Vivado作为主流设计工具,其IP核管理方式直接影响着工程的可维护性和团队协作效率。xci和xcix两种IP核保存格式看似只是文件扩展名的差异,实则代表着完全不同的管理哲…...

【GUI-Agent】阶跃星辰 GUI-MCP 解读---()---HITL(Human In The Loop)迂

插件化架构 v3 版本最大的变化是引入了模块化插件系统。此前版本中集成在核心包里的原生功能,现在被拆分成独立的插件。 每个插件都是一个独立的 Composer 包,包含 Swift 和 Kotlin 代码、权限清单以及原生依赖。开发者只需安装实际用到的插件&#xff0…...

RLHF框架选型指南:Trlx/DeepSpeedChat/ColossalAI-Chat在A100和3090显卡下的显存占用实测

RLHF框架选型实战:Trlx/DeepSpeedChat/ColossalAI-Chat在A100与3090显卡下的性能对决 当团队面临有限的计算资源时,如何选择最适合的RLHF框架成为关键决策。本文将基于实际硬件环境,深度剖析三大主流框架在A100 40GB与RTX 3090 24GB显卡下的显…...

BLE按键服务设计:轻量级只读GATT特征值实现

1. 项目概述ble-button是一个面向嵌入式 BLE(Bluetooth Low Energy)应用的轻量级服务模板,其核心目标是为物理按键、拨动开关、触摸感应等单比特输入设备提供标准化、可复用的蓝牙 GATT(Generic Attribute Profile)服务…...

i18n 2026.04.11

...

BouncyCastle SM2/SM3/SM4

BouncyCastle SM2/SM3/SM4为啥这些人命名的不是SM1, SM3 非对称&#xff1b;SM2 SM4 对称<!-- BouncyCastle 国密核心依赖 --> <dependency><groupId>org.bouncycastle</groupId><artifactId>bcprov-jdk18on</artifactId><versi…...

万字拆解 LLM 运行机制:Token、上下文与采样参数暮

springboot自动配置 自动配置了大量组件&#xff0c;配置信息可以在application.properties文件中修改。 当添加了特定的Starter POM后&#xff0c;springboot会根据类路径上的jar包来自动配置bean&#xff08;比如&#xff1a;springboot发现类路径上的MyBatis相关类&#xff…...

AI开发-python-langchain框架(--自定义Tool )挪

起因是我想在搞一些操作windows进程的事情时&#xff0c;老是需要右键以管理员身份运行&#xff0c;感觉很麻烦。就研究了一下怎么提权&#xff0c;顺手瞄了一眼Windows下用户态权限分配&#xff0c;然后也是感谢《深入解析Windows操作系统》这本书给我偷令牌的灵感吧&#xff…...

DABShield数字广播扩展板嵌入式驱动开发指南

1. DABShield 数字广播扩展板技术解析与嵌入式驱动开发指南DABShield 是一款面向嵌入式平台的高集成度数字广播接收扩展板&#xff0c;专为 Arduino、STM32、ESP32 等主流微控制器设计&#xff0c;支持 DAB&#xff08;Digital Audio Broadcasting&#xff09;、DAB&#xff08…...

LSM6DS0超低功耗六轴IMU硬件原理与嵌入式驱动实战

1. LSM6DS0&#xff1a;面向嵌入式实时系统的六轴惯性测量单元深度解析 LSM6DS0 是意法半导体&#xff08;STMicroelectronics&#xff09;于2014年推出的超低功耗、高精度六轴惯性测量单元&#xff08;IMU&#xff09;&#xff0c;集成三轴加速度计与三轴陀螺仪于单一封装内。…...

Windows右键菜单管理神器:ContextMenuManager让你的操作效率翻倍

Windows右键菜单管理神器&#xff1a;ContextMenuManager让你的操作效率翻倍 【免费下载链接】ContextMenuManager &#x1f5b1;️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 你是否厌倦了Windows右键菜单被各种…...

AVRDx平台ISR型PWM库:高确定性多路软件PWM方案

1. Dx_Slow_PWM 库深度解析&#xff1a;面向 AVRDx 平台的高可靠性 ISR 基础 PWM 解决方案1.1 工程背景与核心痛点在嵌入式系统开发中&#xff0c;PWM&#xff08;脉宽调制&#xff09;是驱动电机、LED 调光、音频生成、电源控制等场景的基础能力。AVR 系列微控制器传统上依赖专…...

matlab代码:储能参与电能量—辅助服务调频市场联合出清代码。 本代码是电力市场出清的一个重要方向

matlab代码&#xff1a;储能参与电能量—辅助服务调频市场联合出清代码。本代码是电力市场出清的一个重要方向&#xff0c;由于储能的诸多特性&#xff0c;使其适合于辅助服务市场的调频市场&#xff0c;储能的参与也能获利。 首先利用SCUC模型确定机组出力计划和储能充放电计划…...

别再乱选了!SMT贴片新手必看:卷带、托盘、管式、散装四种元器件包装的保姆级选择指南

SMT贴片元器件包装选择实战指南&#xff1a;从卷带到散装的深度解析 刚踏入SMT产线的新手工程师&#xff0c;面对BOM表上密密麻麻的包装代码&#xff08;Tape on Reel、Tray、Tube、Bulk&#xff09;时&#xff0c;往往会陷入选择困境。选错包装类型可能导致生产效率腰斩、物料…...