Приложения на основе ИИ редко работают с одной чистой таблицей. Они смешивают профили пользователей, журналы чатов, метаданные в формате JSON, вложения и иногда пространственные данные. Большинство команд отвечают на это набором из базы данных OLTP, векторного хранилища и поисковой системы.
OceanBase выпустила seekdb — базу данных с открытым исходным кодом, ориентированную на искусственный интеллект (под лицензией Apache 2.0).
Что такое seekdb?
Seekdb позиционируется как облегчённая встраиваемая версия движка OceanBase, предназначенная для приложений с ИИ, а не для распределённых развёртываний общего назначения. Она работает как одноузловая база данных, поддерживает встраиваемый режим и клиентский или серверный режим, совместима с драйверами MySQL и синтаксисом SQL.
В матрице возможностей seekdb отмечены как:
* поддерживающие встраиваемые базы данных;
* поддерживающие автономные базы данных;
* не поддерживающие распределённые базы данных (полный продукт OceanBase охватывает распределённый случай).
С точки зрения модели данных seekdb поддерживает:
* реляционные данные со стандартным SQL;
* векторный поиск;
* полнотекстовый поиск;
* данные JSON;
* пространственные ГИС-данные — всё внутри одного слоя хранения и индексации.
Гибридный поиск как основная функция
Основная функция, которую продвигает OceanBase, — это гибридный поиск. Это поиск, который объединяет векторный семантический поиск, полнотекстовый поиск по ключевым словам и скалярные фильтры в одном запросе и на одном этапе ранжирования.
Seekdb реализует гибридный поиск через системный пакет DBMSHYBRIDSEARCH с двумя точками входа:
* DBMSHYBRIDSEARCH.SEARCH, который возвращает результаты в формате JSON, отсортированные по релевантности;
* DBMSHYBRIDSEARCH.GET_SQL, который возвращает конкретную строку SQL, используемую для выполнения.
Путь гибридного поиска может работать:
* в режиме чистого векторного поиска;
* в режиме чистого полнотекстового поиска;
* в комбинированном гибридном поиске;
* поддерживает реляционные фильтры и объединения, которые могут быть перенесены в хранилище.
Также поддерживаются стратегии повторного ранжирования запросов, такие как взвешенные оценки и взаимное слияние рангов, и могут быть подключены системы на основе больших языковых моделей.
Для генерации, дополненной извлечением (RAG), и памяти агентов это означает, что вы можете написать один SQL-запрос, который выполняет семантическое сопоставление по вложениям, точное сопоставление по кодам продуктов или именам собственным и реляционную фильтрацию по пользователям или областям арендаторов.
Векторный и полнотекстовый движок: подробности
В основе seekdb лежит современный векторный и полнотекстовый стек.
Для векторов seekdb:
* поддерживает плотные и разреженные векторы;
* поддерживает метрики Манхэттена, Евклида, внутреннего произведения и косинусного расстояния;
* предоставляет типы индексов в памяти, такие как HNSW, HNSW SQ, HNSW BQ;
* предоставляет дисковые типы индексов, включая IVF и IVF PQ.
Гибридный векторный индекс показывает, как можно хранить необработанный текст, позволить seekdb автоматически вызывать модель встраивания и иметь систему для поддержки соответствующего векторного индекса без отдельного конвейера предварительной обработки.
Для текста seekdb предлагает полнотекстовый поиск с:
* ключевыми словами, фразами и логическими запросами;
* ранжированием BM25 по релевантности;
* несколькими режимами токенизации.
Ключевым моментом является то, что полнотекстовые и векторные индексы являются первоклассными и интегрированы в тот же планировщик запросов, что и скалярные индексы и ГИС-индексы, поэтому гибридному поиску не требуется внешняя оркестрация.
Функции ИИ внутри базы данных
Seekdb включает встроенные выражения функций ИИ, которые позволяют вызывать модели непосредственно из SQL, без отдельного приложения-посредника, обслуживающего каждый вызов.
Основные функции:
* AI_EMBED для преобразования текста во вложения;
* AI_COMPLETE для генерации текста с использованием чата или модели завершения;
* AI_RERANK для повторного ранжирования списка кандидатов;
* AIPROMPT для сборки шаблонов запросов и динамических значений в объект JSON для AICOMPLETE.
Метаданные модели и конечные точки управляются пакетом DBMSAISERVICE, который позволяет регистрировать внешних провайдеров, устанавливать URL-адреса и настраивать ключи на стороне базы данных.
Мультимодальные данные и рабочие нагрузки
Seekdb создан для работы с несколькими модальностями данных на одном узле. Он имеет многоуровневый слой данных и индексации, который охватывает векторы, текст, JSON и ГИС, а также многоуровневый вычислительный слой для гибридных рабочих нагрузок по векторным, полнотекстовым и скалярным условиям.
Он также предоставляет индексы JSON для запросов метаданных и ГИС-индексы для пространственных условий. Это позволяет выполнять запросы, например:
* поиск семантически похожих документов;
* фильтрацию по метаданным JSON, таким как арендатор, регион или категория;
* ограничение по пространственному диапазону или полигону — без выхода из того же движка.
Поскольку seekdb является производной от движка OceanBase, он наследует транзакции ACID, гибридное хранилище строк и столбцов и векторизованное выполнение, хотя распределённые развёртывания в большом масштабе остаются задачей для полной базы данных OceanBase.
Сравнительная таблица
Основные выводы
* Гибридный поиск на основе ИИ: seekdb объединяет векторный поиск, полнотекстовый поиск и реляционную фильтрацию в одном SQL и интерфейсе DBMSHYBRIDSEARCH, поэтому рабочие нагрузки RAG и агентов могут выполнять поиск по нескольким сигналам в одном запросе вместо объединения нескольких механизмов.
* Мультимодальные данные в одном движке: seekdb хранит и индексирует реляционные данные, векторы, текст, JSON и ГИС в одном движке, что позволяет приложениям ИИ поддерживать согласованность документов, вложений и метаданных без необходимости ведения отдельных баз данных.
* Функции ИИ в базе данных для RAG: с помощью AIEMBED, AICOMPLETE, AIRERANK и AIPROMPT seekdb может вызывать модели встраивания, LLM и системы повторного ранжирования непосредственно из SQL, что упрощает конвейеры RAG и перемещает больше логики оркестрации на уровень базы данных.
* Одноузловой, встраиваемый дизайн: seekdb — это одноузловой движок, совместимый с MySQL, который поддерживает встраиваемый и автономный режимы, в то время как распределённые крупномасштабные развёртывания остаются задачей для полного OceanBase, что делает seekdb подходящим для локальных, периферийных и встроенных рабочих нагрузок ИИ.
* Открытый исходный код и экосистема инструментов: seekdb с открытым исходным кодом под лицензией Apache 2.0 интегрируется с растущей экосистемой инструментов и фреймворков ИИ, с поддержкой Python через pyseekdb и интеграцией на основе MCP для помощников по коду и агентов, поэтому он может выступать в качестве единой плоскости данных для приложений ИИ.
1. Какие типы данных поддерживает seekdb и как это влияет на её применение в приложениях с ИИ?
Seekdb поддерживает реляционные данные со стандартным SQL, векторный поиск, полнотекстовый поиск, данные JSON и пространственные ГИС-данные. Это позволяет приложениям с ИИ работать с различными типами данных в рамках одной системы, что упрощает разработку и управление данными.
2. В чём преимущество гибридного поиска, реализованного в seekdb, по сравнению с традиционными методами поиска?
Гибридный поиск в seekdb объединяет векторный семантический поиск, полнотекстовый поиск по ключевым словам и скалярные фильтры в одном запросе и на одном этапе ранжирования. Это позволяет выполнять более сложные и точные поисковые запросы, объединяя различные типы поиска в одном SQL-запросе.
3. Какие встроенные функции ИИ предоставляет seekdb и как они могут быть использованы в приложениях с ИИ?
Seekdb включает встроенные выражения функций ИИ, такие как AIEMBED для преобразования текста во вложения, AICOMPLETE для генерации текста, AIRERANK для повторного ранжирования списка кандидатов и AIPROMPT для сборки шаблонов запросов. Эти функции позволяют вызывать модели непосредственно из SQL, что упрощает интеграцию ИИ в приложения с ИИ.
4. Какие типы индексов предоставляет seekdb для векторных и текстовых данных?
Для векторов seekdb предоставляет типы индексов в памяти, такие как HNSW, HNSW SQ, HNSW BQ, а также дисковые типы индексов, включая IVF и IVF PQ. Для текста seekdb предлагает полнотекстовый поиск с ключевыми словами, фразами и логическими запросами, ранжированием BM25 по релевантности и несколькими режимами токенизации.
5. В чём отличие seekdb от других баз данных, ориентированных на искусственный интеллект?
Seekdb отличается от других баз данных, ориентированных на искусственный интеллект, тем, что она является облегчённой встраиваемой версией движка OceanBase, предназначенной для приложений с ИИ. Она работает как одноузловая база данных, поддерживает встраиваемый режим и клиентский или серверный режим, совместима с драйверами MySQL и синтаксисом SQL. Это делает её подходящей для локальных, периферийных и встроенных рабочих нагрузок ИИ.