OceanBase发布seekdb:适用于多模型RAG和AI代理的开源AI原生混合搜索引擎数据库
AI应用很少处理一个干净的表格。它们将用户资料、聊天记录、JSON元数据、嵌入和有时还包括空间数据混合在一起。大多数团队用OLTP数据库、向量存储和搜索引擎的一块补丁来应对这个问题。OceanBase发布了seekdb,这是一个基于Apache 2.0许可证的开放源代码AI数据库。seekdb被描述为一种AI原生搜索引擎,它统一了关系数据、向量数据、文本、JSON和GIS,在单一引擎中,并公开了混合搜索和数据库AI工作流程。
什么是seekdb?
[seekdb](https://pxllnk.co/4orh5qr)定位为OceanBase引擎的轻量级、嵌入式版本,旨在针对AI应用而不是通用分布式部署。作为一个单节点数据库,支持嵌入式模式、客户端或服务器模式,并与MySQL驱动程序和SQL语法保持兼容。
在功能矩阵中,[seekdb](https://pxllnk.co/4orh5qr)标记为:
- 支持嵌入式数据库
- 支持独立数据库
- 不支持分布式数据库
而OceanBase全产品旨在覆盖分布式情况。
从数据模型的角度来看,[seekdb](https://pxllnk.co/4orh5qr)支持:
- 标准SQL的关系数据
- 向量搜索
- 全文搜索
- JSON数据
- 空间GIS数据
所有这些都在一个存储和索引层内部完成。
混合搜索作为核心特性
OceanBase推行的核心是混合搜索。这是将基于向量的语义检索、全文关键字检索和标量过滤器结合在一个查询和一个排序步骤中的搜索。
[seekdb](https://pxllnk.co/4orh5qr)通过名为DBMS_HYBRID_SEARCH的系统包实现混合搜索,具有两个入口:
- DBMS_HYBRID_SEARCH.SEARCH,以JSON格式返回按相关性排序的结果
- DBMS_HYBRID_SEARCH.GET_SQL,返回用于执行的具体SQL字符串
混合搜索路径可以运行:
- 纯向量搜索
- 纯全文搜索
- 混合搜索
并可以将关系过滤和连接推入存储。它还支持加权分数和相互等级融合等查询重排序策略,并且可以插入基于大型语言模型的再排序器。
对于检索增强生成(RAG)和代理记忆,这意味着您可以编写一个单条SQL查询,对嵌入进行语义匹配,使用产品代码或专有名词进行精确匹配,并在用户或租户范围内进行关系过滤。
向量和全文引擎细节
在核心上,seekdb暴露了一个现代向量和全文堆栈。
对于向量,seekdb:
- 支持密集和稀疏向量
- 支持曼哈顿、欧几里得、内积和余弦距离度量
- 提供内存中索引类型,如HNSW、HNSW SQ、HNSW BQ
- 提供基于磁盘的索引类型,包括IVF和IVF PQ
混合向量索引显示您如何存储原始文本,让seekdb自动调用嵌入模型,并且系统可以维护相应的向量索引,而无需单独的预处理管道。
对于文本,seekdb提供了全文搜索,具有:
- 关键字、短语和布尔查询
- BM25排序以确定相关性
- 不同的标记器模式
关键是全文和向量索引都是一等公民,并且在同一查询计划器中与标量索引和GIS索引集成,因此混合搜索不需要外部编排。
数据库内的AI功能
[seekdb](https://pxllnk.co/4orh5qr) 包含内置的AI函数表达式,允许直接从SQL中调用模型,而无需使用单独的应用服务作为每一次调用的中介。主要功能包括:
- AI_EMBED,将文本转换为嵌入
- AI_COMPLETE,使用聊天或完成模型生成文本
- AI_RERANK,对候选列表进行重排序
AI_PROMPT,将提示模板和动态值组装成JSON对象用于AI_COMPLETE
模型元数据和端点是DBMS_AI_SERVICE包管理的,该包允许您注册外部提供者、设置URL并配置密钥,所有这些都可在数据库侧完成。
多模态数据和负载
[seekdb](https://pxllnk.co/4orh5qr)旨在处理单个节点中的多种数据模式。它有一个多模态数据和索引层,涵盖向量、文本、JSON和GIS,以及一个多模型计算层,用于跨向量、全文和标量条件混合工作负载。
它还为元数据查询提供JSON索引,为空间条件提供GIS索引。这允许查询如下:
- 找到语义相似文档
- 根据租户、区域或类别等JSON元数据进行筛选
- 根据空间范围或多边形进行约束
而无需离开同一引擎。
由于seekdb源自OceanBase引擎,它继承了ACID事务、行和列混合存储以及矢量化执行,尽管大规模分布式部署仍然是全OceanBase数据库的工作。
比较表
(图片此处省略)
关键要点
- AI原生混合搜索:seekdb在单一SQL和DBMS_HYBRID_SEARCH接口中统一了向量搜索、全文搜索和关系过滤,因此RAG和代理负载可以在一个查询中运行多信号检索,而不是拼接多个引擎。
- 单一引擎中的多模态数据:seekdb在相同引擎中存储和索引关系数据、向量、文本、JSON和GIS,这样AI应用程序可以保持文档、嵌入和元数据的一致性,而无需维护单独的数据库。
- 数据库内AI功能用于RAG:通过AI_EMBED、AI_COMPLETE、AI_RERANK和AI_PROMPT,seekdb可以直接从SQL中调用嵌入模型、LLM和再排序器,这简化了RAG管道并将更多编排逻辑移入数据库层。
- 单节点、嵌入式友好设计:seekdb是一个单节点、与MySQL兼容的引擎,支持嵌入式和独立模式,而大规模、分布式部署仍然是全OceanBase的角色,这使得seekdb适合本地、边缘和嵌入式AI工作负载。
- 开源和工具生态系统:seekdb在Apache 2.0下开源,并与不断增长的AI工具和框架生态系统集成,通过pyseekdb支持Python,以及基于MCP的集成用于代码助手和代理,因此它可以作为AI应用程序的统一数据平面。
检查Repo和Project。请随意检查我们GitHub页面中的教程、代码和笔记本。还可以随意关注我们的Twitter和别忘了加入我们的100k+ ML SubReddit以及订阅我们的Newsletter。等等!你在Telegram上吗?现在您也可以加入我们的Telegram群组。的第OceanBase Releases seekdb: An Open Source AI Native Hybrid Search Database for Multi-model RAG and AI Agents首次出现在MarkTechPost。