LangChain入门:9.使用FewShotPromptTemplate实现智能提示工程

在构建智能提示工程时,LangChain 提供了强大的 FewShotPromptTemplate 模型,它可以帮助我们更好地利用示例来指导大模型生成更加优质的提示。

在这篇博文中,我们将使用 LangChain 的 FewShotPromptTemplate 模型来设计一个智能提示工程,以及如何有效地选择示例样本,从而实现高效且准确的提示生成。

1. 创建示例样本

我们首先创建了一些示例样本,每个样本包含了鲜花的类型、场合以及相应的广告文案。这些示例样本将作为我们的模型输入,用于指导大模型生成正确的响应。示例样本如下:

python 复制代码
samples = [
    {
    "flower_type":"玫瑰",
    "occasion":"浪漫",
    "ad_copy":"玫瑰,象征着浪漫,是你向心爱的人表达爱意的最佳选择"
    },
    {
        "flower_type":"康乃馨",
        "occasion":"母亲节",
        "ad_copy":"康乃馨,代表着孝心,是献给母亲最好的礼物"
    },
    {
        "flower_type":"百合",
        "occasion":"生日",
        "ad_copy":"百合,象征着纯洁和祝福,是送给朋友最好的礼物"
    },
    {
        "flower_type":"郁金香",
        "occasion":"情人节",
        "ad_copy":"郁金香,象征着爱情,是送给情人最好的礼物"
    }
]

2. 创建 FewShotPromptTemplate

我们使用 LangChain 提供的 PromptTemplate 创建了一个 FewShotPromptTemplate。该模板定义了鲜花的类型、场合和广告文案,并将这些变量作为模型的输入。示例代码如下:

python 复制代码
# 创建 FewShotPromptTemplate
from langchain.prompts.few_shot import FewShotPromptTemplate

# 创建 FewShotPromptTemplate 对象
prompt = FewShotPromptTemplate(
    examples=samples,
    example_prompt=prompt_sample ,
    suffix="鲜花类型:{flower_type}\n场合:{occasion}",
    input_variables=["flower_type", "occasion"]
)

3. 使用示例选择器

为了提高效率,我们使用 LangChain 的示例选择器来选择最合适的示例样本。示例选择器基于语义相似度,可以根据当前输入的变量选择最相似的示例样本。示例代码如下:

python 复制代码
# 使用示例选择器
from langchain.prompts.example_selector import SemanticSimilarityExampleSelector

# 初始化示例选择器
selector = SemanticSimilarityExampleSelector.from_examples(
    samples,
    OpenAIEmbeddings(
        openai_api_key='你自己的授权标识',
        base_url="https://api.chatanywhere.tech/v1",
    ),
    Chroma,
    k=1
)

4. 创建使用示例选择器的 FewShotTemplate 对象

最后,我们创建一个使用示例选择器的 FewShotTemplate 对象,并传递给大模型进行生成。该模型会根据当前输入的变量选择最合适的示例样本,并生成相应的提示。示例代码如下:

python 复制代码
# 创建使用示例选择器的 FewShotTemplate 对象
example_prompt = FewShotPromptTemplate(
    example_selector=selector,
    example_prompt=prompt_sample ,
    suffix="鲜花类型:{flower_type}\n场合:{occasion}",
    input_variables=["flower_type", "occasion"]
)

# 使用大模型生成提示
response = llm.invoke(
    example_prompt.format(flower_type="红玫瑰", occasion="爱情")
)

print(response)

效果

## 安装依赖包

bash 复制代码
pip install chromadb

通过以上步骤,我们可以轻松地构建一个智能提示工程,并使用 LangChain 的 FewShotPromptTemplate 模型生成高质量的提示。这将极大地提高我们的工作效率和生成质量,为我们的工作带来更多的价值和创造力。

相关推荐
G皮T1 分钟前
【OpenClaw】创建一个每日热点新闻 Skill
人工智能·ai·大模型·agent·skills·openclaw·龙虾
Agent产品评测局1 分钟前
医药行业合规自动化平台选型,核心要点详解:企业级智能体驱动的合规化演进与实测分析
运维·网络·人工智能·ai·chatgpt·自动化
net3m332 分钟前
可微分结构搜索, 可微分算子选择 —— 让程序“结构”也可学习 , 具体怎么实现结构的轮询穷举
人工智能·线性代数·矩阵
AI医影跨模态组学4 分钟前
如何将纵向MRI空间生境影像组学特征与肿瘤免疫微环境中B细胞浸润建立关联,并解释其与病理完全缓解(pCR)、新辅助治疗应答的机制联系
人工智能·深度学习·医学·医学影像
诸神缄默不语4 分钟前
从小白开始学习AI的学习路线
人工智能·学习
zzb15805 分钟前
Agent案例-智能文档问答助手
java·人工智能·笔记·python
萤火阳光6 分钟前
01|OpenClaw 概述与环境安装:从零认识 AI Agent 框架
人工智能
首席数智官6 分钟前
AI CRM 2.0时代:SaaS厂商的生死局
大数据·人工智能·物联网
茴香豆的茴16 分钟前
手撕 Transformer (1):Transformer 的结构拆解
人工智能·深度学习·transformer
Yao.Li7 分钟前
PVN3D 训练与评估代码流程详解
人工智能·3d