LLMCompiler执行数学计算的案例

news2025/7/8 11:27:27

LLMCompiler执行数学计算的案例

  • LLMCompiler执行数学计算的案例
    • 案例代码
    • LLMCompiler的LangGrap结构可视化
    • Tasks DAG可视化
    • 完整运行日志

LLMCompiler执行数学计算的案例

 这是一个使用LLMCompiler执行数学运算的完整案例,通过设置’ print_dag '参数,可以完全可视化’工具’之间的依赖关系。Issues: A use case example

案例代码

from llmcompiler.tools.basic import Tools
from llmcompiler.result.chat import ChatRequest
from langchain_openai.chat_models.base import ChatOpenAI
from llmcompiler.chat.run import RunLLMCompiler

chat = ChatRequest(
    message="1. (3*(4+5)/0.5)+3245)加8的结果是什么?除以100的结果是什么?分别计算这两个值的结果,然后求其平均值。"
            "2. 32除以4.23等于多少,它们的乘积是多少?计算他们的平均值!"
            "3. 所有平均值除以2的乘积是多少?")

tools = Tools.load_tools("../llmcompiler/tools/math")
print(tools)

llm = ChatOpenAI(model="gpt-4o", temperature=0, max_retries=3)

llm_compiler = RunLLMCompiler(chat, tools, llm, print_dag=True)
print(llm_compiler())

../llmcompiler/tools/math加载的Tool源码。

LLMCompiler的LangGrap结构可视化

LLMCompiler的LangGrap结构可视化

Tasks DAG可视化

案例代码生成的8个任务的有向无环图可视化

完整运行日志

[Math()]
==========================初始化工具集和Agent:0.0秒==========================
We can convert a graph class into Mermaid syntax.
On https://www.min2k.com/tools/mermaid/, you can view visual results of Mermaid syntax.
%%{init: {'flowchart': {'curve': 'linear'}}}%%
graph TD;
	__start__([__start__]):::first
	plan_and_schedule(plan_and_schedule)
	join(join)
	__end__([__end__]):::last
	__start__ --> plan_and_schedule;
	plan_and_schedule --> join;
	join -.-> plan_and_schedule;
	join -.-> __end__;
	classDef default fill:#f2f0ff,line-height:1.2
	classDef first fill-opacity:0
	classDef last fill:#bfb6fc

================================ Rewriter Without LLM ================================
请基于用户问题,并结合相关信息和参考计划,生成一个专业且简洁的最少执行计划。
相关信息中可能会包含一些相关的数据信息可以作为`常量`使用,生成`Plan`时请认真检查。
但是切记不要构造用户问题和相关信息中没有提供的`常量`信息,例如基金代码没有提供则必须使用Tool查询,这很重要。

**用户问题**
1.  ((3*(4+5)/0.5)+3245)加8等于多少,除以100是多少?分别计算两个值的结果然后求平均值是多少?2. 32除以4.23是多少,乘积是多少?计算他们的平均值!3. 所有平均值的乘积除以二是多少?

**相关信息**


**参考计划**


Let’s think step by step!

================================ Planer Compiler ================================
math
---
idx: 1
tool: math
args: {'problem': '3*(4+5)/0.5 + 3245 + 8'}
dependencies: []
thought: None
---

math
---
idx: 2
tool: math
args: {'problem': '((3*(4+5)/0.5 + 3245) + 8) / 100'}
dependencies: []
thought: None
---

math
---
idx: 3
tool: math
args: {'problem': '32 / 4.23'}
dependencies: []
thought: None
---

math
---
idx: 4
tool: math
args: {'problem': '32 * 4.23'}
dependencies: []
thought: None
---

math
---
idx: 5
tool: math
args: {'problem': '($3 + $4) / 2', 'context': ['$3', '$4']}
args<Analyzed>: {'problem': '($3 + $4) / 2', 'context': [[7.565011820330969], [135.36]]}
dependencies: [3, 4]
thought: None
---

math
---
idx: 6
tool: math
args: {'problem': '($1 + $2) / 2', 'context': ['$1', '$2']}
args<Analyzed>: {'problem': '($1 + $2) / 2', 'context': [[3307], [33.07]]}
dependencies: [1, 2]
thought: None
---
math
---
idx: 7
tool: math
args: {'problem': '$5 * $6 / 2', 'context': ['$5', '$6']}
args<Analyzed>: {'problem': '$5 * $6 / 2', 'context': [[71.46250591016549], [1670.035]]}
dependencies: [5, 6]
thought: None
---

---
idx: 8
tool: join
args: ()
dependencies: [1, 2, 3, 4, 5, 6, 7]
thought: None
---
We can convert a graph class into Mermaid syntax.
On https://www.min2k.com/tools/mermaid/, you can view visual results of Mermaid syntax.
%%{init: {'flowchart': {'curve': 'linear'}}}%%
graph TD;
	__start__([__start__]):::first
	__end__([__end__]):::last
	1(Task 1 math)
	2(Task 2 math)
	3(Task 3 math)
	4(Task 4 math)
	5(Task 5 math)
	6(Task 6 math)
	7(Task 7 math)
	8(Task 8 join)
	3 --> 5;
	4 --> 5;
	1 --> 6;
	2 --> 6;
	5 --> 7;
	6 --> 7;
	1 --> 8;
	2 --> 8;
	3 --> 8;
	4 --> 8;
	5 --> 8;
	6 --> 8;
	7 --> 8;
	__start__ --> 1;
	__start__ --> 2;
	__start__ --> 3;
	__start__ --> 4;
	8 --> __end__;
	classDef default fill:#f2f0ff,line-height:1.2
	classDef first fill-opacity:0
	classDef last fill:#bfb6fc

==========================Iteration 1, ['plan_and_schedule']: 22.83秒==========================
================================ Joiner ================================
{
    "_thought_": "我已经计算了所有需要的值,并且得到了最终的结果。",
    "_finish_": "1. ((3*(4+5)/0.5)+3245)加8等于3307,除以100等于33.07。它们的平均值是1670.035。2. 32除以4.23等于7.565,乘积是135.36。它们的平均值是71.4625。3. 所有平均值的乘积除以二是59672.443。"
}
==========================Iteration 1, ['join']: 5.0秒==========================
response='1. ((3*(4+5)/0.5)+3245)加8等于3307,除以100等于33.07。它们的平均值是1670.035。2. 32除以4.23等于7.565,乘积是135.36。它们的平均值是71.4625。3. 所有平均值的乘积除以二是59672.443。' charts=[] source=[] labels=[]

Process finished with exit code 0

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

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

相关文章

vme背板 介绍

VME背板是基于VME总线规范的背板,它是VME系统中的重要组成部分,主要负责模块之间的连接和数据传输。VMEbus(Versa Module Eurocard bus)是一种广泛应用于工业控制、军事、航空航天以及电信领域的模块化计算机总线标准。VME背板是VME系统的核心组件之一,它不仅提供了物理支…

思路超清晰的 LVS-NAT 模式实验部署

目录 一、实验原理 1、实验基础配置图 2、实验原理 二、实验环境准备 1、准备四台红帽9的主机 2、四台主机的基础配置 &#xff08;1&#xff09;client 1&#xff09;配置主机名&#xff1a;client 2&#xff09;配置ip:172.25.254.200 &#xff08;2&#xff09;lv…

DAMA学习笔记(十四)-数据管理成熟度评估

1.引言 能力成熟度评估&#xff08;Capability Maturity Assessment&#xff0c;CMA&#xff09;是一种基于能力成熟度模型&#xff08;Capability Maturity Model&#xff0c;CMM&#xff09;框架的能力提升方案&#xff0c;描述了数据管理能力初始状态发展到最优化的过程。CM…

掌握VS Code调试技巧:解决Scrapy模块导入中断问题

介绍 在使用Scrapy进行网页爬取时&#xff0c;Visual Studio Code&#xff08;VS Code&#xff09;作为一款流行的代码编辑器&#xff0c;凭借其强大的调试功能&#xff0c;成为了许多开发者的首选。然而&#xff0c;部分开发者在调试Scrapy爬虫时&#xff0c;常遇到程序在模块…

《剑指offer》题目 C++详细题解

JZ15 二进制中1的个数 核心考点&#xff1a;二进制计算 思路一&#xff1a;使用一个循环&#xff0c;因为我们知道整型变量只有32位&#xff0c;所以循环结束的条件就是到32&#xff0c;从最低位开始&#xff0c;逐位检查数字 n 的二进制表示&#xff0c;利用位运算中的与运算…

Ubuntu22.04自动化安装Redis脚本(实测可用)

redis自动化安装脚本 #!/bin/bash# 检查 Redis 是否已安装 if dpkg -l | grep -q redis-server; thenecho "Redis 已安装"exit 0 elseecho "Redis 未安装&#xff0c;正在安装..."# 更新包列表sudo apt-get update# 修复系统中的破损依赖关系sudo apt --f…

教你用JQ怎么循环遍历数据,学会直接月入过万,不够我给你补!

1.先看数据类型。这是一个标准得json返回值 {"code": 200,"msg": "请求成功&#xff01;","data": [{"itemName": "给阿姨倒一杯卡布奇诺","unit": "颗","count": 6},{"item…

c语言 图片.bmp读写示例

1 图片.bmp数据结构 BMP&#xff08;Bitmap&#xff09;文件格式是一种简单的位图图像格式&#xff0c;其数据结构分为几个主要部分&#xff1a;文件头、信息头、调色板&#xff08;可选&#xff09;和像素数据。下面是各部分的详细说明。 文件头&#xff08;File Header&…

zabbix看图表的时候标题是乱码

直接进入到&#xff1a;/usr/share/zabbix/assets/fonts 然后进入到windows下边fonts选择一个自己喜欢的字体&#xff0c;上传到/usr/share/zabbix/assets/fonts 然后把内容graphfont.ttff覆盖即可

《网络编程实战系列》(17)网络桥接模式

文章目录 **桥接模式的基本原理****桥接模式的应用场景****桥接模式的优缺点****桥接模式的实现****总结**桥接模式(Bridge Mode)是一种网络配置模式,用于将多个网络接口或网络段连接在一起,使其在逻辑上形成一个单一的网络。这种模式常用于在不同网络之间传递数据包,并使…

超详解Haproxy七层代理及配置

1.七层、四层负载及正、反向代理 1.1四层与七层负载均衡的区别 所谓的四到七层负载均衡&#xff0c;就是在对后台的服务器进行负载均衡时&#xff0c;依据四层的信息或七层的信息来决定怎么样转发流量四层的负载均衡&#xff0c;就是通过发布三层的IP地址(VIP)&#xff0c;然…

C语言—函数栈帧

函数&#xff0c;一般都有返回值&#xff0c;函数名&#xff0c;参数&#xff0c;再下来还有什么mian函数&#xff0c;函数写出来就是要被调用的&#xff0c;上面图片上的代码&#xff0c;main函数和myadd函数&#xff0c;都要在自己的栈结构什么形成自己的栈&#xff0c;可以帮…

如何获取VS Code扩展的版本更新信息

获取VS Code 扩展的版本更新的需求 因为企业内部有架设私有扩展管理器的要求&#xff0c;但是对于一些官方市场的插件&#xff0c;希望可以自动获取这些扩展的更新并上传至私有扩展管理器。于是就有了本篇介绍的需求&#xff1a; 通过API的方式获取VS Code 扩展的更新。 关于…

Spring Boot集成sentinel快速入门Demo

1.什么是sentinel&#xff1f; 随着微服务的流行&#xff0c;服务和服务之间的稳定性变得越来越重要。Sentinel 是面向分布式、多语言异构化服务架构的流量治理组件&#xff0c;主要以流量为切入点&#xff0c;从流量路由、流量控制、流量整形、熔断降级、系统自适应过载保护、…

python从入门到精通:判断语句

目录 前言 1、布尔类型和比较运算符 2、if语句的基本格式 3、if else语句 4、if elif else语句 5、判断语句的嵌套 6、实战演练 前言 逻辑判断是生活中常见的行为。同样&#xff0c;在程序中&#xff0c;进行逻辑判断也是最为基础的功能。 判断是程序最基础最核心的逻辑…

远程桌面工具企业版:Splashtop Enterprise

在当今全球化和数字化的商业环境中&#xff0c;远程工作和分布式团队合作成为了新常态。企业需要一种高效、安全的远程桌面解决方案&#xff0c;能够满足不断变化的业务需求&#xff0c;同时确保数据的安全性和员工的生产力。Splashtop Enterprise 是一款为企业量身定制的远程桌…

haproxy负载均衡之-调度算法详解

HAProxy的调度算法分为静态调度算法、动态调度算法和其他调度算法静态算法&#xff1a;按照事先定义好的规则轮询公平调度&#xff0c;不关⼼后端服务器的当前负载、链接数和响应速度等&#xff0c;且⽆法实时修改权重&#xff0c;只能靠重启HAProxy⽣效。动态算法&#xff1a;…

【NI-DAQmx入门】LabVIEW数据采集基础应用程序框架

对于可管理规模的 LabVIEW 程序&#xff0c;分析现有程序或设计新程序的方法通常是从整体到具体&#xff0c;即从高级到低级的分析和设计。从一开始就直接深入细节可能会效率较低。 在设计阶段&#xff0c;开发人员首先将程序垂直划分为几个层级。从最顶层开始&#xff0c;他们…

强化学习之Actor-Critic算法(基于值函数和策略的结合)——以CartPole环境为例

0.简介 DQN算法作为基于值函数的方法代表&#xff0c;基于值函数的方法只学习一个价值函数。REINFORCE算法作为基于策略的方法代表&#xff0c;基于策略的方法只学习一个策略函数。Actor-Critic算法则结合了两种学习方法&#xff0c;其本质是基于策略的方法&#xff0c;因为其目…

element时间段选择器或时间选择器 只设置默认起始时间或者结束时间,不显示问题

element时间段选择器或时间选择器 只设置默认起始时间或者结束时间&#xff0c;不显示问题 <div v-for"(item,index) in [a,b]":key"item"><el-date-pickerv-if"b"v-model"value1[item]"type"datetimerange"value-…