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

LangChain FewShotPromptTemplate少样本应用实战

里有个容易踩的坑:创建 FewShotPromptTemplate 的时候,examples 和 example_selector 这两个参数是互斥的,必须填其中一个,不然代码直接报错。绝大多数情况下,我们直接用 examples 参数把准备好的示例数据传进去就行。

组件

说明

必填性

示例

example_selector

动态选择示例的选择器

二选一

SemanticSimilarityExampleSelector

examples

示例数据列表,每个是字典

二选一

[{"input": "Hi", "output": "你好"}]

example_prompt

单个示例的格式化模板

必填

PromptTemplate.from_template(...)

prefix

示例前的引导文本

可选,默认""

"请把英文翻译成中文:"

suffix

示例后的用户输入提示

必填

"Input: {new_input}\nOutput:"

input_variables

用户输入变量列表

必填

["new_input"]

example_separator

示例之间的分隔符

默认\n\n

"\n"

先来看最基础的用法,针对文本补全模型,我们可以这样写:

from langchain_core.prompts import PromptTemplate, FewShotPromptTemplate # 准备示例数据 examples = [ {"input": "Hello", "output": "你好"}, {"input": "Thank you", "output": "谢谢"}, {"input": "Good morning", "output": "早上好"}, ] # 定义示例的格式化模板 example_prompt = PromptTemplate.from_template( "{input} -> {output}" ) # 创建 FewShotPromptTemplate few_shot_prompt = FewShotPromptTemplate( examples=examples, example_prompt=example_prompt, prefix="请把以下英文翻译成中文:", suffix="{new_input} -> ", input_variables=["new_input"], example_separator="\n", ) prompt_value = few_shot_prompt.invoke( { "new_input": "Good bye" } ) print(prompt_value.to_string()) res = llm.invoke(prompt_value, config=config) print(res.content)

如果用的是聊天模型,就要用专门的 FewShotChatMessagePromptTemplate,用法也差不多:

from langchain_core.prompts import ChatPromptTemplate, FewShotChatMessagePromptTemplate # 准备示例数据 examples = [ {"input": "Hello", "output": "你好"}, {"input": "Thank you", "output": "谢谢"}, {"input": "Good morning", "output": "早上好"}, ] # 定义示例的格式化模板 example_prompt = ChatPromptTemplate.from_messages( [ {"role": "user", "content": "{input}"}, {"role": "ai", "content": "{output}"} ] ) # 创建示例提示词模版 few_shot_prompt = FewShotChatMessagePromptTemplate( examples=examples, example_prompt=example_prompt ) # 构建最终的聊天提示模板 chat_prompt = ChatPromptTemplate.from_messages( [ {"role": "system", "content": "请把以下英文翻译成中文:"}, few_shot_prompt, {"role": "user", "content": "{new_input}"} ] ) # 输入内容 prompt_value = chat_prompt.invoke( { "new_input": "Where are you from?", } ) print(prompt_value.to_string()) res = llm.invoke(prompt_value, config=config) print(res.content)

http://www.cnnetsun.cn/news/3175505.html

相关文章:

  • 硬件版【Cursor】?aily blockly IDE尝鲜封神,实战硬伤尽显
  • 【Bug已解决】Claude Desktop 报错 Virtual Machine Platform not available 解决方案
  • 基于scRNA解析HNSCC肿瘤免疫微环境中Tfh、Th17细胞浸润的预后价值
  • 商用轨道插座怎么选更划算 各品牌性价比盘点帮你避坑少花冤枉钱
  • Windows Mobile下访问Sqlite的Native C++封装
  • Unity URP卡通渲染着色器:从原理到实践的完整指南
  • 3步掌握AMD Ryzen SDT调试工具:专业级CPU性能调优完整指南
  • NHibernate Issues之1904/1905:相同属性的Domain与Join查询/子查询
  • 智能办公本X2:端侧AI驱动的手写语音协同工作流
  • 大语言模型解码策略与低资源部署技术详解
  • NHibernate实例分享:Northwind Mapping
  • 2026年全铜卫浴五金洁具厂商口碑情况汇总
  • Vben精讲:06-Vben环境变量配置
  • MoeKoe Music终极指南:如何用开源免费客户端享受VIP音乐体验
  • Python自动化测试·Selenium操控元素的方法
  • 从Qwen-AgentWorld看大模型智能体如何操作真实系统:架构、挑战与工程实践
  • Cline 配置 Claude Sonnet 5 实战指南:思考深度调优与切换 Fable 5 的时机
  • 恶劣天气数据集 极端天气数据集 雨天道路数据集 雾天道路数据集 雪天马路恶劣环境图像目标检测数据集-道路障碍物识别数据集-数据集第10119期
  • 三千米浮空飞艇视频接入,广域立体视频孪生全域侦监技术解读 野外复杂地形动态重建 · 演训场景视频孪生目标三维重构完整体系
  • 毕业生必备7款AI写作辅助网站,一站式搞定选题初稿与降AI率
  • GHelper:华硕笔记本开源高效控制工具的专业替代方案
  • 成都茶台定制推荐
  • YOLOv10模型改进-Neck改进-第74篇:YOLOv10改进策略【Neck】| FPN-DCN可变形卷积
  • 连锁超市收银系统选什么?千店实测与商拓深度测评
  • 【湍流】基于matlab对涡粘性和雷诺应力模型FVM实现湍流通道流【含Matlab源码 15687期】含报告
  • 如何选择合适的面试机构?
  • 一文吃透 Transformers 模型加载:from_pretrained 参数大全与推理全流程解析
  • 磁吸易装 + 稳定传输,打造高效机房 U 位资产管理方案
  • 像素地理锚定标准化模型 Pixel2Geo引擎构建视频孪生空间基准体系 虚实双向指令交互通道 视频孪生联动前端感知设备智能处置技术详解
  • PPO强化学习