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

开源:LLMCompiler高性能工具调用框架

开源:LLMCompiler高性能工具调用框架

  • LLMCompiler
    • LLMCompiler 框架图
    • 任务提取单元
    • 使用方式
    • 参考链接

LLMCompiler

 LLMCompiler 是一种 Agent 架构,旨在通过在DAG中快速执行任务来加快 Agent 任务的执行速度。它还通过减少对 LLM 的调用次数来节省 Tokens 使用的成本。实现
灵感来自《An LLM Compiler for Parallel Function Calling》。

 这里以使用 SQL 查询数据为例,介绍该框架的核心作用。生成 SQL 执行计划的核心流程包括语法解析、语义分析、优化器介入、生成执行计划。LLMCompiler 基于用户指令执行工具调用时其实可以理解为 LLM 帮用户做了类似 SQL 生成执行计划的过程,只不过这里生成的计划是一个 DAG,DAG描述了工具之间的调用关系和参数依赖传递逻辑。

 当 Agent 需要调用大量工具时,此实现非常有用。如果您需要的工具超过 LLM 的上下文限制,您可以基于此工具扩展代理节点。将工具分为不同的
代理并组装它们以创建更强大的 LLMCompiler。另外已经有案例是在生产级应用中得到验证的,这个案例中配置了大约 60 种工具,与 Few-shot 搭配时准确率超过
90%。

LLMCompiler 框架图

LLMCompiler Frame Diagram

任务提取单元

Task Fetching Unit

使用方式

# https://github.com/crazyyanchao/llmcompiler
# 如果您对这个项目感兴趣别忘了点个`star`:) pip install llmcompiler
from llmcompiler.result.chat import ChatRequest
from llmcompiler.tools.tools import DefineTools
from langchain_openai.chat_models.base import ChatOpenAI
from llmcompiler.chat.run import RunLLMCompilerchat = ChatRequest(message="<YOUR_MESSAGE>")# tools 是基于 Langchain BaseTool 的列表。
# 默认配置仅用于演示,建议继承BaseTool来实现Tool,这样可以更好地控制一些细节。
# 对于多参数依赖,可以继承 DAGFlowParams,实现参考为`llmcompiler/tools/basetool/fund_basic.py`。 
tools = DefineTools().tools()# 支持BaseLanguageModel的实现类。
llm = ChatOpenAI(model="gpt-4o", temperature=0, max_retries=3)llm_compiler = RunLLMCompiler(chat, tools, llm)
result = llm_compiler()
print(result)# 更多使用方式可以在`issue`中讨论,后续还会继续完善文档。

参考链接

  • 论文: An LLM Compiler for Parallel Function Calling
  • 部分参考代码: LLMCompiler From Github

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • vLLM初识(一)
  • Milvus Cloud向量数据库如何实现高可用
  • 科普文:微服务之分布式链路追踪SkyWalking单点服务搭建
  • springboot给类进行赋初值的四种方式
  • MySQL的InnoDB存储引擎
  • JS输出随机数
  • 2024关于日本AI 领域TOP12 的大学介绍
  • vector的底层原理剖析及其实现
  • 【Linux】一篇总结!什么是重定向?输出重定向的作用是什么?什么又是追加重定向?
  • 『C++实战项目 负载均衡式在线OJ』一、项目介绍与效果展示(持续更新)
  • python实现图像分割算法3
  • SuccBI+低代码文档中心 — 低代码应用(SuccAP)(概论)
  • Node.js(5)——包
  • SAP项目管理基础与实践第一章完结
  • ansible,laas,pass,sass
  • 实现windows 窗体的自己画,网上摘抄的,学习了
  • 【391天】每日项目总结系列128(2018.03.03)
  • AHK 中 = 和 == 等比较运算符的用法
  • C# 免费离线人脸识别 2.0 Demo
  • CSS3 聊天气泡框以及 inherit、currentColor 关键字
  • pdf文件如何在线转换为jpg图片
  • Promise面试题2实现异步串行执行
  • Python学习笔记 字符串拼接
  • quasar-framework cnodejs社区
  • SQLServer之索引简介
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 入门级的git使用指北
  • 深入 Nginx 之配置篇
  • 微信小程序开发问题汇总
  • 因为阿里,他们成了“杭漂”
  • 运行时添加log4j2的appender
  • 正则与JS中的正则
  • 支付宝花15年解决的这个问题,顶得上做出十个支付宝 ...
  • #### golang中【堆】的使用及底层 ####
  • #Java第九次作业--输入输出流和文件操作
  • #QT(QCharts绘制曲线)
  • $.ajax()方法详解
  • (1)svelte 教程:hello world
  • (MATLAB)第五章-矩阵运算
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (附程序)AD采集中的10种经典软件滤波程序优缺点分析
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (面试必看!)锁策略
  • (七)Java对象在Hibernate持久化层的状态
  • (万字长文)Spring的核心知识尽揽其中
  • (一) storm的集群安装与配置
  • (转) Face-Resources
  • *1 计算机基础和操作系统基础及几大协议
  • ./和../以及/和~之间的区别
  • .bat批处理(十一):替换字符串中包含百分号%的子串
  • .net core 连接数据库,通过数据库生成Modell
  • .net core控制台应用程序初识
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • .net6+aspose.words导出word并转pdf