Настройка и проверка модуля AI


НАЧАЛО >> Документация модуля AI >> Настройка и проверка модуля AI📄 Скачать в DOCX


Раздел предназначен для администратора, который впервые включает модуль AI или проверяет его после переноса конфигурации. Настройку лучше выполнять от безопасного контура к рабочему: сначала проверить схему, provider/model routing и mock/local-запросы, затем включать продуктивное выполнение и сценарии с записью черновиков.

1. Что считается готовой настройкой

Модуль можно передавать пользователям, когда выполнены все проверки:

  1. В настройках модуля AI заполнены основные выключатели, лимиты и политика данных.
  2. Хранилища AIToolAudit, AIDrafts, AIAgentSessions, AIAgentSteps, AIAgentMemory, AIReviewTasks, AIEmbeddingChunks, AIToolCallCounters, AIToolConcurrencyLocks созданы через AI/EnsureSchema.
  3. В AIProvider есть включенный provider для выбранного контура.
  4. В AIModel есть включенная модель с нужными capabilities.
  5. На странице AI/Diagnostics проверка конфигурации не показывает критических ошибок.
  6. ResolveModel выбирает ожидаемую модель, а остальные кандидаты имеют понятные причины отказа.
  7. AI/Ask проходит dry-run, затем дает реальный ответ в разрешенном контуре.
  8. Сценарий, который создает AI-черновик, открывает интерфейс ручной проверки; для ИМИДЖ это окно текущей операции в АРМ Каталогизатор, для общей очереди - AI/Reviews.
  9. В AI/Diagnostics появляются audit-события без раскрытия секретов.

2. Предварительные условия

Настройку выполняет пользователь с административным доступом к АРМ Администратор и правом просмотра страниц модуля AI. Для проверки пользовательских сценариев дополнительно нужны права на исходные БД, FT-записи, IMAGE-записи и целевую БД, с которыми работает сценарий.

Если проверяется локальная модель, локальный runtime должен быть запущен отдельно от ИРБИС 128. Для OpenAI-compatible runtime должен быть известен endpoint вида http://127.0.0.1:11434/v1 или аналогичный адрес в защищенной локальной сети.

3. Шаг 1. Открыть настройки AI

  1. Откройте АРМ Администратор.
  2. Откройте настройки модуля AI.
  3. Проверьте, что в группе "Поставщики, модели, prompt-шаблоны, инструменты и секреты AI" доступны кнопки управления AIProvider, AIModel, AIPrompt и AITool.
  4. Если кнопок нет или модуль только установлен, выполните штатную настройку модуля, чтобы отработал AI/SetupModuleConfigure.

AI/SetupModuleConfigure безопасно повторяет базовую настройку: создает связанные модули, переносит provider/model из совместимого JSON-профиля в записи и вызывает AI/EnsureSchema.

4. Шаг 2. Проверить общие выключатели

В группе "Общие настройки AI" задайте базовый режим:

Поле Для чего используется Безопасное начало
AIEnabled Разрешает продуктивные runtime-запросы Выключено для первичной диагностики, включено перед пользовательским запуском
ExternalModelsEnabled Разрешает внешние provider/model Выключено для локального контура
WriteToolsEnabled Разрешает инструменты, которые готовят изменения данных Выключено до проверки review-сценария
TechnicalUserLogin Технический пользователь фоновых AI-задач Существующий пользователь с минимальными правами

В группе "Аварийные выключатели AI" оставьте включенными только нужные контуры. Для локального текстового запроса нужен LocalModelsEnabled. Для агентных сценариев нужен AgentsEnabled. Для сценариев с FT/RAG нужны RagEnabled и, если требуется подготовка текста, QueueToolsEnabled.

5. Шаг 3. Проверить лимиты и политику данных

В группе "Лимиты выполнения AI" оставьте значения по умолчанию или задайте ограничения для установки. Для первой проверки важно, чтобы MaxPromptChars, MaxSystemChars и MaxTokens не блокировали тестовый короткий запрос.

В группе "Политика внешней передачи данных" для закрытого контура обычно оставляют:

Если внешние модели не используются, ExternalModelsEnabled должен быть выключен. Это не мешает локальным offline-моделям.

6. Шаг 4. Настроить provider

Откройте кнопку "Поставщики AI". Одна запись AIPROVIDER описывает один provider.

Минимально проверьте поля:

Поле Что указать
ProviderId Стабильный идентификатор, например mock, ollama-local, local-openai-compatible
ProviderType mock или openai-compatible
ProviderEnabled Включено для рабочего provider
Endpoint URL runtime для OpenAI-compatible provider
External Выключено для локального provider
Local Включено для локального provider
Offline Включено, если provider не требует внешнего облака
CostType / CostLevel free или internal, уровень 0 для локальной проверки
Capabilities Минимально Text и JSON для AI/Ask и агентных сценариев

Для локального runtime дополнительно заполните требования CPU/GPU/RAM/VRAM/диска. Эти поля не запускают модель сами, но позволяют диагностике сравнить профиль с окружением.

7. Шаг 5. Настроить модель

Откройте кнопку "Модели AI". Одна запись AIMODEL описывает одну модель у provider.

Минимально проверьте поля:

Поле Что указать
ProviderId Тот же идентификатор, что в AIPROVIDER
ModelId Точный ID модели в runtime
ModelEnabled Включено
External Выключено для локальной модели
Local Включено для локальной модели
Offline Включено для offline-сценария
CostType / CostLevel Обычно internal и 0
MaxContext Размер контекста, если известен
Capabilities Минимально Text и JSON; остальные только если реально поддерживаются

Если provider не имеет отдельных записей AIMODEL, маршрутизатор создаст техническую модель с ID provider. Для продуктивной настройки лучше завести явные записи AIMODEL, чтобы диагностика показывала реальный ID модели.

8. Шаг 6. Инициализировать хранилища

После изменения структуры или переноса конфигурации выполните AI/EnsureSchema. Операция повторяемая и безопасная: она создает или обновляет SID SQLite-хранилища модуля и записывает версию схемы в запись AI.

Если настройка выполнялась через AI/SetupModuleConfigure, AI/EnsureSchema уже вызывается автоматически. После этого откройте AI/Diagnostics и проверьте блоки "Статус" и "Проверка конфигурации".

9. Шаг 7. Проверить provider и маршрутизацию

Откройте страницу AI/Diagnostics.

  1. В блоке "Поставщики и маршрутизация моделей" выберите provider.
  2. Нажмите "Проверить". Эта проверка не выполняет сетевой вызов и безопасна для первичной диагностики.
  3. Проверьте замаскированный список provider-профилей.
  4. В блоке "Выбор модели и fallback" выполните ResolveModel.

Базовый запрос для локальной проверки:

{
  "policy": "local_first",
  "requiredCapabilities": ["text", "json"]
}

Запрос для проверки конкретной модели:

{
  "policy": "scenario_fixed",
  "providerId": "ollama-local",
  "modelId": "llama3.1:8b",
  "requiredCapabilities": ["text", "json"]
}

В успешном ответе selection.providerId и selection.modelId должны указывать на ожидаемые provider и модель. В fallbackChain для отклоненных кандидатов должны быть понятные причины: disabled, providerMismatch, modelMismatch, missingCapability:json, externalDenied, localModelsDisabled и другие.

10. Шаг 8. Проверить текстовый запрос

Откройте AI/Ask.

Сначала выполните безопасный dry-run:

  1. В настройках модуля AI, группа "Страница AI/Ask", задайте "Политика по умолчанию" = local_first или offline_only.
  2. Включите "Диагностический режим по умолчанию", если поле "Включить модуль AI" еще выключено.
  3. Включите "Dry-run по умолчанию".
  4. На странице AI/Ask введите короткий prompt.
  5. Отправьте запрос.

В результате dry-run проверьте, что маршрут найден и выбрана ожидаемая модель. Если нужен полный JSON с selection и причинами блокировок политики, временно включите настройку "Показывать технические детали" в группе "Страница AI/Ask". Модель при dry-run не вызывается.

Затем выполните реальный локальный вызов:

  1. Оставьте "Политика по умолчанию" = local_first или offline_only.
  2. Оставьте "Диагностический режим по умолчанию" включенным, если AIEnabled еще выключен.
  3. Выключите "Dry-run по умолчанию".
  4. Для OpenAI-compatible local runtime включите "Сетевой вызов по умолчанию".
  5. На странице AI/Ask отправьте короткий prompt.

Если возвращается AI_PROVIDER_NETWORK_DISABLED, сетевой вызов не был явно разрешен. Если возвращается AI_MODEL_NOT_AVAILABLE, проверьте включение provider/model, capabilities и аварийные выключатели.

11. Шаг 9. Проверить пользовательский сценарий

Для сценария дополнения ИМИДЖ-записи библиографическими полями откройте БД IMAGE в АРМ Каталогизатор.

  1. Выберите исходную запись.
  2. Нажмите подписанную кнопку "AI-черновик" в панели действий списка.
  3. Убедитесь, что открылось ExtJS-окно текущей операции для той же БД и того же MFN.
  4. Сверьте изображения карточки, распознанный текст и предлагаемые поля.

Создание и пересоздание черновика выполняются через модуль Queue, поэтому должен быть включен QueueToolsEnabled и запущен диспетчер очереди. Кнопка сразу открывает монитор с текущим этапом AI-анализа; готовое review-окно появляется после завершения задачи. Pipeline v7 сначала согласует несколько OCR-кандидатов моделью, но сервер проверяет ссылки на исходные строки и запрещает неподтвержденные изменения чисел. Исходный и реконструированный тексты показываются отдельно, поле 22 при создании черновика не меняется. Кнопка "Утвердить и записать" в окне сначала фиксирует решение approve, затем применяет черновик после проверки владельца, права EDIT, target, версии исходной записи и idempotency key. Кнопка "Отклонить" закрывает review без записи в БД. Кнопка "Пересоздать черновик" ставит анализ с forceNew=true в новую задачу; прежний черновик остается в истории. Кнопка "Распознать повторно" доступна при установленных модулях FT и Queue: после подтверждения AI/RecognizeImageCatalog ставит FT/OCRImageCatalog в очередь, а монитор задачи по завершении запускает очередное создание черновика. OCR v2 сравнивает существующие 22/953 с многопроходным Tesseract и заменяет все повторения 22 через FieldDeleteAllOcc только при улучшении quality score; перед постановкой и перед сохранением проверяется версия записи. Для полноценной геометрии Tesseract должен создавать непустой TSV; отсутствие TSV делает проход невалидным.

12. Шаг 10. Проверить review

Откройте AI/Reviews тем же пользователем, который запускал стартовый сценарий. Review-задачи и AI-черновики привязаны к пользователю, поэтому другой пользователь может не увидеть задачу в своей очереди.

На странице проверки:

  1. Откройте задачу со статусом pending.
  2. Проверьте цель, риск, источники, diff, данные черновика и результат поиска дублей.
  3. Выберите approve, reject или correct.
  4. Для approved review сначала выполните применение в режиме "Проверить без записи в БД".
  5. Фактическую запись разрешайте только после успешного dry-run и проверки прав.

13. Шаг 11. Проверить audit и внешние передачи

Вернитесь на AI/Diagnostics.

  1. В блоке "Последние события аудита" проверьте события маршрутизации, tool pipeline, draft/review и maintenance-операций.
  2. В блоке "Отчет о внешней передаче данных" убедитесь, что закрытый локальный сценарий не создал внешних передач.
  3. Проверьте, что секреты в JSON и audit отображаются только маской.

14. Частые проблемы

Симптом Что проверить
AI_MODEL_NOT_AVAILABLE Provider/model выключены, нет нужной capability, выключен LocalModelsEnabled, задан слишком строгий providerId или modelId
В fallbackChain есть externalDenied Запрос пытается выбрать внешнюю модель без разрешения внешнего контура
В fallbackChain есть missingCapability:json У модели не включена capability JSON
AI_PROVIDER_NETWORK_DISABLED Для реального OpenAI-compatible вызова не включен флаг "сетевой вызов"
AI_EXTERNAL_DATA_POLICY_DENIED Класс данных не разрешен для внешней модели или нет явного подтверждения внешней передачи
На AI/Reviews пустая очередь Задачу создал другой пользователь, сценарий не создал review или задача уже имеет другой статус
ИМИДЖ-запись не изменилась после создания черновика Это нормально до подтверждения; в окне операции нажмите "Утвердить и записать"

15. Связанные разделы