【LangChain】Prompts之示例选择器

这篇具有很好参考价值的文章主要介绍了【LangChain】Prompts之示例选择器。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

LangChain学习文档

  • 【LangChain】向量存储(Vector stores)
  • 【LangChain】向量存储之FAISS
  • 【LangChain】Prompts之Prompt templates
  • 【LangChain】Prompts之自定义提示模板
  • 【LangChain】Prompts之示例选择器

概要

如果您有大量示例,您可能需要选择要包含在提示中的哪个示例。示例选择器是负责执行此操作的类。

基本接口定义如下:

class BaseExampleSelector(ABC):
    """用于选择要包含在提示中的示例的界面。"""

    @abstractmethod
    def select_examples(self, input_variables: Dict[str, str]) -> List[dict]:
        """根据输入选择要使用的示例。"""

它需要公开的唯一方法是 select_examples 方法。这需要接受输入变量,然后返回示例列表。如何选择这些示例取决于每个具体的实现。

自定义示例选择器(Custom example selector)

在本教程中,我们将创建一个自定义示例选择器,用于从给定的示例列表中选择每个备用示例。

ExampleSelector 必须实现两个方法:

  1. add_example 方法接受一个示例并将其添加到 ExampleSelector

  2. select_examples 方法,它接受输入变量并返回部分示例列表或全部列表。

让我们实现一个自定义的ExampleSelector,它只随机选择两个示例。

在这里查看 LangChain 支持的当前示例选择器实现集。

实现自定义示例选择器(Implement custom example selector)

from langchain.prompts.example_selector.base import BaseExampleSelector
from typing import Dict, List
import numpy as np


class CustomExampleSelector(BaseExampleSelector):
    
    def __init__(self, examples: List[Dict[str, str]]):
        self.examples = examples
    
    def add_example(self, example: Dict[str, str]) -> None:
        """添加新示例来存储密钥。"""
        self.examples.append(example)

    def select_examples(self, input_variables: Dict[str, str]) -> List[dict]:
        """根据输入选择要使用的示例。随机选择2个"""
        return np.random.choice(self.examples, size=2, replace=False)

参考api:BaseExampleSelector from langchain.prompts.example_selector.base

使用自定义示例选择器(Use custom example selector)


examples = [
    {"foo": "1"},
    {"foo": "2"},
    {"foo": "3"}
]

# 初始化示例选择器。
example_selector = CustomExampleSelector(examples)


# 选择示例
example_selector.select_examples({"foo": "foo"})
# -> array([{'foo': '2'}, {'foo': '3'}], dtype=object)

# 将新示例添加到示例集中
example_selector.add_example({"foo": "4"})
example_selector.examples
# -> [{'foo': '1'}, {'foo': '2'}, {'foo': '3'}, {'foo': '4'}]

# 选择示例
example_selector.select_examples({"foo": "foo"})
# -> array([{'foo': '1'}, {'foo': '4'}], dtype=object)

总结

本文讲解的是示例选择器。就当我们有多个示例时,可以帮助我们选择哪个示例!

套路,就两个主要步骤:

  1. add_example方法,它接受一个示例并将其添加到该ExampleSelector中。
  2. select_examples方法,它接受输入变量并返回部分示例列表或全部列表。

参考地址:

https://python.langchain.com/docs/modules/model_io/prompts/example_selectors/custom_example_selector文章来源地址https://www.toymoban.com/news/detail-644399.html

到了这里,关于【LangChain】Prompts之示例选择器的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • [LangChain核心模块]模型的输入和输出->Prompts

    ⭐作者介绍:大二本科网络工程专业在读,持续学习Java,努力输出优质文章 ⭐作者主页:@逐梦苍穹 ⭐所属专栏:人工智能。 任何语言模型应用的核心元素是 模型的输入和输出 。LangChain提供了与任何语言模型进行接口交互的基本组件。 ● 提示 prompts: 将模型输入模板化、动

    2024年02月16日
    浏览(28)
  • LangChain手记 Models,Prompts and Parsers

    整理并翻译自DeepLearning.AI×LangChain的官方课程:Models,Prompts and Parsers(源码可见) 模型:大语言模型 提示词:构建传递给模型的输入的方式 解析器:获取模型输入,转换为更为结构化的形式以在下游任务中使用 为什么使用提示词模板 提示词会非常长且具体 在可以的时候能直

    2024年02月13日
    浏览(33)
  • langchain系列:Model I/O模块之-Prompts

      langchain是基于大语言模型而开发的一个框架,既然是基于大语言模型,自然最重要的就是先要介绍Model I/O模块。   Model I/O模块其实就是提供了语言模型的基础构建接口,那既然是提供构建的接口,我们首先要知道,构建一个模型到底需要哪一些部分。官方给出了一个图例

    2024年02月16日
    浏览(29)
  • 自然语言处理从入门到应用——LangChain:提示(Prompts)-[基础知识]

    分类目录:《大模型从入门到应用》总目录 LangChain系列文章: 基础知识 快速入门 安装与环境配置 链(Chains)、代理(Agent:)和记忆(Memory) 快速开发聊天模型 模型(Models) 基础知识 大型语言模型(LLMs) 基础知识 LLM的异步API、自定义LLM包装器、虚假LLM和人类输入LLM(

    2024年02月15日
    浏览(38)
  • 自然语言处理从入门到应用——LangChain:提示(Prompts)-[提示模板:基础知识]

    分类目录:《大模型从入门到应用》总目录 LangChain系列文章: 基础知识 快速入门 安装与环境配置 链(Chains)、代理(Agent:)和记忆(Memory) 快速开发聊天模型 模型(Models) 基础知识 大型语言模型(LLMs) 基础知识 LLM的异步API、自定义LLM包装器、虚假LLM和人类输入LLM(

    2024年02月15日
    浏览(56)
  • 【Java-LangChain:使用 ChatGPT API 搭建系统-6】处理输入-链式 Prompt Chaining Prompts

    在本章中,我们将学习如何通过将复杂任务拆分为一系列简单的子任务来链接多个 Prompt。 您可能会想,为什么要将任务拆分为多个 Prompt,而不是像我们在上一个视频中学习的那样,使用思维链推理一次性完成呢?我们已经证明了语言模型非常擅长遵循复杂的指令,特别是像

    2024年02月07日
    浏览(39)
  • 自然语言处理从入门到应用——LangChain:提示(Prompts)-[提示模板:连接到特征存储]

    分类目录:《大模型从入门到应用》总目录 LangChain系列文章: 基础知识 快速入门 安装与环境配置 链(Chains)、代理(Agent:)和记忆(Memory) 快速开发聊天模型 模型(Models) 基础知识 大型语言模型(LLMs) 基础知识 LLM的异步API、自定义LLM包装器、虚假LLM和人类输入LLM(

    2024年02月15日
    浏览(27)
  • LangChain大型语言模型(LLM)应用开发(一):Models, Prompts and Output Parsers

    LangChain是一个基于大语言模型(如ChatGPT)用于构建端到端语言模型应用的 Python 框架。它提供了一套工具、组件和接口,可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。LangChain 可以轻松管理与语言模型的交互,将多个组件链接在一起,以便在不同的

    2024年02月16日
    浏览(35)
  • 自然语言处理从入门到应用——LangChain:提示(Prompts)-[提示模板:部分填充的提示模板和提示合成]

    分类目录:《大模型从入门到应用》总目录 LangChain系列文章: 基础知识 快速入门 安装与环境配置 链(Chains)、代理(Agent:)和记忆(Memory) 快速开发聊天模型 模型(Models) 基础知识 大型语言模型(LLMs) 基础知识 LLM的异步API、自定义LLM包装器、虚假LLM和人类输入LLM(

    2024年02月14日
    浏览(32)
  • AI大模型预先学习笔记二:prompt提问大模型、langchain使用大模型框架、fine tune微调大模型

    1)环境准备 ①安装OpenAI库 附加 安装来源 ②生成API key ③设定本地的环境变量 ④代码的准备工作 ⑤在代码运用prompt(简单提问和返回) 2)交互代码的参数备注 temperature:随机性(从0到2可以调节,回答天马行空变化大可以选2) model:跟什么类型的model互动 role:(定义交互

    2024年01月17日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包