import db from .ensure_ia_chat_schema import ensure_ia_chat_schema _DEFAULT_TITLE = "Nouvelle conversation" _TITLE_MAX_LENGTH = 50 def add_ia_chat_message(slug: str, conversation_id: int, role: str, content: str) -> int: """Ajoute un message (role "user" ou "assistant") à une conversation — voir routes/ia/ia_chat.py, seul appelant. Titre automatique (comme claude.ai) : le premier message "user" d'une conversation encore au titre par défaut renomme la conversation avec ses ~50 premiers caractères, pour que la colonne de gauche affiche autre chose que "Nouvelle conversation" pour toutes les entrées.""" ensure_ia_chat_schema(slug) conn = db.connect(slug) conn.execute( "INSERT INTO _ia_chat_messages (conversation_id, role, content) VALUES (?, ?, ?)", (conversation_id, role, content), ) message_id = int(conn.execute("SELECT last_insert_rowid() AS id").fetchone()["id"]) if role == "user": conversation = conn.execute("SELECT title FROM _ia_conversations WHERE id = ?", (conversation_id,)).fetchone() if conversation and conversation["title"] == _DEFAULT_TITLE: title = content.strip()[:_TITLE_MAX_LENGTH] conn.execute("UPDATE _ia_conversations SET title = ? WHERE id = ?", (title, conversation_id)) conn.commit() conn.close() return message_id