Skip to main content
Функции ИИ — это встроенные функции ClickHouse, которые можно использовать для вызова ИИ или генерации эмбеддингов при работе с данными, извлечении информации, классификации данных и т. д.
Функции ИИ могут возвращать непредсказуемые результаты. Результат во многом зависит от качества промпта и используемой модели.
Все функции используют общую инфраструктуру, которая обеспечивает:

Конфигурация

Функции ИИ ссылаются на именованную коллекцию, в которой хранятся учетные данные провайдера и параметры конфигурации. Первый аргумент каждой функции — имя этой коллекции. Пример оператора для создания именованной коллекции с учетными данными провайдера:

Параметры именованной коллекции

Любой API, совместимый с OpenAI (например, vLLM, Ollama, LiteLLM), можно использовать, если задать provider = 'openai' и указать в endpoint конечную точку вашего сервиса.

Настройки на уровне запроса

Все настройки, связанные с ИИ, перечислены в разделе Настройки и имеют префикс ai_function_.

Ограничение хостов конечных точек

URL endpoint в именованной коллекции AI — это исходящий пункт назначения, к которому сервер подключается от своего имени, передавая api_key этой именованной коллекции в заголовках запроса. По умолчанию ClickHouse разрешает любой хост. Чтобы ограничить функции определённым набором провайдеров, настройте remote_url_allow_hosts в конфигурации сервера, например:
Обратите внимание, что этот параметр является общесерверным и применяется ко всем возможностям, использующим HTTP.

Поддерживаемые провайдеры

Обсервабилити

Активность функции ИИ отслеживается через ClickHouse ProfileEvents: Запросите эти события:

aiClassify

Добавленный в: v26.4.0 Классифицирует заданный текст по одной из указанных категорий с помощью провайдера LLM. Функция отправляет текст вместе с фиксированным промптом для классификации и форматом ответа в виде JSON Schema, который ограничивает модель так, чтобы она возвращала ровно одну из переданных меток. Если ответ возвращается как JSON-объект вида {"category": "..."}, метка извлекается, и функция возвращает строку этой метки. Первый аргумент — именованная коллекция, в которой указываются провайдер, модель, конечная точка и ключ API. Синтаксис
Псевдонимы: AIClassify Аргументы
  • collection — Имя именованной коллекции, содержащей учетные данные провайдера и конфигурацию. String
  • text — Текст для классификации. String
  • categories — Константный список возможных меток категорий. Array(String)
  • temperature — Температура сэмплирования, влияющая на случайность. По умолчанию: 0.0. Float64
Возвращаемое значение Одна из указанных меток категорий или значение по умолчанию для типа столбца (пустая строка), если при запросе произошла ошибка и ai_function_throw_on_error отключен. String Примеры Классификация тональности
Query
Response
Классификация столбца
Query
Response

aiExtract

Добавленный в: v26.4.0 Извлекает структурированную информацию из неструктурированного текста с помощью провайдера LLM. Третий аргумент может быть либо произвольной инструкцией на естественном языке (например, 'the main complaint'), либо JSON-кодированной схемой вида '{"field_a": "description of field a", "field_b": "description of field b"}'. В режиме инструкции функция возвращает извлечённое значение в виде обычной строки или пустую строку, если ничего не найдено. В режиме схемы функция возвращает строку с объектом JSON, ключи которого соответствуют запрошенной схеме; отсутствующие поля имеют значение null. Первый аргумент — именованная коллекция, в которой задаются провайдер, модель, конечная точка и API-ключ. Синтаксис
Псевдонимы: AIExtract Аргументы
  • collection — Имя именованной коллекции, содержащей учетные данные провайдера и конфигурацию. String
  • text — Текст, из которого нужно извлечь информацию. String
  • instruction_or_schema — Инструкция для извлечения в свободной форме или константный объект JSON, описывающий извлекаемые поля. const String
  • temperature — Температура сэмплирования, определяющая степень случайности. По умолчанию: 0.0. const Float64
Возвращаемое значение Одно извлечённое значение (режим инструкции) или строка с объектом JSON (режим схемы). Возвращает значение по умолчанию для типа столбца (пустую строку), если запрос завершился ошибкой и ai_function_throw_on_error отключён. String Примеры Инструкция в свободной форме
Query
Response
Извлечение схемы
Query
Response

aiGenerate

Добавленный в: v26.4.0 Генерирует текст произвольной формы из промпта с помощью провайдера LLM. Функция отправляет промпт настроенному провайдеру ИИ и возвращает сгенерированный текст. Чтобы задать поведение модели (например, тон, формат или роль), можно передать необязательный системный промпт. Если системный промпт не указан, по умолчанию используется: You are a helpful assistant. Provide a clear and concise response. Первый аргумент — именованная коллекция, в которой задаются провайдер, модель, конечная точка и ключ API. Синтаксис
Псевдонимы: AIGenerate Аргументы
  • collection — Имя именованной коллекции, содержащей учётные данные провайдера и конфигурацию. String
  • prompt — Промпт или вопрос пользователя, отправляемый модели. String
  • system_prompt — Необязательная постоянная системная инструкция, определяющая поведение модели (например, роль или формат вывода), которая отправляется вместе с каждым промптом. String
  • temperature — Температура сэмплирования, управляющая случайностью. Значение по умолчанию: 0.7. Float64
Возвращаемое значение Сгенерированный текстовый ответ или значение по умолчанию для типа столбца (пустая строка), если запрос завершился ошибкой и ai_function_throw_on_error отключён. String Примеры Простой вопрос
Query
Response
С системным промптом
Query
Response
Сводка значений столбца
Query
Response

aiTranslate

Добавленный в: v26.4.0 Переводит заданный текст на указанный целевой язык с помощью провайдера LLM. Дополнительные указания по стилю или диалекту можно передать в качестве четвертого аргумента (например, 'keep technical terms untranslated'). Первый аргумент — именованная коллекция, в которой указаны провайдер, модель, конечная точка и ключ API. Синтаксис
Псевдонимы: AITranslate Аргументы
  • collection — Имя именованной коллекции, содержащей учетные данные провайдера и конфигурацию. String
  • text — Текст для перевода. String
  • target_language — Имя целевого языка или код BCP-47 (например, 'French', 'es-MX'). String
  • instructions — Необязательные дополнительные инструкции для переводчика в виде константы. String
  • temperature — Температура сэмплирования, управляющая случайностью. По умолчанию: 0.3. Float64
Возвращаемое значение Переведённый текст или значение по умолчанию для типа столбца (пустая строка), если запрос завершился ошибкой и ai_function_throw_on_error отключён. String Примеры Перевод на французский
Query
Response
Переведите на японский с учетом указаний по стилю
Query
Response
Последнее изменение 12 июня 2026 г.