LLM智能体工程落地思考(二)

面向AI应用的低代码工具

笔者认为面向AI应用的低代码工具可以成为回答上一节问题的一个可选的答案。但笔者这里所说的低代码平台非前两年爆火的面向UI应用开发的工具。因为这类低代码工具理论上可以降低任何场景的开发成本而不是特指于AI Agent的应用场景。

去年伴随着LLM兴起,出现了围绕LLM应用落地的开源框架LangChain。该开发框架可以大幅提升LLM的应用落地效率。一经推出就得到了开发者的广泛关注和应用。但面对AI Agent的工程落地需求看,大量的数据整理、环境对接工作,即便使用了LangChain框架,定制开发工作量仍无法忽视。于是,去年下半年,开始陆续出现了一些以LangChain作为基础的低代码类RPA工具,如:Flowise,LangGraph以及国内最近非常火的Dify等工具。这些工具的出现,进一步降低了LLM的应用成本和搭建AI Agent的成本。通过组件拖拽,可视化的构建数据处理流程和AI的应用逻辑,可降低对实施人员的编程能力要求,使得有经验的业务人员有机会参与工程落地;可更快速的调整及测试流程的逻辑,提升实施效率。

虽然Flowise,Dify等工具已经在很大程度上降低了AI Agent的实施成本。但在笔者看来,由于AI Agent应用场景的不确定性,仍存在大量RPA类工具无法满足的潜在开发工作。比如:这类RPA工具对于文本、图片等非结构化数据有较好的支持,但对于传统的结构化数据的支持能力就显得有所不足了。而经过了近30年的IT信息化建设,绝大多数客户都拥有相当规模的存量结构化数据。这些数据也一定会纳入AI Agent的应用场景中。因此,笔者认为一款能够更好的落地AI Agent的低代码工具应该至少包括以下几个特性:

  • 全结构数据支持能力:能够同时支持结构化、半结构化以及非结构化数据的应用处理,这样才能串接各类数据并与AI Agent进行整合。这类工具从设计角度不应该是一个简单RPA工具,应该是一个数据科学工具,即应该采用类似Kettle,StreamSet等工具的技术路线,并将数据处理能力扩展到非结构化数据。这样就能够串接过去几十年的数据应用习惯并延伸至未来以AI模型应用的场景中了。
  • 数据全生命周期支持能力:具备数据从采集、存储、处理、传输、交换到销毁六个阶段的全能力支持。由于无法明确AI Agent的应用边界。因此一个能够支持数据全生命周期阶段的工具将有可能更大范围的降低AI Agent的应用成本。
  • 强大的AI模型整合能力:需要能够整合各类AI模型能力,而不仅限于LLM的整合能力。众所周知的是,LLM在自然语言方面的工作能力已经让我们大开眼界,最近多模态模型进化出的能力更是进一步让我们唏嘘不已。但我们能看到的是,每一次惊叹背后都一笔无法忽视的能源和算力消耗。而且,我们并不是每一个任务都需要动用如此巨大能力的模型来应答,反而有些时候,一些小的专用AI模型能够带来更好的性价比。比如:分词、文本分类、翻译、OCR识别、物体识别、语音转文字、文字转语音、基于业务的预测、分类、聚类等。目前HuggingFace网站上的近80万个各类AI模型是一个巨大的宝藏,整合这些AI模型的能力,能够让AI Agent变的更智能。
  • 丰富多样的数据处理扩展能力:提供丰富多样的功能扩展手段,用以支持AI Agent在工程实施时需要对接的各类外部环境及业务功能。可以方便的扩展与各类存储计算系统的对接;支持通过算子组件、脚本、Rest接口等方式扩展数据生命周期各阶段的功能支撑;支持在主流程中复用通过低代码方式编写的子流程,从而可以在工具内形成闭环的业务功能扩展能力。

HuggingFists AI 应用开发平台

HuggingFists是一款由笔者团队开发的低代码AI应用开发平台。(该平台虽不是开源的,但社区版支持免费使用,可通过Github下载,地址:https://github.com/Datayoo)。有别于现在流行的RPA类低代码平台,HuggingFists采用的是传统的数据科学工具的架构,即HuggingFists是面向数据集来处理的。因此,其天然能够兼容结构化与半结构化的数据处理场景。另外,HuggingFists在设计上剥离了文件系统与文件的捆绑结构。将其转换为了输入和读取两大类算子。因此,对于以文件形式表达的非结构化数据也有了全面的接入能力。下面笔者简单罗列下HuggingFists系统的特性:

  • 完善的数据源接入能力:能够支持数据库、文件系统、消息队列以及应用四类数据源,并可通过安装连接器插件扩展数据连接能力。提供了数据源管理界面,可对所有的数据源进行可视化浏览,方便使用者了解及简单管理数据。支持同一存储系统的不同版本的连接器,如:可同时支持ElastiSearch7和ElasticSearch8等。数据库除支持传统的关系数据库、文档数据库、数据仓库等外,围绕AI应用,还支持了向量库和图数据库。
  • 直观易用的低代码编程模式:HuggingFists采用了传统数据科学的低代码编程风格--算子(含端口)+数据连接的流程构建风格。但也有别于传统的数据科学工具,其编程风格更自由。多数情况下,HuggingFists没有对算子端口的连接数做任何限制,可自由构建算子间的数据连接关系; 流程的定义态与执行态分离,在定义态点击端口,可以清晰知道各算子间的数据流入/流出结构。该功能如同函数声明中的入参与返回定义,方便使用者知道如何使用算子;执行态执行流程后,会记录每个算子的运行时长,每个端口输入/输出数据量;为了流程调试方便,HuggingFists还提供了对流程的断点调试功能,方便使用者更方便的定位问题。此外,还提供了执行到当前算子、复制算子、为算子填写注释、多算子打包/拆包(流程复杂时,可用此功能将多个算子打包在一个容器算子中,使版面清晰)等。使用者不必担心流程的运行的效率,流程中的每个算子都以并行方式运行,可最大效率的处理流程中的数据。
  • 流程复用与对外服务:HuggingFists支持在主流程中引用一个子流程,即可以用算子编写一个类似函数的子流程,被其它流程调用。也可编写一个流程,将其配置到接口管理中,对外提供Rest风格的API调用。利用这种模式,可以使用HuggingFists系统对外提供数据访问服务。
  • 丰富的AI模型集成能力:HuggingFists是基于笔者团队早期的数据科学平台Sengee孵化出来的。项目孵化的主要成因就是为了能够使用低代码的方式访问到HuggingFace网站提供的各类模型。目前HuggingFists已经集成了HuggingFace网站的近二十种可用于自动化场景的AI任务接口,如:文本生成、文本分类、物体识别、音频转文字等。使用者可以直接使用部署在云端的HuggingFace模型,也可以将模型下载到本地,使用私有化部署的模型。除了对HuggingFace模型的支持外,HuggingFists还支持了包括OpenAI,Google,阿里,百度,腾讯在内的众多国内外厂商的云AI模型接口,方便搭建各类AI应用。
  • 完善的数据处理扩展能力:HuggingFists提供了完善的算子开发标准,依据此标准开发的算子可以通过算子库在系统中安装并应用。除此外,HuggingFists提供了Python脚本算子、Javascript算子,可通过这些算子扩展HuggingFists暂不支持的功能。最近,在将要发布的HuggingFists系统中,笔者团队扩展了数据服务功能。在该功能模块中,使用者可通过简单的配置,引入一个已经存在的外部Rest API接口。该接口可直接在流程中通过服务调用算子直接调用,进一步降低了数据处理能力的扩展成本。
  • 多样的作业调度与派发:HuggingFists提供了多种作业调度机制来满足不同应用场景的需求。其提供了即时、定时以及接口调度等不同的作业触发方式。"即时"作业表示立即执行一次作业;"定时"作业定义了作业的执行计划,定期自动化执行作业;接口调度作业可通过调度接口由外部系统调用触发作业的执行。执行作业的计算节点支持水平扩容,当算力不足时,使用者可通过扩展计算节点来扩充平台的计算能力。

除以上特性外,HuggingFists还有很多方便使用的小功能,这里不一一列举了。下面是笔者整理的一些关于HuggingFists的介绍和学习资料,欢迎有兴趣的朋友下载试用。

|----|-----------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 类型 | 内容 | URL |
| 文章 | HuggingFists系统功能介绍(系列) | https://blog.csdn.net/colorknight/article/details/136282240 |
| 文章 | 使用HuggingFists搭建LLM RAG(系列) | https://blog.csdn.net/colorknight/article/details/134744449 |
| 文章 | 使用HuggingFists构建知识图谱(系列) | https://blog.csdn.net/colorknight/article/details/135709258 |
| 文章 | 使用HuggingFists搭建图片检索系统 | https://blog.csdn.net/colorknight/article/details/135514105 |
| 文章 | 使用HuggingFists实现数据脱敏(系列) | https://blog.csdn.net/colorknight/article/details/135735793 |
| 视频 | HuggingFists系统介绍 | https://www.bilibili.com/video/BV1Gx421y7yZ/ |
| 视频 | 使用HuggingFists搭建AI Agent | https://www.bilibili.com/video/BV1o6421Z7CQ/ |
| 视频 | 如何使用LLM搭建知识图谱 | https://www.bilibili.com/video/BV1GF4m1c72y/ |
| 视频 | 使用月之暗面LLM抽取知识图谱 | https://www.bilibili.com/video/BV1Rm421n72e/ |
| 视频 | 使用ElasticSearch搭建RAG | https://www.bilibili.com/video/BV1mZ421E7ki/ |
| 视频 | LLM本地化构建知识图谱,Ollama+Neo4j | https://www.bilibili.com/video/BV1xZ421s7Lj/ |
| 视频 | HuggingFace模型应用 | https://www.bilibili.com/video/BV1Ku4y1r72H/ |
| 视频 | HuggingFace数据集应用 | https://www.bilibili.com/video/BV1G84y1m79m/ |
| 视频 | HuggingFace预训练数据集转换 | https://www.bilibili.com/video/BV12S411F7tq/ |
| 视频 | PDF文本抽取 | https://www.bilibili.com/video/BV1Tg4y1J7WV/ |
| 视频 | Visio文本抽取 | https://www.bilibili.com/video/BV19F411X7D1/ |
| 视频 | Visio关系抽取 | https://www.bilibili.com/video/BV1RN41127vt/ |
| 视频 | Word文本抽取 | https://www.bilibili.com/video/BV1qV41157HH/ |
| 视频 | Word表格抽取 | https://www.bilibili.com/video/BV1X94y1C7Bh/ |
| 视频 | Html文本抽取 | https://www.bilibili.com/video/BV1SP411W7kv/ |
| 视频 | 按块大小切分文本 | https://www.bilibili.com/video/BV1yQ4y1H7Qx/ |
| 视频 | 按段落切分文本 | https://www.bilibili.com/video/BV1Mu4y187B6/ |
| 视频 | 图片处理 | https://www.bilibili.com/video/BV1rz4y137pH/ https://www.bilibili.com/video/BV1oy4y1A7Bd/ |
| 视频 | Json数据处理 | https://www.bilibili.com/video/BV1D8411o7x6/ |
| 视频 | XML数据处理 | https://www.bilibili.com/video/BV14u411Y7Z3/ |
| 视频 | Avro数据处理 | https://www.bilibili.com/video/BV1rW4y1D7mb/ https://www.bilibili.com/video/BV1Ps4y117pS/ |
| 视频 | Excel数据处理 | https://www.bilibili.com/video/BV1jk4y1V7nK/ |
| 视频 | MySQL数据读取 | https://www.bilibili.com/video/BV138411Q7ia/ |
| 视频 | 如何断点调试 | https://www.bilibili.com/video/BV1yV4y1Q7uT/ |
| 视频 | 如何设置条件断点 | https://www.bilibili.com/video/BV1p14y1f7K3/ |
| 视频 | 如何使用流程变量 | https://www.bilibili.com/video/BV1qN4y1R7Pt/ |
| 视频 | 如何使用上下文变量 | https://www.bilibili.com/video/BV1ok4y1A7ZM/ |
| 视频 | 如何复用流程 | https://www.bilibili.com/video/BV1Rt421j7fr/ |
| 视频 | 如何完成数据库的迁移 | https://www.bilibili.com/video/BV1ft421G7Hj/ |

相关推荐
Data跳动21 分钟前
Spark内存都消耗在哪里了?
大数据·分布式·spark
woshiabc1111 小时前
windows安装Elasticsearch及增删改查操作
大数据·elasticsearch·搜索引擎
lucky_syq2 小时前
Saprk和Flink的区别
大数据·flink
lucky_syq2 小时前
流式处理,为什么Flink比Spark Streaming好?
大数据·flink·spark
袋鼠云数栈2 小时前
深入浅出Flink CEP丨如何通过Flink SQL作业动态更新Flink CEP作业
大数据
小白学大数据3 小时前
如何使用Selenium处理JavaScript动态加载的内容?
大数据·javascript·爬虫·selenium·测试工具
15年网络推广青哥3 小时前
国际抖音TikTok矩阵运营的关键要素有哪些?
大数据·人工智能·矩阵
节点。csn4 小时前
Hadoop yarn安装
大数据·hadoop·分布式
arnold664 小时前
探索 ElasticSearch:性能优化之道
大数据·elasticsearch·性能优化
NiNg_1_2345 小时前
基于Hadoop的数据清洗
大数据·hadoop·分布式