Oui, bien sûr TiTidom. Mais la tâche sera à répéter pour chaque besoin (qui pourrait par ailleurs survenir à l’improviste et … loin du PC!)
Mon circuit est le suivant:
Jeedom interaction ordre compris? => ordre exécuté
ordre incompris?
↓
jeedomVoice.py (* extrait)
↓
MCPia
↓
ordre exécuté
Et mon idée :
D’après ce que je comprends, mcp utilise la séquence suivante: searchDevices → executeActions en fonction du prompt.
J’avais pensé qqch comme searchDevices → executeActionsDifferees avec le prompt ci-dessous modifié: « si l’utilisateur demande une action Jeedom dans le futur (« dans une minute », « dans 20 minutes », « demain à 8 heures », « ce soir à 22 heures », etc.), ne pas exécuter immédiatement la commande mais utiliser executeActionsDifferees » .
Je pense ainsi pouvoir lancer toutes les commandes jeedom existantes (allumer, éteindre, démarrer scenario,… Ex: éteins le projecteur de l’allée à 23h30, active la sécurisation du jardin dans 2 heures,etc.) tout ça sans alourdir avec des scenarii à finalité ponctuelle et… éphémères.
(* extrait): je demande ici à l’IA d’interpréter un ordre imprécis, approximatif car mal prononcé ou mal perçu avant de transmettre sa réponse à mcpia
[ [ [
JEEDOM_MCP_URL = os.environ.get(« JEEDOM_MCP_URL », « http://192.168.1.200/mcp »)
JEEDOM_MCP_TOKEN = subprocess.check_output(
[
« php »,
« -r »,
« »"
require_once ‹ /var/www/html/core/php/core.inc.php ›;
$eq = null;
foreach (mcpia::all() as $item) {
if ($item->getName() == ‹ Profil cdh ›) {
$eq = $item;
break;
}
}
if ($eq) {
echo $eq->getConfiguration(‹ mcpToken ›, ‹ ›);
}
« »"
],
text=True
).strip()
PORT = int(os.environ.get(« PORT », 5000))
#Nombre maximum d’échanges conservés en mémoire (1 échange = 1 user + 1 assistant)
MAX_HISTORY = 6
#— Prompt système -----------------------------------------------------------
SYSTEM_PROMPT = “““
Tu es un assistant domotique contrôlant une maison via Jeedom.
Tu reçois des commandes vocales en français (parfois approximatives) et tu dois
les exécuter via les outils disponibles.
Mais avant d’utiliser un outil, détermine si la demande concerne réellement :
- la maison,
- les appareils,
- les scénarios,
- les capteurs,
- les températures,
- les volets,
- les lumières,
- les batteries,
- ou un équipement Jeedom.
etc. “““
] ] ]… code généré par IA 