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

杂记 | Langchain中few-shot提示词模板的使用(给提示词添加示例)

文章目录

  • 01 普通的提示词模板
  • 02 few-shot提示词模板


Langchain是一个集成多个大语言模型的开源框架,可以使用它来快速开发大语言模型应用。

本文的代码使用到的模块:

from typing import List, Dict
from langchain import PromptTemplate, FewShotPromptTemplate, LLMChain, OpenAI

01 普通的提示词模板

先来看看普通的提示词模板如何使用,效果如何:

# 创建大语言模型对象 这里使用gpt-3.5最新的指令模型
llm = OpenAI(model="gpt-3.5-turbo-instruct", temperature=0)# 设置提示词模板 其中的{input}为等待用户填充问题的插槽
template = "我会给你一种物品名称的输入,你需要输出该类物品的一种具体事物,且使用量词开头。\nInput: {input}"# 提示词模板对象 指定接收参数的参数名为input 也就是上述插槽中的内容
prompt = PromptTemplate(input_variables=["input"], template=template)# 大语言模型 + 提示词模板对象 -> 生成一个chian
chain = LLMChain(llm=llm, prompt=prompt)# 执行chain并查看结果
print(chain.run(input="手机"))

在这个示例中,对大模型的输入为:

我会给你一种物品名称的输入,你需要输出该类物品的一种具体事物,且使用量词开头。
Input: 手机

大模型的输出为:

Output: 一部手机

可以看到输出并不能很好地满足我们的需求,因为我希望输出的是该类物品的一件具体的事物,例如:一部华为手机,而它只是简单的给我添加了个量词就完事了。而且它还自己添加了output前缀。

02 few-shot提示词模板

下面使用few-shot提示词模板试试:

# 创建大语言模型
llm = OpenAI(model="gpt-3.5-turbo-instruct", temperature=0)# 创建一个实例列表
examples: List[Dict[str, str]] = [{"input": "水果", "output": "一个苹果"},{"input": "宠物", "output": "一只猫"},{"input": "家电", "output": "一台冰箱"}
]# 创建提示词模板对象 该对象中的template部分插槽需要与示例中的键对应
example_prompt = PromptTemplate(input_variables=["input", "output"], template="Input: {input}\n{output}")# 合成few-shot提示词模板对象
prompt = FewShotPromptTemplate(prefix="我会给你一种物品名称的输入,你需要输出该类物品的一种具体事物,且使用量词开头。",  # 示例提示词之前添加的内容examples=examples,  # 示例列表example_prompt=example_prompt,  # 容纳示例的提示词模板对象suffix="Input: {input}",  #  示例提示词之后添加的内容input_variables=["input"]  # 等待用户输入的参数插槽
)# 创建一个chain
chain = LLMChain(llm=llm, prompt=prompt)# 执行chain并查看结果
print(chain.run(input="手机"))

使用few-shot提示词模板后,对大模型的输入为:

我会给你一种物品名称的输入,你需要输出该类物品的一种具体事物,且使用量词开头。Input: 水果
一个苹果Input: 宠物
一只猫Input: 家电
一台冰箱Input: 手机

大模型的输出为:

一部iPhone

比起无示例版本,输出结果有了明显改观。

相关文章:

杂记 | Langchain中few-shot提示词模板的使用(给提示词添加示例)

文章目录 01 普通的提示词模板02 few-shot提示词模板 Langchain是一个集成多个大语言模型的开源框架,可以使用它来快速开发大语言模型应用。 本文的代码使用到的模块: from typing import List, Dict from langchain import PromptTemplate, FewShotPr…...

SVN -基础

SVN - 基础 概念操作步骤开发实际经验 概念 带SVN路径 有隐藏文件,记录repo的一些信息,与repo进行关联,可以与repo进行同步 不带SVN路径 只是单纯的文件,与repo独立 操作步骤 checkout 具有路径 URLcheckout dir 输出目标文件夹…...

MySQL基础终端命令与Python简单操作MySQL

文章目录 MySQL终端命令1. 进入mysql2. 创建数据库3. 选择数据库4. 创建数据表1. 主键约束2. 外键约束3. 非空约束4. 唯一约束5. 使用默认约束6. 设置id为自增列 5. 查看数据表6. 修改数据表1. 修改表名2. 修改表的字段类型3. 修改表的字段名4. 为表添加字段5. 删除字段6. 调整…...

编译原理.龙书学习1

第一章: 编译器:将程序翻译成一种能够被计算机执行的形式 解释器:解释器直接利用用户提供的输入执行源程序中指定的操作 一个编译器的结构 编译器将源程序映射为语义上等价的目标程序,这个映射过程由两部分组成:分析…...

anaconda安装完成之后输入conda -V没有反应

anaconda安装完成后,conda没有反应 vim ~/.bashrc后面添加内容 # added by Anaconda3 5.3.0 installer # >>> conda init >>> # !! Contents within this block are managed by conda init !! __conda_setup"$(CONDA_REPORT_ERRORSfalse /u…...

netty报文解析之粘包半包问题

粘包问题 Netty 的粘包问题是指在网络传输过程中,由于 TCP 协议本身的特点,导致发送方发送的若干个小数据包被接收方合并成了一个大数据包。这种情况称为粘包。 TCP 协议是面向流的协议,没有数据边界,发送方发送的数据可能会被分…...

EasyCode整合mybatis-plus的配置

文章目录 entitymapper.javamapper.xmlserviceserviceImplcontroller 这篇文章不教你如何安装和使用EasyCode,只是贴出可以使用的配置。 具体EasyCode的使用可以查看其它的文章。 entity ##导入宏定义 $!{define.vm}##保存文件(宏定义) #sa…...

实施预测性维护解决方案的挑战及PreMaint的应对方法

前面我们介绍了企业选择预测性维护解决方案的常见问题和PreMaint的策略,本期我们将带来实施过程中可能会遇到的挑战,以及如何通过PreMaint来应对这些挑战,以实现可靠的预测性维护。 随着工业技术的不断进步,预测性维护作为一种先进…...

1. js中let、var、const定义变量区别与方式

1 声明语法 var upperA A; let upperB B; const upperC C; 只声明不初始化的结果,【 const定义的常量不可以修改,而且必须初始化】 // var 声明变量 var upperA; console.log(打印大写的A:%s, upperA); // 结果:打印大写的A&am…...

【STM32学习】I2C通信协议 | OLED屏

🐱作者:一只大喵咪1201 🐱专栏:《STM32学习》 🔥格言:你只管努力,剩下的交给时间! 今天需要将代码烧录到开发板中,本喵默认大家都会创建工程,以及进行基本的…...

Nvme Spec 第一章节学习

Nvme Express Base Specification 第一章 简介 1.1概述 NVM ExpressTM(NVMeTM)接口允许主机软件与非易失性存储器子系统通信。 此接口针对企业和客户端固态驱动器进行了优化,通常作为寄存器级接口连接到PCI Express接口。 注:在…...

第一章:最新版零基础学习 PYTHON 教程(第九节 - Python 语句中的 – 多行语句)

Python 中的语句: 在Python中,语句是Python解释器可以读取和执行的逻辑命令。它可能是Python 中的赋值语句或表达式。 Python 中的多行语句: 在Python中,语句通常写成一行,每行的最后一个字符是换行符。要将语句扩展到一行或多行,我们可以使用大括号 {}、圆括号 ()、方…...

kafka 3.0 离线安装

1.安装zookeeper 解压apache-zookeeper-3.8.0-bin.tar.gz到指定目录,复制conf目录下zoo_sample.cfg到zoo.cfg,并修改配置。 # The number of milliseconds of each tick tickTime=2000 # The number of ticks that the initial # synchronization phase can take initLimit…...

MySQL数据库入门到精通2--基础篇(函数,约束,多表查询,事务)

3. 函数 函数 是指一段可以直接被另一段程序调用的程序或代码。MySQL中的函数主要分为以下四类: 字符串函数、数值函数、日期函数、流程函数。 3.1 字符串函数 MySQL中内置了很多字符串函数,常用的几个如下: 演示如下: A. con…...

c-数据在内存中的存储-day7

...

3D大模型如何轻量化?试试HOOPS Communicator,轻松读取10G超大模型!

随着计算机技术的不断发展,3D模型在各行各业中的应用越来越广泛。然而,随着模型的复杂性和规模不断增加,处理和浏览超大型3D模型变得越来越具有挑战性。本文将探讨如何轻量化3D大模型,以及如何使用HOOPS Communicator来读取和浏览…...

go并发操作且限制数量

使用管道chan func returnNum() int64 {return time.Now().Unix() } func main() {threadAmount : runtime.GOMAXPROCS(0)if threadAmount < 2 {threadAmount 2}fmt.Println(threadAmount)threadChan : make(chan int, threadAmount)defer close(threadChan)for {for i :…...

AI深度学习-卷积神经网络000

文章目录 前言1.什么是深度学习2.语义分割与实例分割概述3.什么是卷积&#xff1f;4.Unet网络 前言 本栏目&#xff0c;主要为深度学习保姆教程。 主要通过B站视频整理而来&#xff1a; 深度学习保姆级教学 Unet语义分割视觉三维重建算法 1.什么是深度学习 深度学习保姆级教…...

网站有反爬机制就爬不了数据?那是你不会【反】反爬

目录 前言 一、什么是代理IP 二、使用代理IP反反爬 1.获取代理IP 2.设置代理IP 3.验证代理IP 4.设置代理池 5.定时更新代理IP 三、反反爬案例 1.分析目标网站 2.爬取目标网站 四、总结 前言 爬虫技术的不断发展&#xff0c;使得许多网站都采取了反爬机制&#xff…...

2023华为杯研究生数学建模C题分析

完整的分析查看文末名片获取&#xff01; 问题一 在每个评审阶段&#xff0c;作品通常都是随机分发的&#xff0c;每份作品需要多位评委独立评审。为了增加不同评审专家所给成绩之间的可比性&#xff0c;不同专家评审的作品集合之间应有一些交集。但有的交集大了&#xff0c;则…...

第三天:实现网络编程基于tcp/udp协议在Ubuntu与gec6818开发板之间双向通信

互联网地址 每一台设备接入互联网后&#xff0c;都会举报一个唯一的地址编号 IP地址 INTERNET地址 internet地址 &#xff1a;它是协议上的一个逻辑地址 目前来说&#xff0c;我们主要的IP地址有两类 IPV4 IPV6 IPV4 其实就是使用一个32bit整数作为IP IPV6 其实就是使用一…...

【MediaSoup---源码篇】(三)Transport

概述 RTC::Transport是mediasoup中的一个重要概念&#xff0c;它用于在mediasoup与客户端之间传输实时音视频数据。 Transport继承着众多的类&#xff0c;主要用于Transport的整体感知 class Transport : public RTC::Producer::Listener,public RTC::Consumer::Listener,publ…...

爱分析《商业智能最佳实践案例》

近日&#xff0c;国内知名数字化市场研究咨询机构爱分析发布《2023爱分析商业智能最佳实践案例》&#xff0c;此评选活动面向落地商业智能的各行企业和商业智能厂商&#xff0c;以第三方专业视角深入调研&#xff0c;评选出具有参考价值的创新案例。永达汽车集团与数聚股份合作…...

golang:context

context作用 goroutine的退出机制 多个goroutine都是平行的被调度的&#xff0c;多个goroutine如何协调工作涉及通信、同步、通知和退出 通信&#xff1a;goroutine之间的通信同步chan通道 同步&#xff1a;不带缓冲的chan提供了一个天然的同步等待机制。通过WaitGroup也可以…...

探讨代理IP与Socks5代理在跨界电商中的网络安全应用

在数字化时代&#xff0c;跨界电商已经成为了商业世界中的一大趋势。然而&#xff0c;跨越国界的电商活动也伴随着网络安全挑战。本文将讨论如何利用代理IP和Socks5代理技术来提高跨界电商中的网络安全&#xff0c;同时也探讨了与游戏相关的爬虫应用。 1. 代理IP和Socks5代理的…...

Guava Cache介绍-面试用

一、Guava Cache简介 1、简介 Guava Cache是本地缓存&#xff0c;数据读写都在一个进程内&#xff0c;相对于分布式缓存redis&#xff0c;不需要网络传输的过程&#xff0c;访问速度很快&#xff0c;同时也受到 JVM 内存的制约&#xff0c;无法在数据量较多的场景下使用。 基…...

ARM 汇编指令作业(求公约数、for循环实现1-100之间和、从SVC模式切换到user模式简单写法)

1、求两个数最大公约数 .text .globl _start_start:mov r0, #9mov r1, #15 Loop: 循环cmp r0,r1 比较r0和r1的大小beq stop 当r0和r1相等时&#xff0c;跳到stop标签subhi r0,r0,r1 r0-r1>0 时&#xff0c;证明r0>r1,将r0-r1的值赋给r0&…...

Go - 【字符串,数组,哈希表】常用操作

一. 字符串 字符串长度&#xff1a; s : "hello" l : len(s) fmt.Println(l) // 输出 5遍历字符串&#xff1a; s : "hello" for i, c : range s {fmt.Printf("%d:%c ", i, c) } // 输出&#xff1a;0:h 1:e 2:l 3:l 4:ofor i : 0; i < le…...

vue 普通组件的 局部注册

vue 普通组件的 注册 11 Vue2_3入门到实战-配套资料\01-随堂代码素材\day03\素材\00-准备代码\小兔鲜首页静态页\src...

医疗虚拟仿真和虚拟现实有什么区别?哪个更好?

随着我们在仿真教育中越来越多地使用新技术&#xff0c;区分虚拟模式的类型很重要。虚拟仿真是一个统称&#xff0c;用来概括术语来描述各种基于仿真的体验&#xff0c;从基于屏幕的平台到沉浸式虚拟现实。然而&#xff0c;各虚拟平台在保真度、沉浸感和临场感的水平上有很大差…...

佛山网站建设与设计/百度搜索

/* * 度假中&#xff0c;在青岛这块曾经应该很熟悉的土地上&#xff0c;另一半在围着病人们转悠 * 所以自己在酒店里&#xff0c;也不想出去&#xff0c;听听歌&#xff0c;写写文章。 */ cublas是NVIDIA的一个GPU的blas库&#xff0c;提供的计算函数都在GPU上执行。 本文是cub…...

wordpress编辑器增加按钮/四川旅游seo整站优化站优化

转自http://freeloda.blog.51cto.com/2033581/1272417一、Corysync与Pacemaker 安装1.环境说明系统:CentOS 6.4x64最小化安装node1: 192.168.3.37node2: 192.168.3.38core-nfs: 192.168.3.39vip: 192.168.3.402.前提条件node1:(1).各节点之间主机名互相解析[rootno…...

深圳网站建设公司选全通网络/杭州seo俱乐部

注&#xff1a;本分类下文章大多整理自《深入分析linux内核源代码》一书&#xff0c;另有参考其他一些资料如《linux内核完全剖析》、《linux c 编程一站式学习》等&#xff0c;只是为了更好地理清系统编程和网络编程中的一些概念性问题&#xff0c;并没有深入地阅读分析源码&a…...

网站的注册和登录界面怎么做/百度搜索风云榜排名

2019/3/24线性回归——最小二乘法公式法 暂时用python成功做出来了图像&#xff0c;但是其中涉及到的公式还是更多的来自于网络&#xff0c;尤其是最小二乘法公式中的两个系数的求解&#xff0c;不过目前看了下书高数也会马上提及&#xff08;虽然可能不会讲这两个公式&#xf…...

wordpress上传课件/百度手机端排名如何优化

第一次压测 惨不忍睹&#xff0c;平均响应时间150ms&#xff0c;而且在这次压测过程中还发现其它的问题&#xff0c;后台报错&#xff0c;经查是OpenSearch每秒查询次数限制 优化代码与配置 1、修改OpenSearch配置&#xff0c;并且将压测环境中的OpenSearch连接地址改为内网地…...

仿煎蛋 wordpress/企业查询官网

全局命令命令功能set创建键值对keys遍历查看所有键exists判断一个键是否存在&#xff0c;1存在&#xff0c;0不存在dbsize当前数据库中有多少个键del删除一个或多个键expire设置过期时间ttl查看过期时间type判断键的类型Redis有5种数据结构&#xff0c;它们是键值对中的值&…...