Files
Forge-Engine/screens/ia/add_ia_chat_message.py
T
williamandClaude Sonnet 5 b07b231a61
Build and deploy / test-python (push) Successful in 12m24s
Build and deploy / test-js (push) Successful in 1m9s
Build and deploy / build-and-push (push) Skipped
Build and deploy / deploy (push) Skipped
Ajoute l'assistant IA "Ruby" (Claude + Scenario) et corrige plusieurs bugs de la scène
Intègre un chat IA capable de manipuler la scène via les mêmes fonctions
que l'éditeur manuel (objets, variables, déclencheurs, images générées),
avec conversations multiples par écran façon Claude. Corrige au passage
le rafraîchissement pjax hors-ordre, l'onglet IA/déclencheurs vide après
sélection d'un objet, la comparaison de booléens dans les conditions, et
le blocage du glisser-déposer hors du cadre caméra après un redimensionnement
de fond par l'IA.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-09 19:40:31 +02:00

34 lines
1.3 KiB
Python

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, conversation_id, role, content):
"""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 = 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