Настройки ИИ-ассистента#

Конфигурация ИИ-ассистента по документации DataGrid#

ИИ-ассистент настраивается в ./config/ignite-doc-assistant.yaml. Относительные пути отсчитываются от корня дистрибутива, где находится скрипт запуска.

Для корректной работы должна быть установлена Java версии 17 или выше.

Настройка провайдера моделей#

Для работы нужны чат-модель и модель эмбеддингов. Можно использовать GigaChat или провайдера с API, совместимым с OpenAI-протоколом.

Пример конфигурации провайдера с API, совместимым с OpenAI

YAML#
spring:
  ai:
    model:
      chat: openai
      embedding: openai
    openai:
      api-key: ${OPENAI_API_KEY}
      base-url: https://api.example.com
      chat:
        options:
          model: provider/chat-model
      embedding:
        options:
          model: provider/embedding-model

Пример конфигурации GigaChat

YAML#
spring:
  ai:
    model:
      chat: gigachat
      embedding: gigachat
    gigachat:
      auth:
        scope: GIGACHAT_API_PERS
        unsafe-ssl: false
        bearer:
          api-key: ${GIGACHAT_AUTH_KEY}
      base-url: https://gigachat.devices.sberbank.ru/api/v1
      chat:
        options:
          model: GigaChat-2-Max
          temperature: 0.1
          max-tokens: 10000
      embedding:
        enabled: true
        options:
          model: EmbeddingsGigaR
          dimensions: 2560

Внимание

GIGACHAT_AUTH_KEY должен содержать ключ авторизации для получения OAuth-токена, а не готовый токен доступа. Не храните ключи в конфигурационном файле: подставляйте их с помощью переменных окружения или другого принятого механизма управления секретами.

Настройка источников и RAG#

Пример настройки источников и RAG в конфигурационном файле ./config/ignite-doc-assistant.yaml:

YAML#
assistant:
  sources:
    docs-path: /opt/ign/docs
    base-url: https://platformv.sbertech.ru/docs/public/IGN/17.8.0/common
  rag:
    top-k: 8
    similarity-threshold: 0.0
    chunk-size: 160
    chunk-overlap: 20
    max-chunk-chars: 2000
    max-context-chars: 14000

Параметр

Назначение

assistant.sources.docs-path

Корневая директория распакованного дистрибутива документации

assistant.sources.base-url

Публичный HTTP(s)-адрес директории, внутри которой находится documents/

top-k

Максимальное количество найденных фрагментов

similarity-threshold

Минимальная релевантность от 0.0 до 1.0 (значение 0.0 отключает фильтрацию)

chunk-size

Целевой размер фрагмента в словах

chunk-overlap

Перекрытие соседних фрагментов в словах

max-chunk-chars

Максимальный размер фрагмента в символах

max-context-chars

Максимальный размер контекста для чат-модели в символах

После изменения модели эмбеддингов, размерности вектора (параметр dimensions задается в настройках провайдера) или параметров разбиения перестройте индекс.

Векторное хранилище#

По умолчанию используется локальное хранилище SimpleVectorStore. Индекс сохраняется в ignite-doc-assistant-vector-store.json, поэтому отдельная векторная база данных не нужна.

Для удаленного хранения можно использовать Qdrant (задается в конфигурационном файле ./config/ignite-doc-assistant.yaml):

YAML#
spring:
  ai:
    vectorstore:
      type: qdrant
      qdrant:
        host: ${QDRANT_HOST}
        port: ${QDRANT_PORT}
        api-key: ${QDRANT_API_KEY}
        collection-name: ign-docs
        initialize-schema: true

После изменения размерности вектора пересоздайте коллекцию Qdrant или укажите новое collection-name.

JVM и журналы#

JVM-параметры задаются в ./config/jvm.opts, настройки Log4j2 — в ./config/log4j2.xml.

Относительные пути в конфигурации отсчитываются от корня дистрибутива, где находится скрипт запуска.

Диагностические сообщения записываются в ./log/ignite-doc-assistant.log. Архивные журналы хранятся до 30 дней, их общий размер ограничен 100 МБ.