langchain学习笔记(十)

news2024/9/29 9:24:06

Bind runtime args | 🦜️🔗 Langchain

1、有时,我们希望使用常量参数调用Runnable序列中的Runnable,这些参数不是序列中前一个Runnable的输出的一部分,也不是用户的输入,这时可以用Runnable.bind()

from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough
from langchain_openai import ChatOpenAI
prompt = ChatPromptTemplate.from_messages(
    [
        (
            "system",
            "用代数符号写出下面的方程,然后求解。 格式EQUATION:...换行SOLUTION:...换行",
        ),
        ("human", "{equation_statement}"),
    ]
)
model = ChatOpenAI(temperature=0)
runnable = (
    {"equation_statement": RunnablePassthrough()} | prompt | model | StrOutputParser()
)
print(runnable.invoke("x的三次方加7等于12"))
# 使用model.bind,此处限制输入某些字
runnable = (
    {"equation_statement": RunnablePassthrough()}
    | prompt
    | model.bind(stop="SOLUTION")
    | StrOutputParser()
)
print('model.bind:',runnable.invoke("x的三次方加7等于12"))

2、通过bind给openAI模型绑定openAI函数、openAI工具

注意以下的方程求解需要GPT4才能给出正确答案,奇怪的是上面不用bind function的gpt3.5可以回答正确

注意name的key不能为中文

function = {
    "name": "solver",
    "description": "Formulates and solves an equation",
    "parameters": {
        "type": "object",
        "properties": {
            "equation": {
                "type": "string",
                "description": "The algebraic expression of the equation",
            },
            "solution": {
                "type": "string",
                "description": "The solution to the equation",
            },
        },
        "required": ["equation", "solution"],
    },
}
prompt = ChatPromptTemplate.from_messages(
    [
        (
            "system",
            "Write out the following equation using algebraic symbols then solve it.",
        ),
        ("human", "{equation_statement}"),
    ]
)
model=model="gpt-3.5-turbo".bind(
    function_call={"name": "solver"}, functions=[function]
)
runnable = {"equation_statement": RunnablePassthrough()} | prompt | model
print(runnable.invoke("x raised to the third plus seven equals 12"))

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

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

相关文章

离散系统的冲激响应和阶跃响应

离散系统的冲激响应和阶跃响应 方法一: 使用 impz()dstep() 求冲激和阶跃响应 \textbf{方法一:}使用\textbf{impz()}\textbf{dstep()}求冲激和阶跃响应 方法一:使用impz()dstep()求冲激和阶跃响应 方法二: 使用 filtic()filter() …

精准唇语同步:Wav2Lip 引领视频技术前沿 | 开源日报 No.188

Rudrabha/Wav2Lip Stars: 8.4k License: NOASSERTION Wav2Lip 是一个准确地在野外进行视频唇语同步的项目。 该项目的主要功能、关键特性和核心优势包括: 可以高精度地将视频与任何目标语音进行唇语同步适用于任何身份、声音和语言,也适用于 CGI 面孔和…

SpringCloud负载均衡源码解析 | 带你从表层一步步剖析Ribbon组件如何实现负载均衡功能

目录 1、负载均衡原理 2、源码分析 2.1、LoadBalanced 2.2、LoadBalancerClient 2.3、RibbonAutoConfiguration 2.4、LoadBalancerAutoConfiguration 2.5、LoadBalancerIntercepor⭐ 2.6、再回LoadBalancerClient 2.7、RibbonLoadBalancerClient 2.7.1、DynamicServe…

Git 如何上传本地的所有分支

Git 如何上传本地的所有分支 比如一个本地 git 仓库里定义了两个远程分支,一个名为 origin, 一个名为 web 现在本地有一些分支是 web 远程仓库没有的分支,如何将本地所有分支都推送到 web 这个远程仓库上呢 git push web --all

一定用得到数据预处理:去噪、滤波方法!限幅滤波、中值滤波、均值滤波、递推平均滤波,直接运行!

​适用平台:Matlab2020版本及以上 在实际应用中,滤波、去噪都是用于信号处理的工具,通常用于机器学习/深度学习技术前的数据预处理阶段,主要作用在于对信号进行平滑处理或者去除噪声,从而提取出信号中的有用信息或者改…

数据库原理(一)

1、基本概念 学号姓名性别出生年月籍贯220101张三男2003江苏220102李四男2003山东220103王五女2003河北220104赵六女2003天津220105张四男2003北京220106李五女2003江苏220107王六女2003山东220108张七男2003河北220109张九男2003天津220110李十女2003北京 1.1数据&#xff0…

Leetcoder Day36| 动态规划part03

343. 整数拆分 给定一个正整数 n,将其拆分为至少两个正整数的和,并使这些整数的乘积最大化。 返回你可以获得的最大乘积。 示例 1: 输入: 2输出: 1解释: 2 1 1, 1 1 1。 示例 2: 输入: 10输出: 36解释: 10 3 3 4, 3 3 4 36。说明: 你可以假设 …

LeetCode102.二叉树的层序遍历

题目 给你二叉树的根节点 root ,返回其节点值的 层序遍历 。 (即逐层地,从左到右访问所有节点)。 示例 输入:root [3,9,20,null,null,15,7] 输出:[[3],[9,20],[15,7]]输入:root [1] 输出&am…

刷题日记:面试经典 150 题 DAY3

刷题日记:面试经典 150 题 DAY3 274. H 指数238. 除自身以外数组的乘积380. O(1) 时间插入、删除和获取随机元素134. 加油站135. 分发糖果 274. H 指数 原题链接 274. H 指数 重要的是都明白H指数到底是是个啥。注意到如果将引用数从大到小排序,则对于…

使用 Docker 部署 MrDoc 在线文档管理系统

1)MrDoc 介绍 MrDoc 简介 MrDoc 觅思文档:https://mrdoc.pro/ MrDoc 使用手册:https://doc.mrdoc.pro/p/user-guide/ MrDoc 可以创建各类私有化部署的文档应用。你可以使用它进行知识管理、构建团队文库、制作产品手册以及在线教程等。 Mr…

Grpc项目集成到java方式调用实践

背景:由于项目要对接到grcp 的框架,然后需要对接老外的东西,还有签名和证书刚开始没有接触其实有点懵逼。 gRPC 是由 Google 开发的高性能、开源的远程过程调用(RPC)框架。它建立在 HTTP/2 协议之上,使用 …

MySQL的一行数据是如何存储的?

目录 1.COMPACT 行格式长什么样? 例子1:用户设置了主键值,列都是not null的。(默认字符集是utf8mb4,在这种情况下,char(N)类型就不是定长的了) 例子2:没有设置主键,也没有唯一索引&#xff0…

【间说八股】面试官:我看你这里用到了模板模式?你能不能说一下什么是模板模式

模板模式 行为模式:这类模式负责对象间的高效沟通和职责委派。 模板方法模式是一种行为设计模式, 它在超类中定义了一个算法的框架, 允许子类在不修改结构的情况下重写算法的特定步骤。 模板方法模式是一种行为设计模式,其核心思想…

【【C语言简单小题学习-1】】

实现九九乘法表 // 输出乘法口诀表 int main() {int i 0;int j 0;for (i 1; i < 9; i){for (j 1; j < i;j)printf("%d*%d%d ", i , j, i*j);printf("\n"); }return 0; }猜数字的游戏设计 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdi…

【STK】手把手教你利用STK进行仿真-STK软件基础02 STK系统的软件界面02 STK的主菜单

STK系统的菜单工具栏包含9个标准的下拉菜单&#xff0c;菜单项分别为“File”&#xff08;文件&#xff09;、“Edit”&#xff08;编辑&#xff09;、“Insert”&#xff08;插入&#xff09;、“View”&#xff08;查看&#xff09;、“Scenario”&#xff08;场景&#xff0…

文件操作和IO(2):Java中操作文件

目录 一、File的属性 二、File的构造方法 三、File的方法 四、代码示例 1、getName&#xff0c;getParent&#xff0c;getPath方法 2、getAbsolutePath&#xff0c;getCanonicalPath方法 3、exists&#xff0c;isDirectory&#xff0c;createNewFile方法 4、createNewF…

EtlCloud安装部署及简单应用

背景 最近碰到了一个数据同步的业务场景&#xff0c;客户要求生产环境的某些特定数据定时同步到指定的数据池中&#xff0c;并对数据池中的表名称有特殊要求&#xff0c;必须以t_xxxx_tablename的格式命名&#xff0c;其中xxxx为单位编号&#xff0c;tablename可以是应用中的表…

k8s资源管理之声明式管理方式

1 声明式管理方式 1.1 声明式管理方式支持的格式 JSON 格式&#xff1a;主要用于 api 接口之间消息的传递 YAML 格式&#xff1a;用于配置和管理&#xff0c;YAML 是一种简洁的非标记性语言&#xff0c;内容格式人性化&#xff0c;较易读 1.2 YAML 语法格式&#xff1a; ●…

Java网络通信UDP

目录 网络通信基础 UDP通信 服务器 1.想要使用UDP通信 要先打开DatagramSocket文件 端口号可以手动指定或系统随机分配 2.阻塞等待接收客户端数据&#xff1b;创建DatagramPacket接收客户端传来的数据 3.处理客户端传来的数据&#xff0c;并进行业务处理&#xff08;这里…

雷电将军部分技能AOE范围测试

简单说一下&#xff0c;以往的AOE范围数据大部分来自Dim提供的拆包文件或泄露的GM端控制台显示的距离数据&#xff0c;如《AOE范围学》中的数据&#xff0c;然而米哈游自1.6版本及以后未再公开泄露过GM端&#xff0c;因为一些原因Dim也没再更新拆包文件中角色技能参数相关的部分…