""" =============================================================================== FILE: modules/web_api/llm/schemas.py PROJECT: SCUD Orion AI (Unified Architecture) MODULE: web_api / llm ROLE: Декларативная схема нативных инструментов (Function Calling) для Ollama. AI-CONTEXT-ANCHORS: - ANCHOR[SCHEMA_PROMPT_EDIT]: Схема управления узлами системного промпта. - ANCHOR[SCHEMA_TASKS_EDIT]: Консолидированная схема управления задачами. - ANCHOR[SCHEMA_SNAPSHOTS]: Схема доступа к логам и срезам СКУД. =============================================================================== """ # ANCHOR[SCHEMA_PROMPT_EDIT] TOOLS_SCHEMA = [ { "type": "function", "function": { "name": "db_prompt_node_edit", "description": ( "Управление элементами системного промпта (добавление, изменение, удаление). " "Если пользователь пишет 'удали 2.9' или 'удали пункт 2.9', вызывай action='DELETE', section_id=2, item_id=9. " "Действие action может быть ADD, EDIT или DELETE." ), "parameters": { "type": "object", "properties": { "action": { "type": "string", "enum": ["ADD", "EDIT", "DELETE"], "description": "Действие: ADD (добавить), EDIT (изменить), DELETE (удалить)" }, "section_id": { "type": "integer", "description": "Номер раздела из точки (например, 2 из 2.9)" }, "item_id": { "type": "integer", "description": "Номер пункта из точки (например, 9 из 2.9)" }, "content": { "type": "string", "description": "Текст пункта (для DELETE пустая строка)" } }, "required": ["action", "section_id", "item_id"] } } }, { "type": "function", "function": { "name": "db_get_system_prompt", "description": "Просмотр текущего активного системного промпта ассистента из базы данных.", "parameters": { "type": "object", "properties": {} } } }, # ANCHOR[SCHEMA_TASKS_EDIT] { "type": "function", "function": { "name": "db_get_tasks", "description": "Просмотр реестра задач и бэклога текущего пользователя.", "parameters": { "type": "object", "properties": { "status": { "type": "string", "enum": ["ALL", "IN_PROGRESS", "PLANNED", "COMPLETED"], "description": "Опциональный фильтр статуса задач" } } } } }, { "type": "function", "function": { "name": "db_tasks_edit", "description": "Единый инструмент управления задачами: создание (ADD), изменение статуса/дедлайна (UPDATE), удаление (DELETE) и экспорт задач в Markdown-файл (EXPORT).", "parameters": { "type": "object", "properties": { "action": { "type": "string", "enum": ["ADD", "UPDATE", "DELETE", "EXPORT"], "description": "Тип действия: ADD, UPDATE, DELETE или EXPORT" }, "task_id": { "type": "string", "description": "Номер задачи (для UPDATE и DELETE, например: '35')" }, "title": { "type": "string", "description": "Описание или текст задачи" }, "status": { "type": "string", "enum": ["IN_PROGRESS", "COMPLETED", "PLANNED"], "description": "Статус задачи" }, "priority": { "type": "string", "enum": ["LOW", "MEDIUM", "HIGH", "CRITICAL"], "description": "Приоритет задачи" }, "module": { "type": "string", "description": "Модуль проекта" }, "due_date": { "type": "string", "description": "Срок в формате ГГГГ-ММ-ДД" }, "filename": { "type": "string", "description": "Имя файла для экспорта" } }, "required": ["action"] } } }, # ANCHOR[SCHEMA_SNAPSHOTS] { "type": "function", "function": { "name": "db_get_snapshots", "description": "Получение списка снапшотов и срезов логов СКУД из базы данных за конкретную дату.", "parameters": { "type": "object", "properties": { "date_str": { "type": "string", "description": "Дата в формате ДД.ММ.ГГГГ или относительное слово" } } } } }, { "type": "function", "function": { "name": "db_delete_snapshots", "description": "Удаление снапшотов СКУД по идентификатору или дате.", "parameters": { "type": "object", "properties": { "snapshot_id": { "type": "string", "description": "Идентификатор конкретного снапшота" }, "day_str": { "type": "string", "description": "Дата всех снапшотов за день" } } } } }, { "type": "function", "function": { "name": "db_get_anomalies", "description": "Просмотр истории аномалий и расхождений между СКУД и 1С.", "parameters": { "type": "object", "properties": { "date_str": { "type": "string", "description": "Опциональная дата в формате ДД.ММ.ГГГГ" }, "limit": { "type": "integer", "description": "Лимит записей" } } } } }, { "type": "function", "function": { "name": "db_get_rules", "description": "Просмотр базы знаний и правил кадрового арбитража компании.", "parameters": { "type": "object", "properties": {} } } }, { "type": "function", "function": { "name": "db_get_stats", "description": "Получение статистики количества записей в таблицах базы данных.", "parameters": { "type": "object", "properties": {} } } }, { "type": "function", "function": { "name": "db_get_current_server_time", "description": "Получение текущего точного времени сервера.", "parameters": { "type": "object", "properties": {} } } }, { "type": "function", "function": { "name": "db_get_reference", "description": "Справка о возможностях ассистента и примеры доступных команд.", "parameters": { "type": "object", "properties": { "category": { "type": "string", "description": "Категория справки" } } } } } ]