refactor: переход на единую БД scud_orion_ai.db и очистка init_db.py
This commit is contained in:
+27
-58
@@ -1,78 +1,47 @@
|
||||
import sqlite3
|
||||
import os
|
||||
from datetime import datetime
|
||||
import sqlite3
|
||||
|
||||
DB_NAME = "context_memory.db"
|
||||
DB_NAME = "/home/puh/scud_orion_ai_v2/data/scud_orion_ai.db"
|
||||
|
||||
def init_db():
|
||||
os.makedirs(os.path.dirname(DB_NAME), exist_ok=True)
|
||||
conn = sqlite3.connect(DB_NAME)
|
||||
cursor = conn.cursor()
|
||||
|
||||
# 1. Таблица трекинга задач
|
||||
cursor.execute("""
|
||||
CREATE TABLE IF NOT EXISTS tasks (
|
||||
task_id TEXT PRIMARY KEY,
|
||||
module TEXT NOT NULL,
|
||||
title TEXT NOT NULL,
|
||||
status TEXT NOT NULL,
|
||||
priority TEXT NOT NULL,
|
||||
completed_at TEXT
|
||||
)
|
||||
module TEXT,
|
||||
title TEXT,
|
||||
status TEXT DEFAULT 'BACKLOG',
|
||||
priority TEXT DEFAULT 'HIGH',
|
||||
due_date TEXT,
|
||||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
||||
completed_at TIMESTAMP
|
||||
);
|
||||
""")
|
||||
|
||||
# 2. Таблица архитектурных правил и контекста
|
||||
cursor.execute("""
|
||||
CREATE TABLE IF NOT EXISTS architecture_memory (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
category TEXT NOT NULL,
|
||||
rule_text TEXT NOT NULL,
|
||||
is_active INTEGER DEFAULT 1,
|
||||
created_at TEXT DEFAULT CURRENT_TIMESTAMP
|
||||
)
|
||||
CREATE TABLE IF NOT EXISTS chat_sessions (
|
||||
session_id TEXT PRIMARY KEY,
|
||||
history_json TEXT NOT NULL,
|
||||
updated_at TEXT DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
""")
|
||||
|
||||
# Первичное заполнение реестра задач [TASK-01] .. [TASK-17]
|
||||
tasks_data = [
|
||||
("TASK-01", "services/data_loader", "Исправление KeyError по ФИО в Excel экспорте 1С (переход на .iloc)", "COMPLETED", "HIGH", "2026-08-03"),
|
||||
("TASK-02", "services/zup_extractor", "Перевод подключения 1С:ЗУП на продакшн MS SQL сервер ACCOUNT-01 + гибридный фоллбэк", "COMPLETED", "HIGH", "2026-08-04"),
|
||||
("TASK-03", "services/scud_export", "Инцидент Равина В.Э.: Фиксация 100% приоритета сырых логов pLogData СКУД над расчетом УРВ Ориона", "COMPLETED", "HIGH", "2026-08-04"),
|
||||
("TASK-04", "core/database", "Реализация схемы SQLite WAL, сохранение снапшотов и маппинг колонок (department/position)", "COMPLETED", "HIGH", "2026-08-05"),
|
||||
("TASK-05", "core/database", "Исправление бага дублирования номеров снапшотов (переход на вычисление MAX() по суффиксу)", "COMPLETED", "HIGH", "2026-08-05"),
|
||||
("TASK-06", "scripts/fix_snapshots", "Создание и выполнение скрипта сквозной переиндексации снапшотов с префиксом Y", "COMPLETED", "HIGH", "2026-08-05"),
|
||||
("TASK-07", "scripts/db_cli", "Реализация CLI-инспектора БД и выравнивание номеров срезов для идеальной верстки в терминале", "COMPLETED", "HIGH", "2026-08-05"),
|
||||
("TASK-08", "main.py / logic", "Двойная проверка исключений по department_scud и 1С, удержание 100% приоритета кадровых документов", "COMPLETED", "HIGH", "2026-08-05"),
|
||||
("TASK-09", "services/text_reporter", "Лаконичный вывод неразмеченных сотрудников с короткими аббревиатурами отделов СКУД (РУК, ОИЗ, ПУ и др.)", "COMPLETED", "HIGH", "2026-08-05"),
|
||||
("TASK-10", "services/scud_export", "Внутридневной контроль: Извлечение полных цепочек проходов pLogData (входы/выходы за смену)", "BACKLOG", "HIGH", None),
|
||||
("TASK-11", "services/data_loader", "Внутридневной контроль: Расчет количества и суммарной длительности отлучек/перекуров сверх обеда", "BACKLOG", "HIGH", None),
|
||||
("TASK-12", "services/text_reporter", "Внутридневной контроль: Вывод списка системных нарушителей внутреннего распорядка в Markdown-отчет", "BACKLOG", "MEDIUM", None),
|
||||
("TASK-13", "automation", "Автоматизация сбора срезов по расписанию (Cron / Systemd Timers на 12:00, 17:00, 19:00)", "BACKLOG", "HIGH", None),
|
||||
("TASK-14", "services/notifications", "Интеграция Telegram-бота для алертов Администратору при массовых сбоях турникетов (>5%)", "BACKLOG", "MEDIUM", None),
|
||||
("TASK-15", "api / fastapi", "Создание REST API на FastAPI (/api/v1/snapshots, /api/v1/scud/logs, /api/v1/anomalies)", "BACKLOG", "HIGH", None),
|
||||
("TASK-16", "frontend / chat", "Веб-интерфейс с ИИ-чатом на базе Ollama (Qwen 2.5 14B) с поддержкой Function Calling к REST API", "BACKLOG", "HIGH", None),
|
||||
("TASK-17", "core/memory", "Создание модуля персистентной памяти проекта в SQLite и CLI-инструмента для фиксации архитектурных решений", "IN_PROGRESS", "HIGH", None),
|
||||
]
|
||||
|
||||
cursor.executemany("""
|
||||
INSERT OR REPLACE INTO tasks (task_id, module, title, status, priority, completed_at)
|
||||
VALUES (?, ?, ?, ?, ?, ?)
|
||||
""", tasks_data)
|
||||
|
||||
# Базовые правила архитектуры
|
||||
rules_data = [
|
||||
("logic_rule", "Сырые логи pLogData СКУД имееют 100% приоритет над расчетом УРВ Ориона."),
|
||||
("logic_rule", "Официальные кадровые документы 1С (отпуска, командировки, больничные) имеют абсолютный приоритет над отсутствием в СКУД."),
|
||||
("scud_override", "Запрещено переименовывать ФИО сотрудников при 100% совпадении строк между 1С и СКУД в AI-верификаторе."),
|
||||
("formatting", "Температура указывается исключительно в градусах Цельсия, скорости в км/ч.")
|
||||
]
|
||||
|
||||
cursor.executemany("""
|
||||
INSERT INTO architecture_memory (category, rule_text)
|
||||
VALUES (?, ?)
|
||||
""", rules_data)
|
||||
cursor.execute("""
|
||||
CREATE TABLE IF NOT EXISTS system_prompts (
|
||||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||||
name TEXT UNIQUE NOT NULL,
|
||||
prompt_text TEXT NOT NULL,
|
||||
is_active INTEGER DEFAULT 1,
|
||||
updated_at DATETIME DEFAULT CURRENT_TIMESTAMP
|
||||
);
|
||||
""")
|
||||
|
||||
conn.commit()
|
||||
conn.close()
|
||||
print("[✓] База данных контекста и трекинга задач успешно создана и заполнена!")
|
||||
print(f"[✓] Единая база данных SQLite ({DB_NAME}) успешно проверкой инициализирована!")
|
||||
|
||||
if __name__ == "__main__":
|
||||
init_db()
|
||||
init_db()
|
||||
|
||||
Reference in New Issue
Block a user