新兴的开源 AI Agent 智能体全景技术栈

新兴的开源 AI Agent 智能体全景技术栈

  • LLMs:开源大模型
  • 嵌入模型:开源嵌入模型
  • 模型的访问和部署:Ollama
  • 数据存储和检索:PostgreSQL, pgvector 和 pgai
  • 后端:FastAPI
  • 前端:NextJS
  • 缺失的一环:评估和验证
  • 创新开放获取:您将构建什么?

一套开源模型和工具,使任何开发者都能构建最先进的 AI Agent 智能体应用程序。

如果我们能回到过去,告诉软件工程师他们的应用程序将由神秘的 AI Agent 智能体驱动,我们对它的内部运作一无所知,并且他们为了体验的便利性,将最敏感的数据交给第三方,他们可能会摇头表示不相信。但现在的我们就是这样。

如今,全世界的开发者都在围绕 AI Agent 智能体重新想象他们的应用程序,而这默认意味着将专有的大语言模型(LLMs)集成到每个方面。虽然像OpenAIAnthropic 这样的专有 LLMs 点燃了 AI Agent 智能体革命,但它们也存在重大缺陷:令人望而却步的成本、数据隐私问题、供应商锁定以及缺乏可定制性。最初,为了革命性的能力而牺牲性能和控制似乎是一笔值得做的交易,但现在许多开发者希望有另一种方式。

但是革命有一种使曾经专属的东西民主化的方式。虽然最初的 AI Agent 智能体热点聚焦于专有模型,但真正的革命却是开源 LLMs 作为一种可行的替代方案,像 OpenAI 这样的专有模型一样飞速崛起。开源 AI Agent 智能体工具的创新也悄然爆发,这些工具使开发者能够利用开源 LLMs 增强的推理能力,并将其转化为有用的应用程序——从模型部署和托管工具到数据存储和检索,再到前端和后端网络框架

以下是堆栈组件如何协同工作以赋予开发者权力并重塑 AI 未来的介绍:
在这里插入图片描述
这套开源的 AI Agent 智能体工具套件将部署、隐私和性能的完全控制权交还给开发者,而且不牺牲应用程序的智能。开发者现在有了构建和部署 AI Agent 智能体解决方案的工具,无论他们想以何种方式——本地、云端或边缘计算。他们保留了对数据的100%控制权,不必担心“可信赖”的第三方可能会如何处理潜在敏感信息。这不仅仅是一个技术上的转变;这是一个文化上的转变,标志着回归开发者自主和创新的核心价值观。

这就是开源 AI Agent 智能体堆栈的承诺——一套使任何开发者都能构建最先进的 AI Agent 智能体应用程序的模型和工具。这不仅仅是一套技术;这是朝着让每个开发者都能接触创新迈出的一步。

LLMs:开源大模型

一套顶级的开源免费大语言模型(LLMs),与 OpenAIAnthropicGoogle 的专有大模型相匹敌。这些包括来自 MetaLlama 3.3Mistral 模型家族Qwen 模型家族,来自微软的 Phi 3,以及 DeepMind 的 Gemma 2
在这里插入图片描述
开源大语言模型正在民主化 AI Agent 智能体的前沿。像来自 MetaLlama 3 家族,Mistral 7BPixtral 12B,来自阿里云的 Qwen 2.5,来自微软的Phi 3,以及来自 DeepMind 的 Gemma 2 等大模型可以免费下载和使用,任何拥有足够硬件资源的开发者都可以运行这些模型。

这些开源模型与专有解决方案竞争,提供以下优势:

  • 第一、更大的数据控制权: 使用开源模型可以保持所有数据的私密性,消除对第三方的依赖,并为开发者提供更大的安全性和合规性保障。
  • 第二、具有竞争力的推理性能: 开源模型在 MMLUHumanEval MATH Reasoning 等基准测试中越来越具有竞争力,表明开源模型与专有模型在推理能力上的差距正在缩小。
  • 第三、部署的灵活性和可定制性: 您可以通过自行微调或访问公开可用的模型微调和变体,为特定用例适应模型,而无需受供应商限制。
  • 第四、小型模型的效率和可扩展性: 较小的开源模型通常需要较少的计算能力,这使得它们在成本效益上更优,且在资源受限的设备或环境中更容易部署,同时在特定任务上仍能提供强大的性能。

嵌入模型:开源嵌入模型

一套顶级的开源嵌入模型。这些包括:Nomic,来自 BAAI 的 BGESentence Transformers 家族,以及 Jina AI 的模型等。
在这里插入图片描述
向量嵌入在现代 AI Agent 智能体应用程序中非常有用。它们为搜索和 RAG(检索增强生成)功能提供支持,使 LLM 应用程序能够以更加扎实、上下文相关的答案进行响应。

就像在开源 LLMs 中一样,开源嵌入模型在与专有解决方案(比如:OpenAI 的 text-embedding-3 模型家族和 Cohere 的 embed-multilingual-v3.0)的竞争中取得了重大进展。领先的开源嵌入模型包括:

  • 第一、Sentence Transformers / SBERT: 开源嵌入模型家族,具有各种大小和专业化,从轻量级的 all-minilm 到多语言模型。
  • 第二、Nomic: Nomic Embed Text V1.5 支持可变嵌入大小(768, 512, 256, 128, 64)并在检索、相似性、聚类和分类任务上具有专长。它可以处理多达8,192个令牌的序列,并为文本和图像数据提供多模态能力。
  • 第三、BGE (BAAI): BGE(BAAI 通用嵌入)模型将文本映射到密集向量,用于检索、分类和语义搜索任务。最新的 BGE-M3 模型支持超过100种语言,并能处理多达8,192个令牌的文档。它具有多功能性(密集检索、多向量检索、稀疏检索)能力。
  • 第四、Jina AI: Jina AI 的 jina-embeddings-v3 是一个拥有5.7亿参数的模型,支持89种语言,在30种核心语言上表现出色。它具有8,192个令牌的输入长度,可配置的输出维度高达1,024,并在查询-文档检索、聚类、分类和文本匹配方面具有专业能力。

模型的访问和部署:Ollama

Ollama 已经成为开发者访问和构建开源 LLMs 和嵌入模型的首选工具
在这里插入图片描述
部署 AI Agent 智能体模型曾经就像试图从你的车库发射航天飞机一样。它需要一系列令人望而生畏的专业知识:博士团队、复杂的基础设施,以及会让大多数组织崩溃的资源。Ollama 彻底改变了游戏规则,允许开发者通过一个命令就能运行最先进的模型:

ollama run llama3.2

通过提供一个工具访问数百个 LLMs 和嵌入模型,抽象掉基础设施挑战,并简化部署流程,Ollama 将曾经看似不可逾越的事情变成了无缝且直观的过程。它赋予开发者专注于解决现实世界问题的能力,无论是在个人项目还是企业项目中,都在创新和实用性之间架起了桥梁。

借助开源模型和 Ollama 的简洁性,开发者获得了前所未有的自由,可以按照他们选择的方式部署 AI Agent 智能体。以一个案例为例:上面开源 LLMs 和嵌入模型部分提到的所有模型都可以通过 Ollama 获得!

数据存储和检索:PostgreSQL, pgvector 和 pgai

PostgreSQL,这个开源数据库及其面向 AI Agent 智能体的开源扩展生态系统,比如:pgvector 和 pgai,是希望构建 AI Agent 智能体应用程序的开发者的理想选择。
在这里插入图片描述

良好的数据和高效的检索是 AI Agent 智能体中 RAG 革命的核心,使开发者能够创建 LLM 应用程序,为用户提供高度准确、基于上下文、无幻觉的答案。

然而,最佳的 AI Agent 智能体应用程序不仅仅使用向量数据库——它们涉及非结构化、结构化以及应用数据的结合,以及在大型数据集上使用复杂过滤器进行向量搜索。这样的检索系统确保您的用户获得最相关的上下文答案,但构建它们可能很复杂,在某些情况下,可能需要多个数据库系统和自定义数据管道:

  • 您需要存储文档和其他源数据以创建要搜索的知识库。
  • 您需要一种预处理这些数据的方法,从中创建向量嵌入,并随着知识库的变化保持这些嵌入同步。
  • 您还需要能够存储和搜索向量嵌入,通常是在大规模下,并且需要在元数据和其他用户数据上应用复杂的过滤器。更不用说处理多租户、权限和访问控制、高可用性等实际关注点。

好消息是,世界上最受欢迎的数据库 PostgreSQL 正在从一个值得信赖的关系数据库转变为 支持结构化数据、非结构化数据和快速、准确的向量搜索的 AI Agent 智能体应用程序的数据层

PostgreSQL 是开源的,并且有一个开源扩展生态系统,使它成为支持 AI Agent 智能体应用程序存储和检索的首选数据库

  • 第一、向量搜索:pgvectorpgvectorscale 这样的扩展支持向量存储和相似性搜索,其性能超过了专业的向量数据库。
  • 第二、易用性:pgai 这样的扩展简化了在 PostgreSQL 中访问 LLMs 以对数据进行推理,而像 pgai Vectorizer 这样的功能使嵌入创建和同步像传统数据库索引一样直观。
  • 第三、集成和生态系统: Pgai Ollama 的支持使得轻松访问最先进的开源模型进行嵌入创建或推理变得简单。

示例:使用几行 SQL 执行语义搜索:

CREATE TABLE IF NOT EXISTS blog (            id SERIAL PRIMARY KEY,            title TEXT,            authors TEXT,            contents TEXT,            metadata JSONB );
INSERT INTO blog (title, authors, contents, metadata) VALUES ('The Future of Artificial Intelligence', 'Dr. Alan Turing', 'As we look towards the future, artificial intelligence continues to evolve...', '{"tags": ["AI", "technology", "future"], "read_time": 12, "published_date": "2024-04-01"}');
--insert more data here
--Vectorize data in the contents column using models from OllamaSELECT ai.create_vectorizer(            'blog'::regclass,            destination => 'blog_contents_embeddings',            embedding => ai.embedding_ollama('nomic-embed-text', 768),            chunking => ai.chunking_recursive_character_text_splitter('contents'));
-- Perform semantic searchSELECT            b.title,            b.contents,            be.chunk,            be.embedding <=> ai.ollama_embed('nomic-embed-text', 'What comes next in AI') as distance        FROM blog_contents_embeddings be        JOIN blog b ON b.id = be.id        ORDER BY distance        LIMIT 3;

后端:FastAPI

你的 AI Agent 智能体应用程序后端将智能模型连接到面向用户的应用程序,而 FastAPI 已经成为开发者的首选框架。它提供以下功能:
在这里插入图片描述

  • 第一、速度和简洁性: 异步编程确保了低延迟和高吞吐量。
  • 第二、开发者友好的设计: 自动 API 文档和类型提示使得快速迭代成为可能。
  • 第三、无缝集成: 非常适合实时应用程序,比如:聊天机器人、推荐引擎和预测分析。

FastAPI 消除了后端瓶颈,允许开发者轻松地将 AI Agent 智能体应用程序从原型扩展到生产。想象一下,部署一个由开源模型驱动的推荐系统。FastAPI 的异步功能确保用户请求能够即时处理,而其自动文档保持了协作的无缝性。这些特性共同将复杂的后端工作流程转变为可管理、高效的系统。

前端:NextJS

AI Agent 智能体应用的前端需要处理复杂的状态管理和动态更新,而 NextJS已经成为生产部署中首选的 React 框架
在这里插入图片描述
它提供了一系列有用的功能:

  • 第一、混合渲染: 服务器端渲染(SSR)和客户端静态渲染为每个页面提供了灵活的渲染和缓存选项。Next.js 提供了强大的服务器端功能,这对于 AI Agent 智能体应用尤其有益。框架的 SSR 有助于高效地管理计算密集型的 AI 任务,同时减轻客户端设备的负载。这在处理复杂的 AI 模型交互和数据处理时尤其重要。
  • 第二、实时流和更新: 它无缝集成各种实时解决方案,支持流畅的动态交互,这对于 AI 聊天和其他显示动态内容的 UI 特别重要。
  • 第三、与 Vercel AI SDK 集成: Vercel AI SDK(也是开源的)专为使用Next.js 创建 AI Agent 智能体应用而构建,并支持客户端和服务器端的 AI 功能。它与Ollama集成得很好,并提供了处理 AI 模型推理、流式响应和与提供商连接的实用工具。

缺失的一环:评估和验证

虽然开源 AI Agent 智能体堆栈已经成熟,但评估仍然是一个关键挑战。像LangFuseArizePhoenix 这样的项目提供了希望,但生态系统仍然缺乏一个全面的框架来测试和验证 AI 模型。这个空白代表了一个创新的机会——社区有机会定义可靠、现实世界的 AI Agent 智能体应用。
在这里插入图片描述
为什么这很重要:与传统应用不同,大语言模型(LLMs)是非确定性的,这意味着如果你在没有评估和验证的情况下部署一个 AI Agent 智能体应用,你就无法判断你的应用的表现。一个健壮的评估系统对于确保你的应用现在以及随着系统发展都能表现良好至关重要

我们应该说,鉴于开源社区在创建可观察性和监控工具方面的强大记录,我们觉得这种能力上的空白特别引人入胜。我们认为,总的来说,评估生态系统还处于起步阶段,正确的做法尚未被发现。我们怀疑当前的系统过于一刀切,低估了跨项目评估需求的多样性。需要的是一种类似于 DevOpsGitOps 革命的视角转变,这也是为什么我们特别兴奋地看到在这个领域开源驱动的创新被释放出来。

创新开放获取:您将构建什么?

开源 AI Agent 智能体堆栈不仅仅是一系列工具的集合——它是一场运动。开发者现在可以自由地构建、创新和控制他们的 AI Agent 智能体应用程序,无需担心供应商锁定或隐私问题。

通过开源 AI,您可以获得:

  • 第一、 自由部署在任何地方——本地、云端或边缘。
  • 第二、 对数据的完全控制——不与第三方共享。
  • 第三、 根据您的需求进行定制。
  • 第四、 与全球社区合作。

这不仅仅是关于技术;它是关于创造属于您的东西。无论您是部署模型、构建RAG 应用还是推出新的 AI Agent 智能体服务,开源堆栈都让您按照自己的方式去做。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

详细分析 Git 分支重命名与同步操作

目录 前言1. 场景2. 扩展知识 前言 以下小知识点作为讲解介绍&#xff0c;文章较短&#xff0c;作为科普使用 &#x1f91f; 找工作&#xff0c;来万码优才&#xff1a;&#x1f449; #小程序://万码优才/r6rqmzDaXpYkJZF 1. 场景 示例场景&#xff1a;决定将默认分支从 main…

vs2022开发.net窗体应用开发环境安装配置以及程序发布详细教程

文章目录 一、安装visual studio1.1推荐win10操作系统1.2推荐vs20221.3选择工作负载 二、新建基于.net的winform应用程序2.1为什么要.net 2.2 新建.net窗体应用2.2.1 选择Window窗体应用2.2.2 .net窗体对比framework窗体 三、发布.net应用 一、安装visual studio 1.1推荐win10…

Python基于YOLOv8和OpenCV实现车道线和车辆检测

使用YOLOv8&#xff08;You Only Look Once&#xff09;和OpenCV实现车道线和车辆检测&#xff0c;目标是创建一个可以检测道路上的车道并识别车辆的系统&#xff0c;并估计它们与摄像头的距离。该项目结合了计算机视觉技术和深度学习物体检测。 1、系统主要功能 车道检测&am…

详解Sonar与Jenkins 的集成使用!

本文阅读前提 本文假设读者熟悉Jenkins和SonarQube的基础操作。 核心实现功能 Jenkins中运行的job来调用SonarScanner&#xff0c;最后可实现测试结果与SonarQube中同步查看。 Jenkins中安装Sonar相关插件 配置Sonarqube Dashboard>Manage Jenkins>Systems 指定son…

tdengine数据库使用java连接

1 首先给你的项目添加依赖 <dependency> <groupId>com.taosdata.jdbc</groupId> <artifactId>taos-jdbcdriver</artifactId> <version>3.4.0</version> <!-- 表示依赖不会传递 --> </dependency> 注意&am…

vue3+ts+element-plus 对话框el-dialog设置圆角

对话框el-dialog设置圆角&#xff0c;实现的需求效果&#xff1a; 目前只能通过行内样式&#xff08;style"border-radius: 20px"&#xff09;来实现圆角效果&#xff1a;

Taro+Vue实现图片裁剪组件

cropper-image-taro-vue3 组件库 介绍 cropper-image-taro-vue3 是一个基于 Vue 3 和 Taro 开发的裁剪工具组件&#xff0c;支持图片裁剪、裁剪框拖动、缩放和输出裁剪后的图片。该组件适用于 Vue 3 和 Taro 环境&#xff0c;可以在网页、小程序等平台中使用。 源码 https:…

STL——二叉搜索树

目录 二叉搜索树的概念 ⼆叉搜索树的性能分析 ⼆叉搜索树的插⼊ ⼆叉搜索树的查找 ⼆叉搜索树的删除 中序遍历结果为升序序列 二叉搜索树的概念 ⼆叉搜索树⼜称⼆叉排序树&#xff0c;它或者是⼀棵空树&#xff0c;或者是具有以下性质的⼆叉树 • 若它的左⼦树不为空&#…

网络-ping包分析

-a&#xff1a;使 ping 在收到响应时发出声音&#xff08;适用于某些操作系统&#xff09;。-b&#xff1a;允许向广播地址发送 ping。-c count&#xff1a;指定发送的 ping 请求的数量。例如&#xff0c;ping -c 5 google.com 只发送 5 个请求。-i interval&#xff1a;指定两…

工厂管理中 BOM(物料清单)

工厂管理中 BOM&#xff08;物料清单&#xff09;的一些优点&#xff1a; 1. 提高生产计划准确性 - 准确反映产品所需的物料及数量&#xff0c;为生产计划提供可靠依据&#xff0c;减少因物料估算错误导致的生产延误。 2. 优化成本控制 - 有助于精确计算产品成本&…

uniapp实现在card卡片组件内为图片添加长按保存、识别二维码等功能

在原card组件的cover属性添加图片的话&#xff0c;无法在图片上面绑定 show-menu-by-longpress"true"属性&#xff0c;通过将图片自定义添加可使用该属性。 代码&#xff1a; <uni-card title"标题" padding"10px 0" :thumbnail"avata…

L1G5000 XTuner 微调个人小助手认知

使用 XTuner 微调 InternLM2-Chat-7B 实现自己的小助手认知 1 环境配置与数据准备步骤 0. 使用 conda 先构建一个 Python-3.10 的虚拟环境步骤 1. 安装 XTuner 修改提供的数据步骤 0. 创建一个新的文件夹用于存储微调数据步骤 1. 创建修改脚本步骤 2. 执行脚本步骤 3. 查看数据…

Spring——自动装配

假设一个场景&#xff1a; 一个人&#xff08;Person&#xff09;有一条狗&#xff08;Dog&#xff09;和一只猫(Cat)&#xff0c;狗和猫都会叫&#xff0c;狗叫是“汪汪”&#xff0c;猫叫是“喵喵”&#xff0c;同时人还有一个自己的名字。 将上述场景 抽象出三个实体类&…

国产信创实践(国能磐石服务器操作系统CEOS +东方通TongHttpServer)

替换介绍&#xff1a; 国能磐石服务器操作系统CEOS 对标 Linux 服务器操作系统&#xff08;Ubuntu, CentOS&#xff09; 东方通TongHttpServer 对标 Nginx 负载均衡Web服务器 第一步&#xff1a; 服务器安装CEOS映像文件&#xff0c;可直接安装&#xff0c;本文采用使用VMware …

人工智能与物联网:智慧城市的未来

引言 清晨6点&#xff0c;智能闹钟根据你的睡眠状态和天气情况&#xff0c;自动调整叫醒时间&#xff1b;窗帘缓缓打开&#xff0c;阳光洒满房间&#xff1b;厨房里的咖啡机已经为你准备好热饮&#xff0c;而无人驾驶公交车正按时抵达楼下站点。这不是科幻电影的场景&#xff…

基于 Python 自动化接口测试(踩坑与实践)

文档&#xff1a;基于 Python 的自动化接口测试 目录 背景问题描述与解决思路核心代码修改点及其详细解释最终测试结果后续优化建议 1. 问题背景 本项目旨在使用 Python 模拟浏览器的请求行为&#xff0c;测试文章分页接口的可用性。测试目标接口如下&#xff1a; bashcoder…

【LeetCode】力扣刷题热题100道(21-25题)附源码 接雨水 合并区间 字母异位词 滑动窗口 覆盖子串(C++)

目录 1.接雨水 2.合井区间 3.找到字符串中所有字母异位词 4.滑动窗口最大值 5.最小覆盖子串 1.接雨水 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图&#xff0c;计算按此排列的柱子&#xff0c;下雨之后能接多少雨水。 代码如下所示&#xff1a; class Solution {…

HTTP-响应协议

HTTP的响应过程&#xff1f; 浏览器请求数据--》web服务器过程&#xff1a;请求过程 web服务器将响应数据-》到浏览器&#xff1a;响应过程 响应数据有哪些内容&#xff1f; 1.和请求数据类似。 2. 响应体中存储着web服务器返回给浏览器的响应数据。并且注意响应头和响应体之间…

【Linux】模拟Shell命令行解释器

一、知识补充 1.1 snprintf snprintf() 是 C语言的一个标准库函数&#xff0c;定义在<stdio.h>头文件中。 snprintf() 函数的功能是格式化字符串&#xff0c;并将结果存储在指定的字符数组中。该函数的原型如下&#xff1a; int snprintf(char *str, size_t size, con…

AI多模态技术介绍:视觉语言模型(VLMs)指南

本文作者&#xff1a;AIGCmagic社区 刘一手 AI多模态全栈学习路线 在本文中&#xff0c;我们将探讨用于开发视觉语言模型&#xff08;Vision Language Models&#xff0c;以下简称VLMs&#xff09;的架构、评估策略和主流数据集&#xff0c;以及该领域的关键挑战和未来趋势。通…