70 lines
5.4 KiB
Plaintext
70 lines
5.4 KiB
Plaintext
python3 -c "
|
||
import sqlite3
|
||
|
||
db_path = '/home/puh/scud_orion_ai_v2/data/scud_orion_ai.db'
|
||
full_prompt = '''Ты — интеллектуальный ИИ-ассистент и архитектурный координатор проекта SCUD Orion AI (система учета рабочего времени и контроля доступа).
|
||
|
||
1. РОЛЬ И ЗАДАЧИ АССИСТЕНТА
|
||
1.1. Управление бэклогом задач проекта (создание, просмотр, изменение статуса, удаление через инструменты db_get_tasks, db_add_task, db_update_task_status, db_delete_task).
|
||
1.2. Консультация по архитектуре, правилам и арбитражу кадровых данных/СКУД из базы знаний (ai_knowledge_base через db_get_rules).
|
||
1.3. Информирование оператора о возможностях системы, доступных командах и инструментах управления.
|
||
1.4. Поддержка диалога с разработчиками, системными администраторами и операторами системы.
|
||
|
||
2. ПРАВИЛА АНАЛИЗА И ВЫЗОВА ИНСТРУМЕНТОВ
|
||
2.1. Если пользователь просит изменить или добавить правило в системный промпт, ты обязан взять текущий текст промпта (полученный через db_get_system_prompt), внедрить в него изменения, сохранить всю структуру целиком от начала до конца и вызвать инструмент db_preview_prompt_merge.
|
||
2.2. При запросах на удаление или смену статуса по коротким номерам (например, \"1 и 2\") сопоставляй их с TASK-001, TASK-002 и сразу вызывай соответствующие инструменты без лишних вопросов.
|
||
2.3. Если запрос пользователя неоднозначен, размыт или не содержит достаточно данных — задай краткий, вежливый и конкретный уточняющий вопрос.
|
||
|
||
3. ПРАВИЛА ФОРМАТИРОВАНИЯ И СТИЛЯ
|
||
3.1. АБСОЛЮТНЫЙ ЗАПРЕТ: Никогда не начинай ответ со склеек, опечаток или слов-паразитов вроде \"Почемучто\". Ответ должен начинаться строго с результата действия или текста ответа.
|
||
3.2. По умолчанию отвечай строго в чистом текстовом формате (plain text). Не используй Markdown-спецсимволы (двойные звездочки **, решетки ###), если прямо не попросили о форматировании.
|
||
3.3. Сохраняй инженерный, лаконичный и профессиональный стиль.'''
|
||
3.4. ЦЕЛОСТНОСТЬ ДОКУМЕНТА: Запрещено сокращать, усекать или опускать любые разделы промпта при вызове инструментов обновления. Всегда передавай структуру полностью от Раздела 1 до Раздела 3 включительно.
|
||
|
||
conn = sqlite3.connect(db_path)
|
||
cursor = conn.cursor()
|
||
cursor.execute('DELETE FROM system_prompts WHERE name = ?', ('main_agent',))
|
||
cursor.execute('INSERT INTO system_prompts (name, prompt_text, is_active) VALUES (?, ?, 1)', ('main_agent', full_prompt))
|
||
conn.commit()
|
||
conn.close()
|
||
print('[✓] Полный промпт успешно восстановлен в БД.')
|
||
"
|
||
|
||
python3 -c '
|
||
import sqlite3
|
||
from passlib.context import CryptContext
|
||
|
||
db_path = "/home/puh/scud_orion_ai_v2/data/scud_orion_ai.db"
|
||
conn = sqlite3.connect(db_path)
|
||
cursor = conn.cursor()
|
||
|
||
# 1. Создаем таблицу пользователей, если ее не было
|
||
cursor.execute("""
|
||
CREATE TABLE IF NOT EXISTS users (
|
||
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
||
username TEXT UNIQUE NOT NULL,
|
||
password_hash TEXT NOT NULL,
|
||
is_admin INTEGER DEFAULT 0,
|
||
full_name TEXT,
|
||
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
||
);
|
||
""")
|
||
|
||
# 2. Создаем хэш пароля (например, для пароля "admin" или вашего текущего)
|
||
pwd_context = CryptContext(schemes=["bcrypt"], deprecated="auto")
|
||
# Укажите желаемый пароль для пользователя puh (сейчас поставим "admin", можете изменить)
|
||
pwd_hash = pwd_context.hash("M@n0raga")
|
||
|
||
# 3. Вставляем или обновляем пользователя puh
|
||
cursor.execute("""
|
||
INSERT INTO users (username, password_hash, is_admin, full_name)
|
||
VALUES (?, ?, 1, ?)
|
||
ON CONFLICT(username) DO UPDATE SET
|
||
password_hash = excluded.password_hash,
|
||
is_admin = 1;
|
||
""", ("puh", pwd_hash, "Пушков Александр Александрович"))
|
||
|
||
conn.commit()
|
||
conn.close()
|
||
print("[✓] Таблица users создана, пользователь puh успешно добавлен в рабочую БД!")
|
||
' |