105 lines
4.1 KiB
Python
105 lines
4.1 KiB
Python
"""
|
|
Скрипт инициализации таблицы tool_action_registry в SQLite БД.
|
|
"""
|
|
import os
|
|
import sys
|
|
import json
|
|
import sqlite3
|
|
|
|
BASE_DIR = os.path.abspath(os.path.join(os.path.dirname(__file__), ".."))
|
|
DB_PATH = os.path.join(BASE_DIR, "data", "scud_orion_ai.db")
|
|
|
|
def init_tool_action_registry():
|
|
conn = sqlite3.connect(DB_PATH)
|
|
cursor = conn.cursor()
|
|
|
|
# 1. Создаем таблицу
|
|
cursor.execute("""
|
|
CREATE TABLE IF NOT EXISTS tool_action_registry (
|
|
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
tool_name TEXT UNIQUE NOT NULL,
|
|
category TEXT DEFAULT 'general',
|
|
bypass_llm INTEGER DEFAULT 1,
|
|
success_template TEXT NOT NULL,
|
|
follow_up_question TEXT,
|
|
action_type TEXT DEFAULT 'BUTTONS',
|
|
buttons_json TEXT,
|
|
is_active INTEGER DEFAULT 1,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
""")
|
|
|
|
# 2. Начальное наполнение базовыми сценариями
|
|
seed_tools = [
|
|
(
|
|
"db_confirm_prompt_preview",
|
|
"prompt",
|
|
1,
|
|
"✅ Системный промпт успешно сохранен и применен в базе данных.",
|
|
"Желаете продолжить работу с системным промптом?",
|
|
"FOLLOW_UP_ACTION",
|
|
json.dumps([
|
|
{"label": "Показать промпт", "value": "покажи системный промпт"},
|
|
{"label": "Готово", "value": "нет, спасибо"}
|
|
], ensure_ascii=False)
|
|
),
|
|
(
|
|
"db_cancel_prompt_preview",
|
|
"prompt",
|
|
1,
|
|
"❌ Изменения системного промпта отменены.",
|
|
"Желаете продолжить работу с системным промптом?",
|
|
"FOLLOW_UP_ACTION",
|
|
json.dumps([
|
|
{"label": "Показать промпт", "value": "покажи системный промпт"},
|
|
{"label": "Готово", "value": "нет, спасибо"}
|
|
], ensure_ascii=False)
|
|
),
|
|
(
|
|
"db_delete_task",
|
|
"tasks",
|
|
1,
|
|
"🗑 Задача успешно удалена из вашего реестра.",
|
|
"Хотите посмотреть обновленный список задач?",
|
|
"FOLLOW_UP_ACTION",
|
|
json.dumps([
|
|
{"label": "Показать задачи", "value": "покажи список задач"},
|
|
{"label": "Готово", "value": "нет"}
|
|
], ensure_ascii=False)
|
|
),
|
|
(
|
|
"db_delete_snapshots",
|
|
"snapshots",
|
|
1,
|
|
"🗑 Выбранные снапшоты успешно удалены из базы данных.",
|
|
"Вывести актуальный список снапшотов?",
|
|
"FOLLOW_UP_ACTION",
|
|
json.dumps([
|
|
{"label": "Показать снапшоты", "value": "покажи список снапшотов"},
|
|
{"label": "Готово", "value": "нет"}
|
|
], ensure_ascii=False)
|
|
)
|
|
]
|
|
|
|
for item in seed_tools:
|
|
cursor.execute("""
|
|
INSERT INTO tool_action_registry (
|
|
tool_name, category, bypass_llm, success_template, follow_up_question, action_type, buttons_json
|
|
) VALUES (?, ?, ?, ?, ?, ?, ?)
|
|
ON CONFLICT(tool_name) DO UPDATE SET
|
|
category = excluded.category,
|
|
bypass_llm = excluded.bypass_llm,
|
|
success_template = excluded.success_template,
|
|
follow_up_question = excluded.follow_up_question,
|
|
action_type = excluded.action_type,
|
|
buttons_json = excluded.buttons_json,
|
|
updated_at = CURRENT_TIMESTAMP
|
|
""", item)
|
|
|
|
conn.commit()
|
|
conn.close()
|
|
print("[✓] Таблица tool_action_registry успешно создана и наполнена!")
|
|
|
|
if __name__ == "__main__":
|
|
init_tool_action_registry()
|