Команда ClickHouse представила набор встроенных ИИ‑функций, которые позволяют вызывать большие языковые модели (LLM) и сервисы для создания векторных представлений непосредственно из SQL‑запросов. Теперь операции вроде классификации текста, извлечения данных, перевода или генерации можно выполнять внутри базы данных, где уже хранятся исходные данные.
Новые возможности находятся в стадии бета‑тестирования. Они появлялись постепенно в нескольких версиях ClickHouse: сначала были добавлены функции для генерации, классификации, извлечения и перевода текста, затем — создание эмбеддингов, фильтрация, скрытие персональных данных и оценка смысловой близости текстов.
ИИ‑функции вместо отдельного конвейера обработки данных
Обычно сценарий с LLM выглядит так: данные выгружаются из базы, передаются во внешний сервис или отдельный пайплайн обработки, результаты сохраняются обратно. Такой подход требует дополнительной инфраструктуры и усложняет поддержку.
В ClickHouse предлагают другой вариант: перенести модель ближе к данным. Поскольку ClickHouse уже умеет хранить данные и работать с векторами, полный цикл для задач с генерацией с дополнением контекста (RAG) можно выполнять в одной системе — без отдельной векторной базы и дополнительных слоёв оркестрации.
Например, классификацию текста теперь можно выполнить обычным SQL‑запросом:
SELECT aiClassify( 'I love this product!', ['positive', 'negative', 'neutral'] );
В ответ ClickHouse вернёт одну из заданных категорий:
positive
Какие функции доступны
В версии 26.8 доступны следующие функции для работы с текстом:
aiClassify— классифицирует текст по заданным категориям;aiExtract— извлекает структурированные данные из неструктурированного текста;aiGenerate— генерирует текст по заданному запросу;aiTranslate— переводит текст на указанный язык;aiFilter— проверяет текст по условию на естественном языке и возвращает логическое значение;aiRedact— находит и скрывает персональные данные в тексте.
Для работы с векторами добавлены:
aiEmbed— создаёт векторное представление текста;aiSimilarity— оценивает смысловое сходство двух текстов.
Функции вызывают API выбранного ИИ‑провайдера и возвращают результат в формате, который можно использовать как обычное значение ClickHouse.
Анализ данных без отдельного кода
В качестве примера разработчики использовали набор данных Hacker News с миллионами публикаций и комментариев.
С помощью aiClassify можно автоматически распределить записи по темам:
SELECT title, aiClassify( title, ['space', 'security', 'databases', 'startups', 'programming', 'other'] ) AS topic FROM hackernews;
Результат можно дальше обрабатывать обычными SQL‑операциями: группировать, фильтровать и строить агрегаты.
Раньше подобная задача обычно требовала отдельного скрипта: выгрузить данные, отправить их в модель, обработать ответ и загрузить результаты обратно. Теперь часть таких сценариев можно выполнять непосредственно в запросах ClickHouse.
RAG‑цикл внутри ClickHouse
Новые функции также позволяют реализовать основные этапы RAG‑подхода в одной системе:
Создать эмбеддинги при загрузке данных с помощью
aiEmbed().Хранить тексты и векторные представления рядом.
Индексировать данные для поиска по близости.
Выполнять поиск похожих объектов.
Передавать найденный контекст в
aiGenerate()для генерации ответа.
При этом aiSimilarity() подходит для более простых задач — например, поиска похожих документов или удаления дублей по смыслу.
Контроль расходов на запросы к моделям
В отличие от обычных функций ClickHouse, вызовы ИИ‑моделей имеют стоимость в токенах и зависят от количества обращений к внешнему сервису.
Чтобы избежать неожиданных расходов, разработчики добавили ограничения на использование ИИ‑функций:
максимальное количество входных токенов на запрос;
максимальное количество выходных токенов;
максимальное количество обращений к API модели.
Например, можно ограничить число вызовов модели:
SELECT title, aiClassify(title, ['space', 'security', 'databases']) FROM hackernews LIMIT 5000 SETTINGS ai_function_max_api_calls_per_query = 100;
Это позволяет контролировать расходы при обработке больших объёмов данных.
Что учитывать перед использованием в продакшене
Разработчики отдельно отмечают несколько ограничений:
результаты работы модели могут отличаться при повторных запусках одного и того же запроса;
стоимость и время выполнения растут вместе с количеством обрабатываемых строк;
входные данные для модели требуют осторожного обращения из‑за риска prompt injection;
провайдер модели получает данные после завершения TLS‑шифрования, поэтому важно учитывать требования безопасности.
Для рабочих сценариев рекомендуется сначала запускать запросы на небольших объёмах данных и использовать ограничения по квотам.
Новые ИИ‑функции превращают ClickHouse из аналитической базы данных в инструмент, где часть задач машинной обработки текста и работы с LLM можно выполнять прямо на уровне SQL.
Подборка бесплатных уроков по разработке, работе с ИИ и БД от преподавателей Otus на сентябрь уже доступна в дайджесте.

