vk_chat_bot/tg/tg_database.py
Kirill Kirilenko 01de81cd3f Сохранение контекста ИИ в БД.
Имя ИИ-модели и температура задаются в конфиге.
2026-01-24 01:40:30 +03:00

49 lines
1.6 KiB
Python

import database
class TgDatabase(database.BasicDatabase):
def __init__(self, connection_string: str):
super().__init__(connection_string)
self.cursor.execute("""
CREATE TABLE IF NOT EXISTS chats (
id BIGINT NOT NULL,
active TINYINT NOT NULL DEFAULT 0,
rules VARCHAR(4000),
greeting_join VARCHAR(2000),
ai_prompt VARCHAR(4000),
PRIMARY KEY (id))
""")
self.cursor.execute("""
CREATE TABLE IF NOT EXISTS users (
chat_id BIGINT NOT NULL,
user_id BIGINT NOT NULL,
last_message BIGINT NOT NULL DEFAULT 0,
messages_today SMALLINT NOT NULL DEFAULT 0,
messages_month SMALLINT NOT NULL DEFAULT 0,
warnings TINYINT NOT NULL DEFAULT 0,
about VARCHAR(1000),
PRIMARY KEY (chat_id, user_id),
CONSTRAINT fk_users_chats FOREIGN KEY (chat_id) REFERENCES chats (id) ON UPDATE CASCADE ON DELETE CASCADE)
""")
self.cursor.execute("""
CREATE TABLE IF NOT EXISTS contexts (
chat_id BIGINT NOT NULL,
message_id BIGINT,
role VARCHAR(16) NOT NULL,
content VARCHAR(2000) NOT NULL,
UNIQUE KEY contexts_unique (chat_id, message_id),
CONSTRAINT fk_contexts_chats FOREIGN KEY (chat_id) REFERENCES chats (id) ON UPDATE CASCADE ON DELETE CASCADE)
""")
self.conn.commit()
DB: TgDatabase
def create_database(connection_string: str):
global DB
DB = TgDatabase(connection_string)