НАЧАЛО >> Документация модуля AI >> Настройка и проверка модуля AI📄 Скачать в DOCX
Раздел предназначен для администратора, который впервые включает модуль AI или проверяет его после переноса конфигурации. Настройку лучше выполнять от безопасного контура к рабочему: сначала проверить схему, provider/model routing и mock/local-запросы, затем включать продуктивное выполнение и сценарии с записью черновиков.
Модуль можно передавать пользователям, когда выполнены все проверки:
AI заполнены основные выключатели, лимиты и политика данных.AIToolAudit, AIDrafts, AIAgentSessions, AIAgentSteps, AIAgentMemory, AIReviewTasks, AIEmbeddingChunks, AIToolCallCounters, AIToolConcurrencyLocks созданы через AI/EnsureSchema.AIProvider есть включенный provider для выбранного контура.AIModel есть включенная модель с нужными capabilities.AI/Diagnostics проверка конфигурации не показывает критических ошибок.ResolveModel выбирает ожидаемую модель, а остальные кандидаты имеют понятные причины отказа.AI/Ask проходит dry-run, затем дает реальный ответ в разрешенном контуре.AI/Reviews.AI/Diagnostics появляются audit-события без раскрытия секретов.Настройку выполняет пользователь с административным доступом к АРМ Администратор и правом просмотра страниц модуля AI. Для проверки пользовательских сценариев дополнительно нужны права на исходные БД, FT-записи, IMAGE-записи и целевую БД, с которыми работает сценарий.
Если проверяется локальная модель, локальный runtime должен быть запущен отдельно от ИРБИС 128. Для OpenAI-compatible runtime должен быть известен endpoint вида http://127.0.0.1:11434/v1 или аналогичный адрес в защищенной локальной сети.
AI.AIProvider, AIModel, AIPrompt и AITool.AI/SetupModuleConfigure.AI/SetupModuleConfigure безопасно повторяет базовую настройку: создает связанные модули, переносит provider/model из совместимого JSON-профиля в записи и вызывает AI/EnsureSchema.
В группе "Общие настройки AI" задайте базовый режим:
| Поле | Для чего используется | Безопасное начало |
|---|---|---|
AIEnabled |
Разрешает продуктивные runtime-запросы | Выключено для первичной диагностики, включено перед пользовательским запуском |
ExternalModelsEnabled |
Разрешает внешние provider/model | Выключено для локального контура |
WriteToolsEnabled |
Разрешает инструменты, которые готовят изменения данных | Выключено до проверки review-сценария |
TechnicalUserLogin |
Технический пользователь фоновых AI-задач | Существующий пользователь с минимальными правами |
В группе "Аварийные выключатели AI" оставьте включенными только нужные контуры. Для локального текстового запроса нужен LocalModelsEnabled. Для агентных сценариев нужен AgentsEnabled. Для сценариев с FT/RAG нужны RagEnabled и, если требуется подготовка текста, QueueToolsEnabled.
В группе "Лимиты выполнения AI" оставьте значения по умолчанию или задайте ограничения для установки. Для первой проверки важно, чтобы MaxPromptChars, MaxSystemChars и MaxTokens не блокировали тестовый короткий запрос.
В группе "Политика внешней передачи данных" для закрытого контура обычно оставляют:
DefaultDataClass: internal;AllowExternalClasses: public;DenyExternalClasses: secret, forbidden;RequireExplicitExternalApproval: включено.Если внешние модели не используются, ExternalModelsEnabled должен быть выключен. Это не мешает локальным offline-моделям.
Откройте кнопку "Поставщики 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/диска. Эти поля не запускают модель сами, но позволяют диагностике сравнить профиль с окружением.
Откройте кнопку "Модели 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 модели.
После изменения структуры или переноса конфигурации выполните AI/EnsureSchema. Операция повторяемая и безопасная: она создает или обновляет SID SQLite-хранилища модуля и записывает версию схемы в запись AI.
Если настройка выполнялась через AI/SetupModuleConfigure, AI/EnsureSchema уже вызывается автоматически. После этого откройте AI/Diagnostics и проверьте блоки "Статус" и "Проверка конфигурации".
Откройте страницу AI/Diagnostics.
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 и другие.
Откройте AI/Ask.
Сначала выполните безопасный dry-run:
AI, группа "Страница AI/Ask", задайте "Политика по умолчанию" = local_first или offline_only.AI/Ask введите короткий prompt.В результате dry-run проверьте, что маршрут найден и выбрана ожидаемая модель. Если нужен полный JSON с selection и причинами блокировок политики, временно включите настройку "Показывать технические детали" в группе "Страница AI/Ask". Модель при dry-run не вызывается.
Затем выполните реальный локальный вызов:
local_first или offline_only.AIEnabled еще выключен.AI/Ask отправьте короткий prompt.Если возвращается AI_PROVIDER_NETWORK_DISABLED, сетевой вызов не был явно разрешен. Если возвращается AI_MODEL_NOT_AVAILABLE, проверьте включение provider/model, capabilities и аварийные выключатели.
Для сценария дополнения ИМИДЖ-записи библиографическими полями откройте БД IMAGE в АРМ Каталогизатор.
Создание и пересоздание черновика выполняются через модуль 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 делает проход невалидным.
Откройте AI/Reviews тем же пользователем, который запускал стартовый сценарий. Review-задачи и AI-черновики привязаны к пользователю, поэтому другой пользователь может не увидеть задачу в своей очереди.
На странице проверки:
pending.approve, reject или correct.Вернитесь на AI/Diagnostics.
| Симптом | Что проверить |
|---|---|
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 или задача уже имеет другой статус |
| ИМИДЖ-запись не изменилась после создания черновика | Это нормально до подтверждения; в окне операции нажмите "Утвердить и записать" |