Функции ИИ#
Функции ИИ позволяют вызывать большую языковую модель (LLM) для выполнения различных текстовых задач. Поддерживаются несколько провайдеров LLM, в частности OpenAI и Anthropic напрямую, а также многие другие, такие как Llama, DeepSeek, Phi, Mistral или Gemma, через Ollama.
LLM должна быть предоставлена вне CedrusData как внешний сервис.
Конфигурация#
Поскольку функции ИИ требуют внешнего сервиса LLM, они недоступны по умолчанию. Для их включения необходимо настроить файл свойств каталога, чтобы зарегистрировать функции, вызывающие настроенную LLM, с указанным именем каталога.
Создайте файл свойств каталога etc/catalog/llm.properties, который ссылается на коннектор ai:
connector.name=ai
Функции ИИ доступны с именем схемы ai. Для приведенного примера функции используют префикс каталога и схемы llm.ai.
Чтобы не указывать полное квалифицированное имя функций, настройте свойство sql.path окружения SQL в файле config.properties,
включив префикс каталога и схемы:
sql.path=llm.ai
Можно настроить несколько каталогов для использования одних и тех же функций с разными провайдерами LLM. В этом случае функции должны вызываться по полному квалифицированному имени, а не через SQL path.
Провайдеры#
Функции ИИ вызывают внешнюю LLM. Доступ к API LLM должен быть настроен в каталоге. Производительность, результаты и стоимость всех вызовов функций ИИ зависят от провайдера LLM и используемой модели. Необходимо указать модель, подходящую для текстового анализа.
Имя свойства |
Описание |
|---|---|
|
Обязательное имя провайдера.
Должно быть |
|
URL конечной точки API Anthropic. По умолчанию |
|
Значение API-ключа для доступа к API Anthropic. Обязательно при |
|
URL конечной точки API OpenAI или Ollama. По умолчанию |
|
Значение API-ключа для доступа к API OpenAI. Обязательно при |
Функции ИИ подключаются к провайдерам по HTTP. Настройте подключение, используя префикс ai с Конфигурация HTTP-клиента.
В следующих разделах приведены минимальные конфигурации для использования Anthropic, OpenAI и Ollama.
Anthropic#
Провайдер Anthropic использует API Anthropic для выполнения функций ИИ:
ai.provider=anthropic
ai.model=claude-3-5-sonnet-latest
ai.anthropic.api-key=xxx
Используйте секреты, чтобы не указывать фактические значения API-ключей в файлах свойств каталога.
OpenAI#
Провайдер OpenAI использует API OpenAI для выполнения функций ИИ:
ai.provider=openai
ai.model=gpt-4o-mini
ai.openai.api-key=xxx
Используйте секреты, чтобы не указывать фактические значения API-ключей в файлах свойств каталога.
Ollama#
Провайдер OpenAI может использоваться с Ollama для выполнения функций ИИ, так как Ollama совместим с API OpenAI:
ai.provider=openai
ai.model=llama3.3
ai.openai.endpoint=http://localhost:11434
ai.openai.api-key=none
API-ключ должен быть указан, но игнорируется Ollama.
Ollama позволяет использовать Llama, DeepSeek, Phi, Mistral, Gemma и другие модели на собственном развертывании или через вендора.
Конфигурация модели#
Все провайдеры поддерживают несколько различных моделей. Необходимо настроить хотя бы одну модель для использования функциями ИИ. Модель должна быть пригодна для текстового анализа. Выбор провайдера и модели влияет на производительность, результаты и стоимость всех функций ИИ.
Стоимость варьируется в зависимости от используемой функции ИИ, размера внутреннего промпта, длины входных данных и длины выходных данных модели, поскольку провайдеры моделей взимают плату на основе входных и выходных токенов.
Опционально можно настроить различные модели одного и того же провайдера для каждой функции в качестве переопределения:
Имя свойства |
Описание |
|---|---|
|
Обязательное имя модели. Допустимые имена зависят от провайдера. Модель должна быть пригодна для текстового анализа. Модель используется для всех функций, если для конкретной функции не настроена отдельная модель. |
|
Необязательное переопределение для использования другой модели для |
|
Необязательное переопределение для использования другой модели для |
|
Необязательное переопределение для использования другой модели для |
|
Необязательное переопределение для использования другой модели для |
|
Необязательное переопределение для использования другой модели для |
|
Необязательное переопределение для использования другой модели для |
|
Необязательное переопределение для использования другой модели для |
Функции#
Следующие функции доступны в каждом каталоге, настроенном с коннектором ai, в схеме ai и используют настроенного провайдера LLM:
- ai_analyze_sentiment(text) varchar#
Анализирует тональность входного текста.
Результат анализа тональности:
positive,negative,neutralилиmixed.SELECT ai_analyze_sentiment('I love Trino'); -- positive
- ai_classify(text, labels) varchar#
Классифицирует входной текст в соответствии с предоставленными метками.
SELECT ai_classify('Buy now!', ARRAY['spam', 'not spam']); -- spam
- ai_extract(text, labels)#
Извлекает значения для предоставленных меток из входного текста.
SELECT ai_extract('John is 25 years old', ARRAY['name', 'age']); -- {name=John, age=25}
- ai_fix_grammar(text) varchar#
Исправляет грамматические ошибки во входном тексте.
SELECT ai_fix_grammar('I are happy. What you doing?'); -- I am happy. What are you doing?
- ai_gen(prompt) varchar#
Генерирует текст на основе входного промпта.
SELECT ai_gen('Describe Trino in a few words'); -- Distributed SQL query engine.
- ai_mask(text, labels) varchar#
Маскирует значения для предоставленных меток во входном тексте, заменяя их текстом
[MASKED].SELECT ai_mask( 'Contact me at 555-1234 or visit us at 123 Main St.', ARRAY['phone', 'address']); -- Contact me at [MASKED] or visit us at [MASKED].
- ai_translate(text, language) varchar#
Переводит входной текст на указанный язык.
SELECT ai_translate('I like coffee', 'es'); -- Me gusta el café SELECT ai_translate('I like coffee', 'zh-TW'); -- 我喜歡咖啡