langchain学习笔记(十)

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"))

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【学习心得】浏览器开发者工具中出现的VM开头的JS文件是什么?

一、现象描述 在Chrome的开发者工具中,你可能会看到一些以“VM”开头的JavaScript文件(如“VM111.js”)。 二、VM文件到底是什么? “VM”表示的是Virtual Machine(虚拟机),这些文件通常表示由浏…

C++:菱形继承问题

目录 1、什么是菱形继承 2、虚拟继承 3、一些常见问题 1. 什么是菱形继承?菱形继承的问题是什么? 2. 什么是菱形虚拟继承?如何解决数据冗余和二义性的 3. 继承和组合的区别?什么时候用继承?什么时候用组合&#…

wpsexcel蛋疼的数字列转文本

在excel处理时,有时某一列会以数字形式展示,后续处理非常麻烦,希望转为字符,参考以下方法 选定整列点击"数据"->“分列”->一直下一步直到选择文本

Java求职技能清单(2024版)

一、Java基础扎实(反射、集合、IO、NIO、多线程、设计模式、通信协议等基础技术) (一)Java (二)网络IO (三)NIO模型 (…

在golang中使用protoc

【Golang】proto生成go的相关文件 推荐个人主页:席万里的个人空间 文章目录 【Golang】proto生成go的相关文件1、查看proto的版本号2、安装protoc-gen-go和protoc-gen-go-grpc3、生成protobuff以及grpc的文件 1、查看proto的版本号 protoc --version2、安装protoc-…

备战蓝桥杯---线段树基础2

今天我们把线段树的另一个模板看一下: 在这里,我们注意到乘的操作,因此我们用两个懒标记来分别表示加和乘,这时我们面临了一个问题,就是当我们把标记往下传时,它的儿子怎么知道是先乘还是先加? …

Doris实战——拈花云科的数据中台实践

前言 拈花云科 NearFar X Lab 团队调研并引进 Doris 作为新架构下的数据仓库选型方案。本文主要介绍了拈花云科数据中台架构从 1.0 到 2.0 的演变过程,以及 Doris 在交付型项目和 SaaS 产品中的应用实践。 一、业务背景 拈花云科的服务对象主要是国内各个景区、景点…

React-router的创建和第一个组件

需要先学react框架 首先:找到一个文件夹,在文件夹出打开cmd窗口,输入如下图的口令 npx create-react-app demo 然后等待安装 安装完成 接下来进入创建的demo实例 cd demo 然后可以用如下方式打开vscode code . 注意:不要忽略点号与…

【重温设计模式】享元模式及其Java示例

享元模式的介绍 在编程世界中,我们常常面临着如何有效管理系统资源的挑战。这就好比我们在生活中,面对有限的物质资源,如何做到既满足需求又节约使用,是一门艺术。在设计模式中,有一种模式,恰如其分地解决…

VR转接器:破解虚拟与现实边界的革命性设备

VR转接器,这一革命性的设备,为虚拟现实体验带来了前所未有的自由度。它巧妙地连接了虚拟与现实,使得用户在享受VR眼镜带来的奇幻世界的同时,也能自由地在现实世界中活动。这一设计的诞生,不仅解决了VR眼镜续航的瓶颈问…

MySQL进阶之(三)InnoDB数据存储结构之数据页结构

三、InnoDB数据存储结构之数据页结构 3.1 数据库的存储结构3.1.1 MySQL 数据存储目录3.1.2 页的引入3.1.3 页的概述3.1.4 页的上层结构 3.2 数据页结构3.2.1 文件头和文件尾01、File Header(文件头部)02、File Trailer(文件尾部) …

比小鹏、问界都贵,谁给了理想MEGA勇气?

“规模小的时候,一号位善于解题。规模大的时候,一号位要善于出题。” 前不久,理想汽车CEO李想在微博上如此评价一家公司中,老板应该怎么做。 现在,成立近9年的理想汽车做出了一个“违背祖宗”的决定——大举进军纯电…

陶瓷工业5G智能制造工厂数字孪生可视化平台,推进行业数字化转型

陶瓷工业5G智能制造工厂数字孪生可视化平台,推进行业数字化转型。在陶瓷工业领域,5G智能制造工厂数字孪生可视化平台的应用正在改变着行业的传统生产模式,推动着数字化转型的进程。本文将围绕这一主题展开探讨,分析数字孪生可视化…

挑战30天学完Python:Day25 pandas

🎉 本系列为Python基础学习,原稿来源于 30-Days-Of-Python 英文项目,大奇主要是对其本地化翻译、逐条验证和补充,想通过30天完成正儿八经的系统化实践。此系列适合零基础同学,或仅了解Python一点知识,但又没…

智能家居控制系统(51单片机)

smart_home_control_system 51单片机课设,智能家居控制系统 使用及转载请标明出处(最好点个赞及star哈哈) Github地址,带有PPT及流程图 Gitee码云地址,带有PPT及流程图 ​ 以STC89C52为主控芯片,以矩阵键…

KubeSphere平台安装系列之二【Linux单节点部署KubeSphere】(2/3)

**《KubeSphere平台安装系列》** 【Kubernetes上安装KubeSphere(亲测–实操完整版)】(1/3) 【Linux单节点部署KubeSphere】(2/3) 【Linux多节点部署KubeSphere】(3/3) **《KubeS…

云时代【6】—— 镜像 与 容器

云时代【6】—— 镜像 与 容器 四、Docker(三)镜像 与 容器1. 镜像(1)定义(2)相关指令(3)实战演习镜像容器基本操作离线迁移镜像镜像的压缩与共享 2. 容器(1)…

【MATLAB】语音信号识别与处理:SG滤波算法去噪及谱相减算法呈现频谱

1 基本定义 SG 滤波算法(Savitzky - Golay 滤波算法)是一种数字信号处理算法,用于对信号进行平滑处理。该算法利用最小二乘法拟合局部数据段,然后用拟合的函数来估计每个数据点的值,从而实现平滑处理。 SG 滤波算法的…

【MySQL】表的内连和外连(重点)

表的连接分为内连和外连。 一、内连接 内连接实际上就是利用 where 子句对两种表形成的笛卡儿积进行筛选,前面学习的查询都是内连接,也是在开发过程中使用的最多的连接查询。 select 字段 from 表1 inner join 表2 on 连接条件 and 其他条件; 注意&…

计算机毕业设计分享-ssm心理咨询预约管理系统 19086(赠送源码数据库)JAVA、PHP,node.js,C++、python,大屏数据可视化等

本科生毕业设计(论文) 题 目心理咨询预约管理系统的设计与实现 学 院 XXXXX 专业班级 XXXXX 学生姓名 XXXX 指导岗位 XXXX 撰写日期:2023年4月 目 录 摘要 1 绪论 1.1背景及意义 …