恒美微站 Logo 恒美微站
  • 首页
  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心
  • 联系我们

AI Agent白手起家30: 动态示例选择器之根据长度选择 Few Shot 示例

  • 首页
  • 资讯中心
  • /
  • AI Agent白手起家30: 动态示例选择器之根据长度选择 Few Shot 示例

相关资讯

树莓派SPI1/SPI2接口配置MCP2515 CAN总线模块全攻略 2026/8/5 1:42:37
Unity URP动态后处理实战:从Volume配置到脚本控制全解析 2026/8/5 1:42:37
Vue3开发工具箱:零配置、高性能的Web工具聚合平台 2026/8/5 1:42:37

最新资讯

频率依赖反馈:从基础概念到高阶电路设计的稳定性与性能优化
解锁无限AI编程体验:Cursor Free VIP让你告别试用限制的终极指南
DDrawCompat:Windows经典图形API的现代化兼容层
ARM Linux运行Unity游戏:Box64解决OpenGL 3+兼容性实战指南
在Windows上重新定义酷安体验:Coolapk-UWP桌面客户端深度解析
电容式触摸开关原理与设计实战:从电场感应到抗干扰布局

今日推荐

AI小程序创业陷阱大起底(92%新手踩坑的3个致命错误)
为什么92.7%的AI 3D生成项目卡在UV重拓扑?资深TD曝光内部验证过的5步自动化修复协议
三升四,比成绩下滑更可怕的,是孩子开始「认命」

本周热门

ncmdumpGUI:一键解锁网易云音乐ncm文件的终极解决方案
分布式配置中心选型实战:Nacos与Consul在创业场景下的对比
MoneyPrinterPlus实战指南:AI视频批量生成与自动化发布完整解决方案

本月精选

如何用DamaiHelper实现演唱会门票的智能自动化抢购:完整技术解决方案指南
第4篇:59 倍性能差距的索引瓶颈定位——一次教科书级的全表扫描调优
终极歌词批量下载神器:5分钟解决离线音乐库歌词同步难题

AI Agent白手起家30: 动态示例选择器之根据长度选择 Few Shot 示例

发布时间:2026/8/5 1:42:37
AI Agent白手起家30: 动态示例选择器之根据长度选择 Few Shot 示例 纲要静态示例与动态示例静态示例示例固定在模板中无法随任务或上下文长度调整动态示例根据任务需求和上下文窗口动态选择最合适的示例子集示例选择器核心概念LengthBasedExampleSelector基于长度动态选择示例控制最终提示词的总长度工作原理根据max_length和已占用的提示词长度自动截取示例列表关键组件examples示例列表输入-输出对example_prompt示例格式化模板FewShotPromptTemplate组合前缀、示例和后缀的完整提示词模板示例Python 脚本展示长短输入下示例数量的自适应变化引言在上一篇关于 Few Shot 提示词工程的文章中我们介绍了如何通过静态示例让模型学会自定义规则。然而在实际应用中大模型的上下文窗口是有限且宝贵的资源。如果示例过多或输入过长就可能超出窗口限制甚至引入与当前任务无关的噪声。LangChain 提供了示例选择器Example Selector来解决这一问题其中LengthBasedExampleSelector是最简单直接的一种它根据最终提示词的长度动态决定使用哪些示例以及使用多少示例确保提示词始终控制在合理长度内。静态示例 vs 动态示例在传统 Few Shot 中示例是“写死”在模板里的无论输入什么任务所有示例都会被完整地拼接到提示词中。这种方式存在两个问题浪费上下文窗口大量示例可能占用过多 token挤压实际任务的空间。引入无关信息示例组中包含与当前任务不相关的例子反而干扰模型输出。动态示例选择器则允许我们准备一个大而全的示例池在运行时根据输入长度和上下文窗口只挑选合适的示例子集注入提示词。特性静态示例动态示例示例调整不可变根据输入长度动态截取上下文利用可能浪费或溢出精确控制在窗口内实现复杂度低中使用示例选择器适用场景示例少且固定示例多、输入长度变化大根据长度动态选择示例的工作原理LengthBasedExampleSelector的核心逻辑是在格式化提示词时先计算前缀系统指令和后缀用户问题的长度然后用剩余的max_length空间从示例列表中从头开始依次添加示例直到下一个示例会导致总长度超出限制为止。这样较长的输入会自动压缩示例数量避免超出上下文窗口。其处理流程可用下图表示是否准备完整示例列表计算前缀与后缀长度剩余长度 max_length - 前缀长度 - 后缀长度从示例列表头部开始逐个添加添加后总长度 max_length?保留该示例跳过该示例及后续所有示例继续下一示例输出最终选择的示例子集由于示例是按顺序添加的因此将最重要、最通用的示例放在列表前面是一个最佳实践可以保证它们在大部分情况下都会被选中。示例代码以下代码基于 LangChain 实现了一个反义词示例的LengthBasedExampleSelector并演示了输入较短和较长时最终提示词中示例数量的动态变化。首先安装依赖pipinstalllangchain langchain-core完整代码fromlangchain_core.promptsimportPromptTemplate,FewShotPromptTemplatefromlangchain_core.example_selectorsimportLengthBasedExampleSelector# 1. 准备反义词示例池examples[{input:happy,output:sad},{input:高兴,output:悲伤},{input:sunny,output:gloomy},{input:up,output:down},{input:大,output:小},]# 2. 定义示例格式化模板example_promptPromptTemplate(input_variables[input,output],template原词: {input}\n反义词: {output})# 3. 创建长度选择器# max_length 控制整个提示词的最大字符数用于演示设得较小example_selectorLengthBasedExampleSelector(examplesexamples,example_promptexample_prompt,max_length100,# 限制最终提示词不超过100个字符)# 4. 构建动态 Few Shot 提示词模板dynamic_promptFewShotPromptTemplate(example_selectorexample_selector,example_promptexample_prompt,prefix给出每个输入词的反义词,suffix原词: {input}\n反义词:,input_variables[input],)# 5. 测试输入较短时可以容纳更多示例short_inputhotprint( 短输入hot)print(dynamic_prompt.format(inputshort_input))print()# 6. 测试输入非常长时示例会被自动压缩long_input非常*30# 构造一个很长的输入print( 长输入非常*30)print(dynamic_prompt.format(inputlong_input))运行后会观察到短输入时最终提示词中包含了多个示例如 happy、高兴、sunny 等而长输入时由于用户问题本身就占用了大量长度示例会被压缩到只剩一两个甚至完全没有确保总长度不超过max_length。使用建议与注意事项示例排序很重要选择器从前往后挑选示例因此将典型、通用的示例排在前面能保证在截断时优先保留高质量示例。合理设置max_length该值应略小于模型的实际上下文窗口长度以字符或 token 计为回答预留一定空间。若使用 token 分词器可以自定义get_text_length函数以 token 数计算长度。配合其他选择器当仅按长度选择不够智能时LangChain 还提供了SemanticSimilarityExampleSelector等基于语义相似度的选择器可以实现“选择与输入最相关的示例”后续文章将详细介绍。总结动态示例选择器是 Few Shot 提示工程走向实用化的关键一环。LengthBasedExampleSelector以其简单高效的机制保证了提示词长度始终处于可控范围内非常适合输入长度波动较大或示例池丰富的场景。结合良好的示例排序策略可以在不增加额外计算开销的前提下显著提升大模型应用的稳定性和响应质量。

关于恒美微站

恒美微站专注于为个体商户、工作室提供极简自助建站服务,让每个人都能轻松拥有专业网站。

快速链接

  • 关于我们
  • 建站服务
  • 主题模板
  • 案例展示
  • 资讯中心

服务项目

  • 可视化建站
  • 拖拽编辑
  • 主题定制
  • SEO 优化
  • 网站托管

联系方式

  • 📍 地址:北京市朝阳区建国路 88 号
  • 📞 电话:400-888-8888
  • ✉️ 邮箱:info@hmyw.cn
  • 🕐 时间:周一至周日 9:00-18:00

© 2024 恒美微站 hmyw.cn 版权所有 | 京 ICP 备 12345678 号