node-red-contrib-knx-ultimate 6.3.30 → 6.4.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +21 -0
- package/nodes/knxUltimateAI.html +210 -82
- package/nodes/knxUltimateAI.js +2554 -1660
- package/nodes/knxUltimateAIHomeAssistant.html +38 -0
- package/nodes/knxUltimateAIHomeAssistant.js +152 -0
- package/nodes/locales/de/knxUltimateAI.html +19 -16
- package/nodes/locales/de/knxUltimateAI.json +40 -31
- package/nodes/locales/en/knxUltimateAI.html +27 -18
- package/nodes/locales/en/knxUltimateAI.json +40 -31
- package/nodes/locales/es/knxUltimateAI.html +19 -16
- package/nodes/locales/es/knxUltimateAI.json +40 -31
- package/nodes/locales/fr/knxUltimateAI.html +19 -16
- package/nodes/locales/fr/knxUltimateAI.json +40 -31
- package/nodes/locales/it/knxUltimateAI.html +27 -18
- package/nodes/locales/it/knxUltimateAI.json +40 -31
- package/nodes/locales/zh-CN/knxUltimateAI.html +19 -16
- package/nodes/locales/zh-CN/knxUltimateAI.json +40 -31
- package/nodes/plugins/knxUltimate-cerebrum-runtime-plugin.js +79 -0
- package/nodes/plugins/knxUltimateAI-vue/assets/app.css +1 -1
- package/nodes/plugins/knxUltimateAI-vue/assets/app.js +13 -4
- package/nodes/utils/knxAiCamera.js +4 -4
- package/nodes/utils/knxAiCatalogRetrieval.js +349 -0
- package/nodes/utils/knxAiCerebrum.js +406 -0
- package/nodes/utils/knxAiChatContext.js +43 -1
- package/nodes/utils/knxAiHomeMemory.js +555 -13
- package/nodes/utils/knxAiScheduler.js +4 -1
- package/nodes/utils/knxAiSemanticContext.js +662 -0
- package/package.json +5 -3
- package/resources/KNXAIChatAdapterMappings.js +31 -5
- package/resources/hueControllerProfiles.js +7614 -7622
|
@@ -3,13 +3,15 @@
|
|
|
3
3
|
"title": "KNX AI (Traffic Analyzer)",
|
|
4
4
|
"sections": {
|
|
5
5
|
"groupAssistant": "Asistente IA",
|
|
6
|
-
"groupChatHome": "
|
|
6
|
+
"groupChatHome": "Cerebrum (BETA)",
|
|
7
7
|
"setupDoctor": "Setup Doctor",
|
|
8
8
|
"webIntelligence": "Inteligencia Web",
|
|
9
9
|
"detectedAdapters": "Nodos compatibles detectados y utilizados en el chat",
|
|
10
10
|
"chatContextOverview": "Resumen del contexto del chat",
|
|
11
11
|
"chatLearning": "Aprendizaje del chat IA",
|
|
12
|
+
"cerebrumMemory": "Memoria Cerebrum",
|
|
12
13
|
"quickSetup": "Configurar el asistente",
|
|
14
|
+
"etsAccess": "Acceso a objetos ETS",
|
|
13
15
|
"llmConnection": "Conexion del Asistente IA",
|
|
14
16
|
"chatAdapter": "Pines de entrada y salida del chat",
|
|
15
17
|
"homeIntelligence": "Educación IA y memoria",
|
|
@@ -25,20 +27,17 @@
|
|
|
25
27
|
"llmApiKey": "API key",
|
|
26
28
|
"llmModel": "Model",
|
|
27
29
|
"llmReasoningEffort": "Esfuerzo de razonamiento",
|
|
28
|
-
"
|
|
30
|
+
"llmLocalContextTokens": "Ventana de contexto local",
|
|
29
31
|
"llmSystemPrompt": "System prompt",
|
|
30
32
|
"llmIncludeRaw": "Include raw payload hex",
|
|
31
33
|
"llmAllowKnxCommands": "Permitir que la IA lea estados KNX y controle actuadores",
|
|
32
34
|
"llmRequireCommandConfirmation": "Pedir confirmación antes de enviar comandos KNX",
|
|
33
35
|
"webAccessEnabled": "Permitir que la IA use la Web",
|
|
34
|
-
"webProactiveEnabled": "Permitir comprobaciones Web proactivas",
|
|
35
|
-
"webProactiveIntervalMinutes": "Intervalo mínimo de las comprobaciones proactivas",
|
|
36
36
|
"webMaxCallsPerHour": "Máximo de llamadas Web por hora",
|
|
37
37
|
"chatAdapterPreset": "Adaptador de mensajes de entrada/salida",
|
|
38
38
|
"chatInputCode": "Mapeo de entrada (chat → KNX AI)",
|
|
39
39
|
"chatOutputCode": "Mapeo de salida (KNX AI → chat)",
|
|
40
|
-
"aiEducation": "Educación IA (gestionada por el usuario)"
|
|
41
|
-
"llmIncludeDocsSnippets": "Include documentation snippets (help/README/examples)"
|
|
40
|
+
"aiEducation": "Educación IA (gestionada por el usuario)"
|
|
42
41
|
},
|
|
43
42
|
"outputs": {
|
|
44
43
|
"summary": "Resumen/Estadísticas",
|
|
@@ -49,17 +48,11 @@
|
|
|
49
48
|
},
|
|
50
49
|
"selectlists": {
|
|
51
50
|
"llmProvider": {
|
|
52
|
-
"openai_compat": "OpenAI
|
|
51
|
+
"openai_compat": "OpenAI / compatible con OpenAI",
|
|
53
52
|
"anthropic": "Anthropic (Claude)",
|
|
54
53
|
"ollama": "Ollama (local)",
|
|
55
54
|
"lmstudio": "Bionic LM Studio"
|
|
56
55
|
},
|
|
57
|
-
"promptContext": {
|
|
58
|
-
"small": "Reducido (4K, más rápido)",
|
|
59
|
-
"medium": "Medio (8K)",
|
|
60
|
-
"full": "Completo (16K)",
|
|
61
|
-
"unlimited": "Sin límite de KNX AI (usar el contexto del modelo)"
|
|
62
|
-
},
|
|
63
56
|
"reasoningEffort": {
|
|
64
57
|
"default": "Automático (valor del modelo/proveedor)",
|
|
65
58
|
"none": "Ninguno",
|
|
@@ -70,16 +63,18 @@
|
|
|
70
63
|
"xhigh": "Muy alto",
|
|
71
64
|
"max": "Máximo"
|
|
72
65
|
},
|
|
66
|
+
"localContext": {
|
|
67
|
+
"maximum": "Máximo",
|
|
68
|
+
"k4": "4K",
|
|
69
|
+
"k8": "8K",
|
|
70
|
+
"k16": "16K",
|
|
71
|
+
"k32": "32K",
|
|
72
|
+
"k64": "64K",
|
|
73
|
+
"k128": "128K",
|
|
74
|
+
"k256": "256K"
|
|
75
|
+
},
|
|
73
76
|
"chatAdapter": {
|
|
74
77
|
"none": "Sin adaptador"
|
|
75
|
-
},
|
|
76
|
-
"webProactiveInterval": {
|
|
77
|
-
"5": "5 minutos",
|
|
78
|
-
"10": "10 minutos",
|
|
79
|
-
"15": "15 minutos",
|
|
80
|
-
"30": "30 minutos",
|
|
81
|
-
"60": "1 hora",
|
|
82
|
-
"180": "3 horas"
|
|
83
78
|
}
|
|
84
79
|
},
|
|
85
80
|
"messages": {
|
|
@@ -92,18 +87,25 @@
|
|
|
92
87
|
"setupDoctorWarn": "Revisar",
|
|
93
88
|
"setupDoctorFail": "Corregir",
|
|
94
89
|
"setupDoctorInfo": "Opcional",
|
|
95
|
-
"webAccessHint": "El modelo elige semánticamente esta herramienta Web general; no se usan palabras clave ni clasificadores de intención. Los sitios externos y el servicio de búsqueda reciben la consulta y la IP pública de este servidor. Los datos privados de KNX, cámaras, chat, memoria y credenciales nunca se añaden automáticamente.",
|
|
96
|
-
"
|
|
97
|
-
"webBudgetHint": "El presupuesto deslizante cuenta las llamadas externas reales del chat y de las comprobaciones proactivas.",
|
|
90
|
+
"webAccessHint": "El modelo elige semánticamente esta herramienta Web general para cada solicitud clara del chat o programada. Si falta un alcance esencial, pide una aclaración al usuario antes de buscar; no se usan consultas periódicas en segundo plano, palabras clave ni clasificadores de intención. Los sitios externos y el servicio de búsqueda reciben la consulta y la IP pública de este servidor. Los datos privados de KNX, cámaras, chat, memoria y credenciales nunca se añaden automáticamente.",
|
|
91
|
+
"webBudgetHint": "El presupuesto deslizante cuenta las llamadas externas reales de las conversaciones y las tareas programadas creadas por el usuario.",
|
|
98
92
|
"lmStudioContextAvailable": "Contexto máximo del modelo",
|
|
99
93
|
"lmStudioContextLoading": "Comprobando el contexto activo del modelo",
|
|
100
94
|
"lmStudioContextInactive": "Modelo inactivo; se usarán los valores predeterminados de Bionic en la primera solicitud",
|
|
101
95
|
"lmStudioContextConfigured": "Contexto activo del modelo",
|
|
102
96
|
"lmStudioContextFailed": "No se pudo configurar el contexto del modelo",
|
|
103
97
|
"lmStudioContextCurrentlyLoaded": "cargado actualmente",
|
|
104
|
-
"
|
|
105
|
-
"
|
|
98
|
+
"etsAccessHint": "Selecciona las direcciones de grupo disponibles para KNX AI. Todas las direcciones seleccionadas están activas y se pueden leer; todas las direcciones seleccionadas no marcadas como Solo lectura se pueden escribir. Los proveedores cloud reciben todo el catálogo ETS semántico seleccionado; los modelos locales reciben lo que cabe en la ventana de contexto elegida y pueden recuperar localmente los detalles que falten.",
|
|
99
|
+
"etsFilterPlaceholder": "Filtrar por nombre, GA o DPT…",
|
|
100
|
+
"etsSelected": "seleccionadas",
|
|
101
|
+
"etsReadOnly": "Solo lectura",
|
|
102
|
+
"etsReadOnlyBulk": "Solo lectura para las direcciones mostradas",
|
|
103
|
+
"etsNoGateway": "Selecciona una pasarela KNX.",
|
|
104
|
+
"etsNoGa": "No se encontraron direcciones de grupo. Importa la lista ETS en la pasarela KNX.",
|
|
105
|
+
"etsCsvError": "No se pudo cargar la lista de direcciones de grupo desde la pasarela.",
|
|
106
106
|
"reasoningEffortHint": "Preferencia opcional para los modelos que admiten esfuerzo de razonamiento. Automático no envía ninguna preferencia; si el proveedor o el modelo rechaza el valor elegido, KNX AI reintenta sin él.",
|
|
107
|
+
"localContextBudget": "Ventana de contexto local",
|
|
108
|
+
"localContextHint": "Establece el contexto máximo solo para modelos locales. Máximo usa la ventana conocida del modelo y oculta los tamaños no disponibles. Los proveedores cloud ignoran este selector y reciben todo el catálogo ETS semántico seleccionado.",
|
|
107
109
|
"ollamaNotSupported": "Ollama local mode: API key not required. Default endpoint is http://localhost:11434/api/chat.",
|
|
108
110
|
"ollamaNoModels": "No local Ollama model found. Install one or pick one from the library.",
|
|
109
111
|
"installingOllamaModel": "Starting Ollama and installing model…",
|
|
@@ -121,6 +123,7 @@
|
|
|
121
123
|
"chatContextLoading": "Cargando el resumen del contexto del chat…",
|
|
122
124
|
"chatContextUnavailable": "El resumen del contexto del chat no está disponible temporalmente.",
|
|
123
125
|
"chatLearningOpenHint": "Abre la interfaz web directamente en el editor de aprendizaje CHAT compartido para ver, editar, copiar o guardar una copia de su archivo persistente.",
|
|
126
|
+
"cerebrumMemoryOpenHint": "Abre la memoria Cerebrum legible para consultar o editar hábitos, decisiones de los ocupantes y estados de la casa.",
|
|
124
127
|
"chatContextIntro": "El chat recibe automáticamente estas fuentes. Las rutas siguientes son las que usa realmente esta instalación de Node-RED.",
|
|
125
128
|
"chatContextLimitLabel": "Contexto operativo máximo",
|
|
126
129
|
"chatContextProviderManaged": "gestionado por el proveedor/modelo seleccionado",
|
|
@@ -133,9 +136,9 @@
|
|
|
133
136
|
"chatContextSourcesTitle": "Fuentes incluidas",
|
|
134
137
|
"chatContextFilesTitle": "Archivos de contexto persistentes",
|
|
135
138
|
"chatContextDirectoriesTitle": "Archivo de telegramas KNX",
|
|
136
|
-
"chatContextSourceKnxTraffic": "
|
|
137
|
-
"chatContextSourceAdapterHistory": "
|
|
138
|
-
"chatContextSourceEtsProject": "
|
|
139
|
+
"chatContextSourceKnxTraffic": "Análisis KNX derivado y los eventos exactos más recientes del intervalo predeterminado de 20 minutos o explícito, limitados automáticamente a la ventana activa del modelo local.",
|
|
140
|
+
"chatContextSourceAdapterHistory": "Eventos exactos más recientes de adaptadores del mismo intervalo, limitados automáticamente a la ventana activa del modelo local.",
|
|
141
|
+
"chatContextSourceEtsProject": "Catálogo ETS semántico seleccionado completo para modelos cloud. Los modelos locales reciben el catálogo completo cuando cabe en la ventana; de lo contrario reciben un índice ajustado y los detalles exactos solicitados por el modelo. Código Function solo para una revisión explícita.",
|
|
139
142
|
"chatContextSourceMemoryEducation": "Contexto de sesión, Educación IA, memoria doméstica limitada y planificaciones activas.",
|
|
140
143
|
"chatContextSourceCameras": "Cámaras detectadas y sus capacidades disponibles.",
|
|
141
144
|
"chatContextSourceBadge": "Fuente",
|
|
@@ -143,7 +146,8 @@
|
|
|
143
146
|
"chatContextFileHomeMemory": "Solo memoria doméstica aprendida y limitada; la Educación IA permanece en la propiedad del nodo.",
|
|
144
147
|
"chatContextFileSchedules": "Estado de ejecución persistente y autoritativo de las planificaciones y recordatorios de este nodo.",
|
|
145
148
|
"chatContextFileSchedulesReadable": "Vista legible generada de las planificaciones y recordatorios de este nodo.",
|
|
146
|
-
"chatContextFileAssistantConfig": "Configuración persistente
|
|
149
|
+
"chatContextFileAssistantConfig": "Configuración persistente de Cerebrum y áreas semánticas de este nodo.",
|
|
150
|
+
"chatContextFileLastChatPrompt": "Copia local temporal de los últimos mensajes system y user enviados al modelo de chat; se sobrescribe en cada solicitud.",
|
|
147
151
|
"chatContextFileBadge": "Archivo",
|
|
148
152
|
"chatContextDirectoryRoot": "Raíz del archivo de telegramas",
|
|
149
153
|
"chatContextDirectoryNode": "Archivo de telegramas de este nodo",
|
|
@@ -216,7 +220,12 @@
|
|
|
216
220
|
"installOllamaModel": "2) Install it",
|
|
217
221
|
"ollamaLibrary": "Model library",
|
|
218
222
|
"downloadOllamaModel": "1) Download model",
|
|
219
|
-
"openChatLearning": "Abrir aprendizaje del chat IA"
|
|
223
|
+
"openChatLearning": "Abrir aprendizaje del chat IA",
|
|
224
|
+
"openCerebrumMemory": "Abrir memoria Cerebrum",
|
|
225
|
+
"etsSelectAll": "Seleccionar todo",
|
|
226
|
+
"etsSelectNone": "Deseleccionar todo",
|
|
227
|
+
"etsReadOnlyAll": "Marcar solo lectura",
|
|
228
|
+
"etsReadOnlyNone": "Quitar solo lectura"
|
|
220
229
|
}
|
|
221
230
|
}
|
|
222
231
|
}
|
|
@@ -20,9 +20,9 @@ L'inventaire indique le nombre exact de signaux KNX à adresse de groupe unique,
|
|
|
20
20
|
Envoyez `/start` ou `/help` depuis un chat pour recevoir sur la sortie chat (sortie 3) un accueil déterministe et localisé, avec des statistiques personnalisées de l'installation et jusqu'à trois suggestions sûres. Cet onboarding n'appelle pas le LLM, ne lit ni n'écrit KNX et ne génère aucun TTS. Avec le préréglage Telegram, les suggestions apparaissent sous forme de boutons du clavier de réponse et ne sont exécutées qu'après la sélection ou l'envoi explicite de l'une d'elles par l'utilisateur. Après cette sélection explicite, une suggestion de démarrage peut effectuer des lectures KNX exactes si nécessaire ; les écritures et routines KNX, les actions de caméra, le TTS, les modifications de la mémoire persistante et l'apprentissage des rôles GA restent bloqués.
|
|
21
21
|
|
|
22
22
|
### Intelligence Web
|
|
23
|
-
L'accès Web est désactivé par défaut. Lorsque **Autoriser l'IA à utiliser le Web** est activé, le modèle conversationnel
|
|
23
|
+
L'accès Web est désactivé par défaut. Lorsque **Autoriser l'IA à utiliser le Web** est activé, le modèle conversationnel décide pour chaque demande courante si des informations publiques à jour sont nécessaires et peut choisir l'outil Web structuré sans mot-clé, logique propre à un sujet ni classificateur d'intention. Chaque demande utilisateur ou exécution d'une tâche planifiée créée par l'utilisateur peut effectuer au maximum trois opérations Web au total. Toutes les opérations Web externes réelles partagent le budget horaire glissant configuré.
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
KNX AI ne démarre aucun cycle fixe de polling Web en arrière-plan. Si un détail essentiel modifierait sensiblement la réponse ou la requête—par exemple le sujet, la portée, le lieu, la période ou le résultat attendu—le modèle pose une seule question concise et n'effectue aucune opération Web avant la réponse de l'utilisateur. Les vérifications futures ou récurrentes sont créées uniquement à partir d'une demande explicite en langage naturel via le planificateur.
|
|
26
26
|
|
|
27
27
|
Toute réponse fondée sur le Web contient des citations validées par le runtime, avec une URL source assainie et l'heure de consultation, ainsi que l'heure de publication lorsqu'elle est disponible. Le contenu externe est une donnée non fiable, jamais une instruction, et ne peut remplacer les règles ou autorisations de l'assistant. Seules des ressources HTTPS publiques et limitées sont acceptées ; les destinations privées, locales, link-local et de métadonnées cloud, les redirections non sûres, la navigation authentifiée et les cookies sont bloqués. Si aucune source ne peut être vérifiée, KNX AI signale cette limite au lieu de générer une réponse sans source.
|
|
28
28
|
|
|
@@ -51,7 +51,12 @@ Si le traitement dure plus de 1,2 seconde, la sortie 3 émet immédiatement le m
|
|
|
51
51
|
|
|
52
52
|
Chaque requête de chat LLM utilise un délai d’attente minimal de 30 minutes, indépendamment du fournisseur. Aucun champ de délai n’est à gérer dans l’éditeur. Il s’agit d’une attente maximale, et non d’un délai artificiel : les modèles plus rapides terminent toujours dès que leur réponse est prête. Si même cette limite est atteinte, KNX AI indique que le modèle n’a pas terminé et conseille de réessayer ou de réduire le contexte du prompt.
|
|
53
53
|
|
|
54
|
-
|
|
54
|
+
KNX AI ne propose plus de sélecteur applicatif pour la taille du contexte. Le catalogue ETS sélectionné complet reste dans le nœud et le modèle l’interroge via des actions de retrieval local limitées ; seuls les objets récupérés entrent dans le prompt. La recherche couvre les adresses exactes, noms ETS, alias, hiérarchie, zones, sémantique, DPT et libellés de valeurs, avec un classement insensible aux accents et tolérant aux fautes, ainsi que la consultation exacte, la navigation par zone et la découverte des couples commande/état. Sans intervalle explicite, les événements KNX et adaptateurs couvrent les 20 dernières minutes. L’aide, le README, le wiki, les exemples et le changelog fournis ne sont jamais intégrés ; si nécessaire, le modèle peut consulter la documentation GitHub publique via l’outil Web. Les données ETS récupérées, la requête courante et les lignes d’archive n’apparaissent qu’une fois ; le bloc d’analyse ne conserve que les agrégats dérivés du bus. Le source Function complet n’est ajouté que pour une demande explicite de revue de code Function. KNX AI ne réessaie pas une requête trop volumineuse en compactant le prompt.
|
|
55
|
+
|
|
56
|
+
Avant chaque requête à un modèle local, KNX AI réserve de la place pour la réponse dans la fenêtre active de 8K/16K. Il limite automatiquement les tours de conversation les plus récents, les lignes exactes des archives, la mémoire apprise de la maison, les résultats Web, les planifications, le source Function demandé, les objets ETS récupérés et les métadonnées des caméras. Il s’agit d’une construction préventive du prompt, et non d’une nouvelle tentative après une erreur de taille ; le catalogue ETS sélectionné complet reste disponible localement par retrieval.
|
|
57
|
+
|
|
58
|
+
### Accès aux objets ETS
|
|
59
|
+
Cette section reprend le sélecteur d’adresses de groupe du profil MQTT d’IoT Bridge. Filtrez la liste importée, sélectionnez tout ou rien et appliquez la lecture seule aux adresses visibles en bloc ou ligne par ligne. Seules les adresses sélectionnées sont accessibles au modèle. Toute adresse sélectionnée est active et lisible ; les adresses en lecture seule restent visibles, mais la validation locale refuse tout `GroupValue_Write` vers elles. Il n’existe ni migration ni repli hérité : après la mise à jour, ouvrez chaque nœud KNX AI existant, enregistrez sa sélection explicite et déployez ; jusque-là, son catalogue IA est vide.
|
|
55
60
|
|
|
56
61
|
L’état du nœud sur le canvas est volontairement réservé à la dernière demande reçue et au message localisé « Je réfléchis… » pendant l’exécution du LLM. Les télégrammes KNX, mises à jour de la passerelle, débits de trafic, messages ready et résultats techniques ne l’écrasent jamais ; ils restent disponibles via les sorties, les journaux et les données de l’Assistant.
|
|
57
62
|
|
|
@@ -85,7 +90,7 @@ Les paquets de caméra installés peuvent publier à l’exécution un adaptateu
|
|
|
85
90
|
|
|
86
91
|
L’utilisateur peut demander une capture actuelle ou demander au modèle de vision ce qui est visible. Les préréglages Telegram et RedBot envoient l’image comme photo native avec une légende. L’utilisateur peut aussi créer des notifications persistantes pour un mouvement, le franchissement d’une ligne intelligente ou l’entrée dans une zone d’intrusion/de stationnement, avec une limitation facultative aux personnes détectées et à une ligne ou zone nommée précise. Ces règles sont stockées dans le même fichier `knxai-chat-context.knxctx` et restaurées après les redémarrages de Node-RED. Les abonnements aux événements UniFi et les demandes de capture passent directement par le fournisseur détecté ; la sortie 4 de KNX AI et un câblage intermédiaire ne sont pas nécessaires.
|
|
87
92
|
|
|
88
|
-
Chaque événement publié par un adaptateur détecté automatiquement est normalisé puis ajouté directement, dans le format natif compact par lignes de KNX AI, à un fichier quotidien `YYYY-MM-DD.knxctx` sous `knxultimatestorage/knxai/adapter-history/<id-nœud>/`. L’archive des télégrammes KNX utilise le même format compact, sans sérialisation JSON intermédiaire. L’archive conserve 10 jours, garantit plus de 24 heures d’historique et stocke les métadonnées, mais pas les images. Les archives JSONL existantes ne sont ni lues ni migrées.
|
|
93
|
+
Chaque événement publié par un adaptateur détecté automatiquement est normalisé puis ajouté directement, dans le format natif compact par lignes de KNX AI, à un fichier quotidien `YYYY-MM-DD.knxctx` sous `knxultimatestorage/knxai/adapter-history/<id-nœud>/`. L’archive des télégrammes KNX utilise le même format compact, sans sérialisation JSON intermédiaire. L’archive conserve 10 jours, garantit plus de 24 heures d’historique et stocke les métadonnées, mais pas les images. Les archives JSONL existantes ne sont ni lues ni migrées. Le prompt utilise les lignes exactes les plus récentes de l’intervalle fourni, automatiquement limitées à la fenêtre active du modèle local.
|
|
89
94
|
|
|
90
95
|
### Annonces avec TTS Ultimate
|
|
91
96
|
Reliez la sortie 5 à un ou plusieurs nœuds `ttsultimate` du paquet facultatif `node-red-contrib-tts-ultimate`. Le câblage Node-RED habituel détermine la destination et la diffusion ; utilisez Link Out/Link In si le nœud TTS se trouve dans un autre onglet de flow. L'ancien sélecteur de nœud TTS et l'injection interne ont été supprimés. Les positions des sorties 1 à 4 restent inchangées, mais les flows mis à niveau doivent relier physiquement la sortie 5 avant que les annonces vocales puissent atteindre TTS Ultimate.
|
|
@@ -93,9 +98,11 @@ Reliez la sortie 5 à un ou plusieurs nœuds `ttsultimate` du paquet facultatif
|
|
|
93
98
|
Le modèle décide de préparer ou non une annonce en raisonnant sur la demande actuelle, les instructions persistantes du chat et l’Éducation IA gérée par l’utilisateur ; il n’existe ni intent d’annonce ni liste de phrases déclencheuses. Les valeurs KNX, événements d’adaptateur, images et archives restent des données et non des instructions, mais les consignes fiables de l’utilisateur peuvent apprendre au modèle comment agir sur ces données. La sortie 5 émet le texte exact à prononcer dans `msg.payload`, définit `msg.topic = "knx_ai_announcement"` et ajoute `msg.knxAi.type = "tts_announcement"` avec `msg.knxAi.sourceNodeId`, `msg.knxAi.sessionId` et `msg.knxAi.reason`. TTS Ultimate gère ensuite le lecteur, la voix, le volume, le signal et la file d’attente.
|
|
94
99
|
|
|
95
100
|
### Aperçu du contexte du chat
|
|
96
|
-
L’éditeur du nœud affiche une carte compacte résumant les sources disponibles pour le chat :
|
|
101
|
+
L’éditeur du nœud affiche une carte compacte résumant les sources disponibles pour le chat : événements KNX et adaptateurs des 20 dernières minutes ou d’un intervalle explicite, catalogue ETS sélectionné complet consultable localement dont seuls les objets récupérés sont ajoutés à chaque prompt, source Function à la demande, mémoire de session et de la maison, Éducation IA, planifications actives et caméras détectées. Elle affiche aussi le contexte opérationnel maximal déclaré par le modèle et la taille UTF-8 réelle du dernier prompt du chat ; les jetons d’entrée exacts du fournisseur sont utilisés lorsqu’ils sont fournis, sinon leur nombre est signalé comme estimé. Elle répertorie aussi les chemins absolus des fichiers de planification JSON faisant autorité et Markdown lisible, ainsi que les archives des télégrammes KNX et des événements d’adaptateurs avec le format quotidien `YYYY-MM-DD.knxctx`. L’Éducation IA est enregistrée dans la configuration du nœud et ne possède donc aucun fichier d’exécution distinct.
|
|
97
102
|
|
|
98
|
-
Le modèle reçoit les lectures/écritures KNX, les adaptateurs caméra, les annonces TTS, la mémoire persistante, l'accès Web et les planifications/rappels comme outils structurés. Il peut les sélectionner et les combiner sémantiquement à partir de la demande actuelle et des consignes fiables apprises, sans routage par intents linguistiques. Le runtime
|
|
103
|
+
Le modèle reçoit le retrieval local du catalogue ETS, les lectures/écritures KNX, les adaptateurs caméra, les annonces TTS, la mémoire persistante, l'accès Web et les planifications/rappels comme outils structurés. Il peut les sélectionner et les combiner sémantiquement à partir de la demande actuelle et des consignes fiables apprises, sans routage par intents linguistiques. Le retrieval du catalogue est déterministe et local ; le runtime valide les arguments, la disponibilité des adaptateurs caméra et les limites de sécurité, tandis que les écritures KNX conservent la validation ETS/DPT locale complète et la confirmation configurée.
|
|
104
|
+
|
|
105
|
+
Le fichier de débogage local temporaire `knxai-last-chat-prompt-<id-nœud>.txt` contient le dernier texte exact des messages système/utilisateur, est remplacé avant chaque appel de chat et ne contient ni clé API ni en-tête HTTP.
|
|
99
106
|
|
|
100
107
|
### Modification et sauvegarde de l'apprentissage CHAT
|
|
101
108
|
L'onglet **Conversations et maison** de la configuration Node-RED de KNX AI contient le bouton **Ouvrir l'apprentissage du chat IA**, qui ouvre l'interface web Vue directement sur cet éditeur pour le nœud actuel.
|
|
@@ -104,10 +111,8 @@ Dans l'interface web Vue, ouvrez **Paramètres → Apprentissage du chat IA** po
|
|
|
104
111
|
|
|
105
112
|
Seul le format natif V3 est pris en charge. Les anciens fichiers Markdown/JSON V2 et Base64 V1 ne sont volontairement ni lus, ni importés, ni migrés ; l'ancien fichier `.md` reste intact et KNX AI démarre un nouveau contexte `.knxctx`. Les limites de 50 sessions et 512 Ko restent applicables.
|
|
106
113
|
|
|
107
|
-
###
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
Le rôle, la justification et la preuve appris sont enregistrés par nœud dans `<userDir>/knxai/config/knxai-config-<id-nœud>.json` et synchronisés dans la mémoire sémantique domestique limitée. Un rôle appris comme `command` peut valider une écriture dans la même réponse et reste disponible après redémarrage ; le modèle peut aussi l’oublier et rétablir la classification automatique. L’apprentissage ne peut pas inventer une GA, modifier son DPT ETS, contourner la validation du payload ni ignorer la confirmation d’écriture configurée.
|
|
114
|
+
### Accès aux objets ETS
|
|
115
|
+
L’accès aux objets ETS est la seule autorité opérationnelle. Toute adresse sélectionnée dans **Accès aux objets ETS** est active et lisible ; elle est également inscriptible sauf si elle est marquée **Lecture seule**. Aucune classification de rôle déduite n’est envoyée au modèle de chat ni utilisée pour autoriser une écriture.
|
|
111
116
|
|
|
112
117
|
## Intelligence domestique proactive guidée par l’Éducation et mémoire limitée
|
|
113
118
|
À partir de la hiérarchie ETS, des noms, rôles et DPT, le nœud crée un modèle sémantique déterministe. Il n’existe ni interrupteur séparé ni paramètres proactifs avancés. Une notification n’est évaluée que si le LLM est actif et si **Éducation IA** la demande explicitement. L’Éducation définit seule les conditions, la durée, les heures silencieuses et la répétition. Sans règle explicite, ou si le LLM ne peut pas l’évaluer, aucun message n’est envoyé.
|
|
@@ -161,12 +166,10 @@ Voici tous les champs tels qu'affichés dans l'éditeur KNX AI.
|
|
|
161
166
|
- **Model** : ID/nom du modèle.
|
|
162
167
|
- **Effort de raisonnement** : préférence indépendante du fournisseur pour les modèles qui permettent de régler l’effort de raisonnement. **Automatique** n’envoie aucune préférence et conserve la valeur par défaut du modèle/fournisseur. Les choix explicites sont `none`, `minimal`, `low`, `medium`, `high`, `xhigh` et `max` ; leur prise en charge dépend du protocole de requête et du modèle, et KNX AI réessaie sans la préférence si elle est refusée.
|
|
163
168
|
- **Autoriser l'IA à utiliser le Web** : désactivé par défaut. Permet au modèle de choisir sémantiquement l'outil Web général et de fournir des sources vérifiées et citées.
|
|
164
|
-
- **
|
|
165
|
-
- **Intervalle minimal des vérifications proactives** : durée minimale entre les cycles proactifs ; elle ne retarde pas les opérations Web demandées pendant un échange utilisateur actif.
|
|
166
|
-
- **Nombre maximal d'appels Web par heure** : budget glissant partagé entre les opérations Web interactives et proactives. Chaque échange ou cycle peut utiliser au maximum trois opérations au total.
|
|
169
|
+
- **Nombre maximal d'appels Web par heure** : budget glissant partagé entre les conversations et les tâches planifiées créées par l'utilisateur. Chaque échange ou exécution planifiée peut utiliser au maximum trois opérations au total.
|
|
167
170
|
- **Voix Telegram** : disponible uniquement avec le fournisseur **OpenAI-compatible**. Elle réutilise automatiquement son endpoint et sa clé API avec les valeurs intégrées `gpt-4o-mini-transcribe`, `gpt-4o-mini-tts` et `alloy` ; il n’existe aucun réglage vocal distinct.
|
|
168
171
|
- **Compatibilité du modèle de chat** : le modèle sélectionné doit prendre en charge l'endpoint Chat Completions configuré. Les anciens modèles réservés aux completions, comme `gpt-3.5-turbo-instruct`, sont exclus lors de l'actualisation de la liste. Si le fournisseur refuse une valeur de température personnalisée ou le paramètre de limite de tokens, KNX AI réessaie en supprimant ou remplaçant uniquement le champ incompatible.
|
|
169
|
-
- **Autoriser l’IA à lire les états KNX et commander les actionneurs** : active la sortie 4 et reste désactivé par défaut.
|
|
172
|
+
- **Autoriser l’IA à lire les états KNX et commander les actionneurs** : active la sortie 4 et reste désactivé par défaut. Tout objet ETS sélectionné peut être lu ; tout objet sélectionné non marqué **Lecture seule** peut être écrit. Les opérations inconnues, avec DPT discordant, invalides ou trop nombreuses, ainsi que les écritures vers des objets en lecture seule, sont rejetées localement.
|
|
170
173
|
- **Demander confirmation avant d’envoyer les commandes KNX** : activé par défaut. Affiche d'abord les modifications validées et n'émet aucune commande tant que la même session de chat ne les confirme pas. Lorsque des commandes attendent une confirmation, la réponse ajoute toujours les instructions exactes de confirmation ou d'annulation dans la langue de la demande courante. Les commandes sont à nouveau validées juste avant la sortie.
|
|
171
174
|
- **Adaptateur des messages d’entrée/sortie** : utilise **Aucun adaptateur** par défaut. La sélection charge la paire prédéfinie de mappages entrée/sortie ; les deux restent masqués dans l’éditeur.
|
|
172
175
|
- **Éducation de l’IA** : consignes fixes du nœud faisant autorité, modifiées uniquement par l’utilisateur et appliquées avec Deploy. Le modèle les lit mais ne les écrit jamais. Les politiques domotiques proactives permanentes se définissent ici ; les faits et préférences demandés dans le chat vont dans la mémoire apprise, tandis que les planifications, rappels, surveillances et commandes futures, ponctuels ou récurrents, vont dans le planificateur sémantique sans phrase déclencheuse ni routage par intent.
|
|
@@ -181,7 +184,7 @@ Voici tous les champs tels qu'affichés dans l'éditeur KNX AI.
|
|
|
181
184
|
- **2) Install it** : télécharge et installe le modèle localement (ex. `llama3.1`).
|
|
182
185
|
- Pendant refresh/install, KNX AI tente aussi de démarrer automatiquement le serveur Ollama.
|
|
183
186
|
- Si l'installation échoue avec une erreur de connexion, vérifier qu'Ollama est lancé (app desktop ou `ollama serve`).
|
|
184
|
-
- Le contexte maximal déclaré par `/api/show`
|
|
187
|
+
- Le contexte maximal déclaré par `/api/show` est utilisé directement comme `num_ctx`. KNX AI n'applique aucun budget inférieur et envoie le prompt opérationnel dédupliqué sans compaction liée à la taille, sans jamais dépasser le maximum physique déclaré par le modèle.
|
|
185
188
|
- Si Node-RED tourne dans Docker, utiliser `host.docker.internal` au lieu de `localhost` dans l'endpoint.
|
|
186
189
|
|
|
187
190
|
### Démarrage rapide Bionic LM Studio (local)
|
|
@@ -189,7 +192,7 @@ Voici tous les champs tels qu'affichés dans l'éditeur KNX AI.
|
|
|
189
192
|
- Démarrer le serveur API LM Studio depuis la page **Developer** ou avec `lms server start`.
|
|
190
193
|
- Endpoint par défaut : `http://localhost:1234/v1/chat/completions`.
|
|
191
194
|
- Cliquer sur **Refresh** pour charger tous les modèles exposés par `/v1/models` ; le premier est sélectionné si aucun modèle n’est configuré.
|
|
192
|
-
- Lorsqu’un modèle est déjà chargé, KNX AI conserve la longueur de contexte active. KNX AI ne charge jamais un modèle Bionic inactif via l’API de gestion : la première requête de chat laisse Bionic le charger en JIT avec les valeurs par défaut enregistrées pour ce modèle.
|
|
195
|
+
- Lorsqu’un modèle est déjà chargé, KNX AI conserve la longueur de contexte active. KNX AI ne charge jamais un modèle Bionic inactif via l’API de gestion : la première requête de chat laisse Bionic le charger en JIT avec les valeurs par défaut enregistrées pour ce modèle. Tout le contexte disponible est envoyé sans budget applicatif ; s'il ne tient pas dans la fenêtre active, la requête échoue explicitement.
|
|
193
196
|
- La clé API est facultative sauf si l’authentification est activée dans les paramètres du serveur LM Studio. Dans Docker, remplacer `localhost` par `host.docker.internal`.
|
|
194
197
|
|
|
195
198
|
## Note sécurité
|
|
@@ -3,13 +3,15 @@
|
|
|
3
3
|
"title": "KNX AI (Traffic Analyzer)",
|
|
4
4
|
"sections": {
|
|
5
5
|
"groupAssistant": "Assistant IA",
|
|
6
|
-
"groupChatHome": "
|
|
6
|
+
"groupChatHome": "Cerebrum (BETA)",
|
|
7
7
|
"setupDoctor": "Setup Doctor",
|
|
8
8
|
"webIntelligence": "Intelligence Web",
|
|
9
9
|
"detectedAdapters": "Nœuds compatibles détectés et utilisés dans le chat",
|
|
10
10
|
"chatContextOverview": "Aperçu du contexte du chat",
|
|
11
11
|
"chatLearning": "Apprentissage du chat IA",
|
|
12
|
+
"cerebrumMemory": "Mémoire Cerebrum",
|
|
12
13
|
"quickSetup": "Configurer l'assistant",
|
|
14
|
+
"etsAccess": "Accès aux objets ETS",
|
|
13
15
|
"llmConnection": "Connexion Assistant IA",
|
|
14
16
|
"chatAdapter": "Ports d’entrée et de sortie du chat",
|
|
15
17
|
"homeIntelligence": "Éducation IA et mémoire",
|
|
@@ -25,20 +27,17 @@
|
|
|
25
27
|
"llmApiKey": "API key",
|
|
26
28
|
"llmModel": "Model",
|
|
27
29
|
"llmReasoningEffort": "Effort de raisonnement",
|
|
28
|
-
"
|
|
30
|
+
"llmLocalContextTokens": "Fenêtre de contexte locale",
|
|
29
31
|
"llmSystemPrompt": "System prompt",
|
|
30
32
|
"llmIncludeRaw": "Include raw payload hex",
|
|
31
33
|
"llmAllowKnxCommands": "Autoriser l’IA à lire les états KNX et commander les actionneurs",
|
|
32
34
|
"llmRequireCommandConfirmation": "Demander confirmation avant d’envoyer les commandes KNX",
|
|
33
35
|
"webAccessEnabled": "Autoriser l’IA à utiliser le Web",
|
|
34
|
-
"webProactiveEnabled": "Autoriser les vérifications Web proactives",
|
|
35
|
-
"webProactiveIntervalMinutes": "Intervalle minimal des vérifications proactives",
|
|
36
36
|
"webMaxCallsPerHour": "Nombre maximal d’appels Web par heure",
|
|
37
37
|
"chatAdapterPreset": "Adaptateur des messages d’entrée/sortie",
|
|
38
38
|
"chatInputCode": "Mappage d’entrée (chat → KNX AI)",
|
|
39
39
|
"chatOutputCode": "Mappage de sortie (KNX AI → chat)",
|
|
40
|
-
"aiEducation": "Éducation IA (gérée par l'utilisateur)"
|
|
41
|
-
"llmIncludeDocsSnippets": "Include documentation snippets (help/README/examples)"
|
|
40
|
+
"aiEducation": "Éducation IA (gérée par l'utilisateur)"
|
|
42
41
|
},
|
|
43
42
|
"outputs": {
|
|
44
43
|
"summary": "Résumé/Stats",
|
|
@@ -49,17 +48,11 @@
|
|
|
49
48
|
},
|
|
50
49
|
"selectlists": {
|
|
51
50
|
"llmProvider": {
|
|
52
|
-
"openai_compat": "OpenAI
|
|
51
|
+
"openai_compat": "OpenAI / compatible OpenAI",
|
|
53
52
|
"anthropic": "Anthropic (Claude)",
|
|
54
53
|
"ollama": "Ollama (local)",
|
|
55
54
|
"lmstudio": "Bionic LM Studio"
|
|
56
55
|
},
|
|
57
|
-
"promptContext": {
|
|
58
|
-
"small": "Réduit (4K, plus rapide)",
|
|
59
|
-
"medium": "Moyen (8K)",
|
|
60
|
-
"full": "Complet (16K)",
|
|
61
|
-
"unlimited": "Aucune limite KNX AI (utiliser le contexte du modèle)"
|
|
62
|
-
},
|
|
63
56
|
"reasoningEffort": {
|
|
64
57
|
"default": "Automatique (valeur du modèle/fournisseur)",
|
|
65
58
|
"none": "Aucun",
|
|
@@ -70,16 +63,18 @@
|
|
|
70
63
|
"xhigh": "Très élevé",
|
|
71
64
|
"max": "Maximum"
|
|
72
65
|
},
|
|
66
|
+
"localContext": {
|
|
67
|
+
"maximum": "Maximum",
|
|
68
|
+
"k4": "4K",
|
|
69
|
+
"k8": "8K",
|
|
70
|
+
"k16": "16K",
|
|
71
|
+
"k32": "32K",
|
|
72
|
+
"k64": "64K",
|
|
73
|
+
"k128": "128K",
|
|
74
|
+
"k256": "256K"
|
|
75
|
+
},
|
|
73
76
|
"chatAdapter": {
|
|
74
77
|
"none": "Aucun adaptateur"
|
|
75
|
-
},
|
|
76
|
-
"webProactiveInterval": {
|
|
77
|
-
"5": "5 minutes",
|
|
78
|
-
"10": "10 minutes",
|
|
79
|
-
"15": "15 minutes",
|
|
80
|
-
"30": "30 minutes",
|
|
81
|
-
"60": "1 heure",
|
|
82
|
-
"180": "3 heures"
|
|
83
78
|
}
|
|
84
79
|
},
|
|
85
80
|
"messages": {
|
|
@@ -92,18 +87,25 @@
|
|
|
92
87
|
"setupDoctorWarn": "Vérifier",
|
|
93
88
|
"setupDoctorFail": "Corriger",
|
|
94
89
|
"setupDoctorInfo": "Optionnel",
|
|
95
|
-
"webAccessHint": "Le modèle choisit sémantiquement cet outil Web général ; aucun mot-clé ni classificateur d’intention n’est utilisé. Les sites externes et le service de recherche reçoivent la requête et l’adresse IP publique de ce serveur. Les données privées KNX, caméra, chat, mémoire et identifiants d’accès ne sont jamais ajoutées automatiquement.",
|
|
96
|
-
"
|
|
97
|
-
"webBudgetHint": "Le budget glissant compte les appels externes réels du chat et des vérifications proactives.",
|
|
90
|
+
"webAccessHint": "Le modèle choisit sémantiquement cet outil Web général pour chaque demande claire du chat ou planifiée. Si une portée essentielle est ambiguë, il demande une précision à l’utilisateur avant la recherche ; aucun polling en arrière-plan, mot-clé ni classificateur d’intention n’est utilisé. Les sites externes et le service de recherche reçoivent la requête et l’adresse IP publique de ce serveur. Les données privées KNX, caméra, chat, mémoire et identifiants d’accès ne sont jamais ajoutées automatiquement.",
|
|
91
|
+
"webBudgetHint": "Le budget glissant compte les appels externes réels des conversations et des tâches planifiées créées par l’utilisateur.",
|
|
98
92
|
"lmStudioContextAvailable": "Contexte maximal du modèle",
|
|
99
93
|
"lmStudioContextLoading": "Vérification du contexte actif du modèle",
|
|
100
94
|
"lmStudioContextInactive": "Modèle inactif ; les valeurs par défaut de Bionic seront utilisées à la première requête",
|
|
101
95
|
"lmStudioContextConfigured": "Contexte actif du modèle",
|
|
102
96
|
"lmStudioContextFailed": "Impossible de configurer le contexte du modèle",
|
|
103
97
|
"lmStudioContextCurrentlyLoaded": "actuellement chargé",
|
|
104
|
-
"
|
|
105
|
-
"
|
|
98
|
+
"etsAccessHint": "Sélectionnez les adresses de groupe disponibles pour KNX AI. Toute adresse sélectionnée est active et lisible ; toute adresse sélectionnée non marquée Lecture seule est inscriptible. Les fournisseurs cloud reçoivent tout le catalogue ETS sémantique sélectionné ; les modèles locaux reçoivent ce qui tient dans la fenêtre de contexte choisie et peuvent récupérer localement les détails manquants.",
|
|
99
|
+
"etsFilterPlaceholder": "Filtrer par nom, GA ou DPT…",
|
|
100
|
+
"etsSelected": "sélectionnées",
|
|
101
|
+
"etsReadOnly": "Lecture seule",
|
|
102
|
+
"etsReadOnlyBulk": "Lecture seule pour les adresses affichées",
|
|
103
|
+
"etsNoGateway": "Sélectionnez une passerelle KNX.",
|
|
104
|
+
"etsNoGa": "Aucune adresse de groupe trouvée. Importez la liste ETS dans la passerelle KNX.",
|
|
105
|
+
"etsCsvError": "Impossible de charger la liste des adresses de groupe depuis la passerelle.",
|
|
106
106
|
"reasoningEffortHint": "Préférence facultative pour les modèles prenant en charge l'effort de raisonnement. Automatique n'envoie aucune préférence ; si le fournisseur ou le modèle refuse la valeur choisie, KNX AI réessaie sans elle.",
|
|
107
|
+
"localContextBudget": "Fenêtre de contexte locale",
|
|
108
|
+
"localContextHint": "Définit le contexte maximal uniquement pour les modèles locaux. Maximum utilise la fenêtre connue du modèle et masque les tailles indisponibles. Les fournisseurs cloud ignorent ce sélecteur et reçoivent tout le catalogue ETS sémantique sélectionné.",
|
|
107
109
|
"ollamaNotSupported": "Ollama local mode: API key not required. Default endpoint is http://localhost:11434/api/chat.",
|
|
108
110
|
"ollamaNoModels": "No local Ollama model found. Install one or pick one from the library.",
|
|
109
111
|
"installingOllamaModel": "Starting Ollama and installing model…",
|
|
@@ -121,6 +123,7 @@
|
|
|
121
123
|
"chatContextLoading": "Chargement du résumé du contexte du chat…",
|
|
122
124
|
"chatContextUnavailable": "Le résumé du contexte du chat est temporairement indisponible.",
|
|
123
125
|
"chatLearningOpenHint": "Ouvre l’interface web directement dans l’éditeur d’apprentissage CHAT partagé pour afficher, modifier, copier ou sauvegarder son fichier persistant.",
|
|
126
|
+
"cerebrumMemoryOpenHint": "Ouvre la mémoire Cerebrum lisible pour consulter ou modifier les habitudes, les décisions des occupants et les états du logement.",
|
|
124
127
|
"chatContextIntro": "Le chat reçoit automatiquement ces sources. Les chemins ci-dessous sont ceux réellement utilisés par cette installation Node-RED.",
|
|
125
128
|
"chatContextLimitLabel": "Contexte opérationnel maximal",
|
|
126
129
|
"chatContextProviderManaged": "géré par le fournisseur/modèle sélectionné",
|
|
@@ -133,9 +136,9 @@
|
|
|
133
136
|
"chatContextSourcesTitle": "Sources incluses",
|
|
134
137
|
"chatContextFilesTitle": "Fichiers de contexte persistants",
|
|
135
138
|
"chatContextDirectoriesTitle": "Archive des télégrammes KNX",
|
|
136
|
-
"chatContextSourceKnxTraffic": "
|
|
137
|
-
"chatContextSourceAdapterHistory": "
|
|
138
|
-
"chatContextSourceEtsProject": "
|
|
139
|
+
"chatContextSourceKnxTraffic": "Analyse KNX dérivée et événements exacts les plus récents de l’intervalle implicite de 20 minutes ou explicite, automatiquement limités à la fenêtre active du modèle local.",
|
|
140
|
+
"chatContextSourceAdapterHistory": "Événements exacts les plus récents des adaptateurs pour le même intervalle, automatiquement limités à la fenêtre active du modèle local.",
|
|
141
|
+
"chatContextSourceEtsProject": "Catalogue ETS sémantique sélectionné complet pour les modèles cloud. Les modèles locaux reçoivent le catalogue complet lorsqu’il tient dans la fenêtre, sinon un index adapté et les détails exacts demandés par le modèle. Source Function uniquement pour une revue explicite du code.",
|
|
139
142
|
"chatContextSourceMemoryEducation": "Contexte de session, Éducation IA, mémoire domestique limitée et planifications actives.",
|
|
140
143
|
"chatContextSourceCameras": "Caméras détectées et leurs fonctionnalités disponibles.",
|
|
141
144
|
"chatContextSourceBadge": "Source",
|
|
@@ -143,7 +146,8 @@
|
|
|
143
146
|
"chatContextFileHomeMemory": "Mémoire domestique apprise et limitée uniquement ; l’Éducation IA reste dans la propriété du nœud.",
|
|
144
147
|
"chatContextFileSchedules": "État d’exécution persistant faisant autorité pour les planifications et rappels de ce nœud.",
|
|
145
148
|
"chatContextFileSchedulesReadable": "Vue lisible générée des planifications et rappels de ce nœud.",
|
|
146
|
-
"chatContextFileAssistantConfig": "Configuration persistante de
|
|
149
|
+
"chatContextFileAssistantConfig": "Configuration persistante de Cerebrum et zones sémantiques de ce nœud.",
|
|
150
|
+
"chatContextFileLastChatPrompt": "Copie locale temporaire des derniers messages système et utilisateur envoyés au modèle de chat ; remplacée à chaque requête.",
|
|
147
151
|
"chatContextFileBadge": "Fichier",
|
|
148
152
|
"chatContextDirectoryRoot": "Racine de l'archive des télégrammes",
|
|
149
153
|
"chatContextDirectoryNode": "Archive des télégrammes de ce nœud",
|
|
@@ -216,7 +220,12 @@
|
|
|
216
220
|
"installOllamaModel": "2) Install it",
|
|
217
221
|
"ollamaLibrary": "Model library",
|
|
218
222
|
"downloadOllamaModel": "1) Download model",
|
|
219
|
-
"openChatLearning": "Ouvrir l’apprentissage du chat IA"
|
|
223
|
+
"openChatLearning": "Ouvrir l’apprentissage du chat IA",
|
|
224
|
+
"openCerebrumMemory": "Ouvrir la mémoire Cerebrum",
|
|
225
|
+
"etsSelectAll": "Tout sélectionner",
|
|
226
|
+
"etsSelectNone": "Tout désélectionner",
|
|
227
|
+
"etsReadOnlyAll": "Activer lecture seule",
|
|
228
|
+
"etsReadOnlyNone": "Retirer lecture seule"
|
|
220
229
|
}
|
|
221
230
|
}
|
|
222
231
|
}
|