feat(db/llm/ui): настроена работа кнопок подтверждающих изменения внеcенные инструментом и финальные для выхода из инструмента и очистки сессии.
This commit is contained in:
+31
-1
@@ -18,6 +18,31 @@ from core.database import (
|
||||
|
||||
DB_PATH = os.path.join(DATA_DIR, "scud_orion_ai.db")
|
||||
|
||||
def print_tool_actions():
|
||||
"""Выводит реестр декларативных действий инструментов и шаблоны кнопок."""
|
||||
print("\n" + "=" * 110)
|
||||
print("🧰 ДЕКЛАРАТИВНЫЙ РЕЕСТР ДЕЙСТВИЙ ИНСТРУМЕНТОВ (tool_action_registry):")
|
||||
print("=" * 110)
|
||||
with get_connection() as conn:
|
||||
cursor = conn.cursor()
|
||||
cursor.execute("""
|
||||
SELECT id, tool_name, category, bypass_llm, success_template, follow_up_question, buttons_json
|
||||
FROM tool_action_registry
|
||||
WHERE is_active = 1
|
||||
ORDER BY id ASC
|
||||
""")
|
||||
rows = cursor.fetchall()
|
||||
if not rows:
|
||||
print("Таблица tool_action_registry пуста.")
|
||||
else:
|
||||
for r in rows:
|
||||
print(f"ID: {r[0]} | Tool: [{r[1]}] | Категория: {r[2]} | Bypass LLM: {'ДА (0.05с)' if r[3] else 'НЕТ'}")
|
||||
print(f" • Сообщение: {r[4]}")
|
||||
if r[5]:
|
||||
print(f" • Вопрос: {r[5]}")
|
||||
print(f" • Кнопки: {r[6]}")
|
||||
print("-" * 110)
|
||||
print("=" * 110 + "\n")
|
||||
|
||||
def print_stats():
|
||||
"""Выводит общую статистику по записям в таблицах БД."""
|
||||
@@ -255,6 +280,7 @@ def print_session_states():
|
||||
print("=" * 80 + "\n")
|
||||
|
||||
|
||||
Python
|
||||
HELP_TEXT = """
|
||||
CLI-утилита инспекции и управления SQLite базой данных СКУД (scud_orion_ai.db)
|
||||
|
||||
@@ -266,6 +292,7 @@ CLI-утилита инспекции и управления SQLite базой
|
||||
anomalies -- Посмотреть историю найденных аномалий СКУД ⟷ 1С
|
||||
rules -- Посмотреть правила Базы Знаний ИИ из SQLite
|
||||
prompts -- Посмотреть системные промпты (system_prompts)
|
||||
tools -- Посмотреть реестр действий инструментов и кнопок (tool_action_registry)
|
||||
sessions -- Посмотреть активные сессии и превью (session_states)
|
||||
dump [output.xlsx] -- Полный дамп всех таблиц БД в многостраничный Excel
|
||||
snapshot del [ID] или [--day ДД.ММ.ГГГГ] -- Удаление снапшота по ID или всех за выбранный день
|
||||
@@ -277,6 +304,7 @@ CLI-утилита инспекции и управления SQLite базой
|
||||
python scripts/db_cli.py scud --snapshot Y20260805-007
|
||||
python scripts/db_cli.py absences 07.08.2026
|
||||
python scripts/db_cli.py prompts
|
||||
python scripts/db_cli.py tools
|
||||
python scripts/db_cli.py sessions
|
||||
python scripts/db_cli.py snapshot del Y20260805-007
|
||||
python scripts/db_cli.py snapshot del --day 04.08.2026
|
||||
@@ -294,7 +322,7 @@ def main():
|
||||
formatter_class=argparse.RawDescriptionHelpFormatter,
|
||||
add_help=False
|
||||
)
|
||||
parser.add_argument('command', nargs='?', default=None, choices=['stats', 'snapshots', 'scud', 'absences', 'anomalies', 'rules', 'prompts', 'sessions', 'dump', 'snapshot'], help="Основная команда")
|
||||
parser.add_argument('command', nargs='?', default=None, choices=['stats', 'snapshots', 'scud', 'absences', 'anomalies', 'rules', 'prompts', 'sessions', 'dump', 'snapshot', 'tools'], help="Основная команда")
|
||||
parser.add_argument('action', nargs='?', default=None, help="Дополнительное действие (например, 'del')")
|
||||
parser.add_argument('param', nargs='?', default=None, help="Параметр (дата, ID снапшота или имя файла)")
|
||||
parser.add_argument('--snapshot', type=str, default=None, help="ID конкретного снапшота для инспекции")
|
||||
@@ -325,6 +353,8 @@ def main():
|
||||
print_system_prompts()
|
||||
elif args.command == 'sessions':
|
||||
print_session_states()
|
||||
elif args.command == 'tools':
|
||||
print_tool_actions()
|
||||
elif args.command == 'dump':
|
||||
filename = args.param if args.param else "db_dump_full.xlsx"
|
||||
dump_all_to_excel(filename)
|
||||
|
||||
Reference in New Issue
Block a user