Langchain 的 Custom example selector

Langchain 的 Custom example selector

  • 0. ExampleSelector
  • 1. 实现自定义示例选择器​
  • 2. 使用自定义示例选择器​

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

0. ExampleSelector

ExampleSelector 必须实现两个方法:

  1. 一个 add_example 方法,它接受一个示例并将其添加到ExampleSelector中
  2. 一个 select_examples 方法,它接受输入变量(这意味着用户输入)并返回在少数样本提示中使用的示例列表。

1. 实现自定义示例选择器​

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

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

示例代码,

from langchain.prompts.example_selector.base import BaseExampleSelector
from typing import Dict, List
import numpy as npclass CustomExampleSelector(BaseExampleSelector):def __init__(self, examples: List[Dict[str, str]]):self.examples = examplesdef add_example(self, example: Dict[str, str]) -> None:"""Add new example to store for a key."""self.examples.append(example)def select_examples(self, input_variables: Dict[str, str]) -> List[dict]:"""Select which examples to use based on the inputs."""return np.random.choice(self.examples, size=2, replace=False)

2. 使用自定义示例选择器​

示例代码及输出结果,

examples = [{"foo": "1"},{"foo": "2"},{"foo": "3"}
]# Initialize example selector.
example_selector = CustomExampleSelector(examples)# Select examples
example_selector.select_examples({"foo": "foo"})
# -> array([{'foo': '2'}, {'foo': '3'}], dtype=object)# Add new example to the set of examples
example_selector.add_example({"foo": "4"})
example_selector.examples
# -> [{'foo': '1'}, {'foo': '2'}, {'foo': '3'}, {'foo': '4'}]# Select examples
example_selector.select_examples({"foo": "foo"})
# -> array([{'foo': '1'}, {'foo': '4'}], dtype=object)

完结!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/7529.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计模式大白话——观察者模式

文章目录 一、概述二、示例三、模式定义四、其他 一、概述 ​ 与其叫他观察者模式,我更愿意叫他叫 订阅-发布模式 ,这种模式在我们生活中非常常见,比如:追番了某个电视剧,当电视剧有更新的时候会第一时间通知你。当你…

Fuzz测试:提升自动驾驶安全性

目录 什么是Fuzz测试? 自动驾驶的潜在风险 Fuzz测试:自动驾驶和车联网 Fuzz测试方法有以下几种: 资料获取方法 纵观近百年来汽车制造业的发展历程,产业跨进的每一步背后都有着技术创新作为支撑。汽车技术创新对世界经济、社会…

数学建模学习(3):综合评价类问题整体解析及分析步骤

一、评价类算法的简介 对物体进行评价,用具体的分值评价它们的优劣 选这两人其中之一当男朋友,你会选谁? 不同维度的权重会产生不同的结果 所以找到每个维度的权重是最核心的问题 0.25 二、评价前的数据处理 供应商ID 可靠性 指标2 指…

基于Android Studio编辑器上开发的一款看点新闻App

完整资料进入【数字空间】查看——baidu搜索"writebug" 1 系统需求分析 1.1 引言 1.1.1 开发目的 看点新闻App的开发是为了实时查看最新消息以了解社会动态,增长知识,增广见闻,顺便娱乐一下内心世界来放松自己。 1.1.2 开发背景 …

阿里云函数计算签名认证(iOS实现细节备注)

1、使用第三方库 AFNetworking进行网络请求。 2、阿里云函数计算签名认证文档 3、文档中添加 CanonicalizedFCHeaders 可以不用添加,CanonicalizedResource如何没有设置Path,在末尾加入“/”就可以了。 4、主要还是 hmac-sha256 签名认证,在实…

【Spring Boot Admin】使用(整合Spring Security服务,添加鉴权)

Spring Boot Admin 监控平台 背景:Spring Boot Admin 监控平台不添加鉴权就直接访问的话,是非常不安全的。所以在生产环境中使用时,需要添加鉴权,只有通过鉴权后才能监控客户端服务。本文整合Spring Security进行实现。 pom依赖 …

Vue第四篇:html和js基础知识查漏补缺

1、a标签 定义超链接,用于从一个页面链接到另一个页面 target属性:打开目标URL的方式,_top为再当前窗口打开,_blank为新窗口打开 2、span标签 对文档中的行内元素进行组合,它提供了一种将文本的一部分或者文档的一部分…

Jmeter(二十三):快速生成测试报告

一、jmeter配置 首先要保证jmeter命令是ok的,如果你在cmd中输入jmeter -v,有出现如下截图所示的信息,那就说明jmeter环境ok; 二、jmeter执行结合命令 生成HTML测试报告 1.完成脚本的调试、参数化、断言等操作。然后在聚合报告中指定日志文件存储路径,路径中最好不要包含有…

通过电商项目,详解抓包到接口测试,附图片验证码 +cookie 问题处理!

通常来说,进行接口测试,开发会提供对应的接口文档给到测试,但也有例外。开发无接口文档,但领导又需要你对刚开发的软件,进行接口测试、接口自动化测试、甚至是性能测试。这个时候作为专业测试应该怎么办? …

[元带你学: eMMC协议 28] eMMC 上电时序 | eMMC 上电指南

依JEDEC eMMC及经验辛苦整理,原创保护,禁止转载。 专栏 《元带你学:eMMC协议》 内容摘要 全文 1500 字, 主要内容 eMMC 上电规范 和 eMMC 上电指南, 这部分内容偏向电气特性,如果不是硬件的同学只要特别浅的了解, 一带而过。 eMMC 上电规范 eMMC 电压 VCCQ指的是接口…

视频文件批量添加字幕内容需要如何快速操作

有时候我们在剪辑视频的过程中,想要给视频素材添加上一些文字说明,需要如何操作呢?为了提高剪辑效率,今天小编来分享教学,教你如何才能批量地给视频素材添加滚动字幕,一起来看看具体的方法介绍吧。 我们先打…

《吐血整理》保姆级系列教程-玩转Fiddler抓包教程(2)-初识Fiddler让你理性认识一下

1.前言 今天的理性认识主要就是讲解和分享Fiddler的一些理论基础知识。其实这部分也没有什么,主要是给小伙伴或者童鞋们讲一些实际工作中的场景,然后隆重推出我们的猪脚(主角)-Fiddler。 1.1工作场景 做app测试,你是…

正则替换html img中的style width和height

推荐一个正则匹配的网站 https://regex101.com/ let str 有四只小动物排成一排&#xff0c;摄影师给相邻的两只小动物拍了下面三张照片。<img style"vertical-align: middle; width: 712px; height: 99.0337px;" width"1317" height"183" sr…

正则表达式 —— Grep

文本处理三剑客&#xff1a;Grep、Sed、Awk 这三个工具都是基于对文本的内容进行增删改查的操作&#xff0c;此篇着重介绍grep与正则表达式的应用&#xff0c;以及扩展正则表达式。 正则表达式 什么是正则表达式&#xff1f; 它是由一类特殊字符以及文本字符所编写的一种模式…

华为云零代码平台AstroZero新手操作指南-3分钟体验创建培训报名表

华为云Astro轻应用Astro Zero是华为云为行业客户、合作伙伴、开发者量身打造的低代码/零代码应用开发平台&#xff0c;提供全场景可视化开发能力和端到端部署能力&#xff0c;可快速搭建行业和大型企业级应用并沉淀复用行业资产&#xff0c;加速行业数字化。 在AstroZero上&am…

程序员如何向老板提加薪?

今天的问题不仅适用于程序员&#xff0c;对于其他职业同样适用。如果你认为自己所做的工作应该得到更多的报酬&#xff0c;并且想为此做点什么&#xff0c;你有两个选择&#xff1a;找一个新的高薪工作或要求加薪。 这两种选择都会带来新的焦虑&#xff0c;但它们都会带来新的…

PostgreSQL还是MySQL:数据库选择指南

在当今数字化时代&#xff0c;数据库是支撑各类应用的重要基石&#xff0c;而在众多数据库管理系统中&#xff0c;PostgreSQL和MySQL是两个备受争议的选择。虽然它们都是成熟且功能强大的开源数据库&#xff0c;但它们在某些方面存在着不同的优势。本文将帮助你了解PostgreSQL和…

JVM执行引擎——为什么Java是半编译半解释语言

起初设计者的初衷是将字节码文件翻译为机器语言的指令来执行即可&#xff0c;就诞生了解释器。但是采用一行行来解释的效率比较低&#xff0c;JIT编译器会将编译后的机器码做一个缓存的操作&#xff0c;放在方法区的JIT代码缓存中&#xff0c;是否需要启用JIT编译器直接将字节码…

TypeScript基础篇 - Vue-TS-Rollup 环境实战

目录 .babelrc RollupVueTS scripts/rollup.config.js package.json 可以同时使用多个 Plugin 和 Preset&#xff0c;此时&#xff0c;它们的执行顺序非常重要。 先执行完所有 Plugin&#xff0c;再执行 Preset。 多个 Plugin&#xff0c;按照声明次序顺序执行。 多个 Pre…

gerrit 提交搞了一天的账号密码

搞了一整天的账号密码怎么输入都不对 以为输入了也不对&#xff0c;查找各种文档也不太行 参考也不太行&#xff1a; https://blog.csdn.net/qq_43279637/article/details/103595122 最后发现 是使用了git clone http 脑残方式&#xff0c;正确应该使用 git clone ssh 就可以…