news 2026/7/6 4:03:20

LangChain FewShotPromptTemplate少样本应用实战

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
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)

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/6 4:03:04

硬件版【Cursor】?aily blockly IDE尝鲜封神,实战硬伤尽显

步骤 1:安装启动下载好安装包,一路 “下一步”,几分钟就装好了。打开 IDE 的瞬间,我直接被清爽的界面戳中了:左边是全平台开发板列表,Arduino、ESP32、STM32、树莓派 Pico… 主流板子基本全覆盖。中间是图形…

作者头像 李华
网站建设 2026/7/6 3:53:43

商用轨道插座怎么选更划算 各品牌性价比盘点帮你避坑少花冤枉钱

开过咖啡店、装过联合办公、做过商业展厅的朋友都懂,配电布局绝对是装修前期最容易踩的坑:插座布少了,后期加设备要拖插排乱不说,还容易过载跳闸;布多了,闲置的插座丑还浪费钱,换个业态还要砸墙…

作者头像 李华
网站建设 2026/7/6 3:49:20

Windows Mobile下访问Sqlite的Native C++封装

qlite几乎成立移动设备开发领域数据存储方面的事实标准。Sqlite已经广泛被使用到Andriod,iPhone,WebOS以及Symbian等平台了,本文讲述在Windows Mobile平台下如何使用Native C访问Sqlite,同时讲述一个封装类的实现和使用。 Sqlite源…

作者头像 李华
网站建设 2026/7/6 3:49:01

Unity URP卡通渲染着色器:从原理到实践的完整指南

Unity URP卡通渲染着色器:从原理到实践的完整指南 【免费下载链接】UnityURPToonLitShaderExample A very simple toon lit shader example, for you to learn writing custom lit shader in Unity URP 项目地址: https://gitcode.com/gh_mirrors/un/UnityURPToon…

作者头像 李华