Bienvenue sur CFTPfr.fr › Forums › mode_reseau.py — deuxième cerveau ponctuel, avec contrôle de justesse
- Ce sujet est vide.
Affichage de 1 message (sur 1 au total)
-
AuteurMessages
-
03.08.2026 à 10h53 #285
Mario Da Conceicao
Maître des clésNouveau composant du 01/08/2026 — "mode réseau", le deuxième cerveau ponctuel de MIRA. Utilisé uniquement pour vérifier/compléter une réponse quand une connexion est disponible, jamais comme dépendance. Toute information réseau est croisée entre plusieurs sources et clairement étiquetée, pour garantir la justesse plutôt que d’introduire de l’incertain ou du faux.
Principe
- MIRA répond d’abord avec ses connaissances locales (modèle + spécialités validées)
- Si une connexion est disponible ET que la réponse est incertaine, elle peut vérifier en ligne
- Une information réseau n’est acceptée que si au moins 2 sources la confirment
- La réponse finale distingue toujours clairement "connaissance locale" et "vérifié en ligne"
import socket import logging def connexion_disponible(hote="1.1.1.1", port=53, delai=2): """ Vérifie si une connexion réseau est disponible, sans dépendre d'un site précis (utilise un serveur DNS public juste pour tester la connexion, aucune requête de contenu). Léger, rapide, respecte la vie privée. """ try: socket.setdefaulttimeout(delai) socket.socket(socket.AF_INET, socket.SOCK_STREAM).connect((hote, port)) return True except OSError: return False class ModeReseau: """ Le "deuxième cerveau" de MIRA : uniquement pour vérifier ou compléter une réponse incertaine quand une connexion existe. Jamais une dépendance — MIRA reste complète sans lui. """ def __init__(self, nb_sources_minimum=2): self.nb_sources_minimum = nb_sources_minimum def disponible(self): return connexion_disponible() def verifier_information(self, question, requests_module=None): """ Cherche une confirmation croisée d'une information incertaine. Ne conclut JAMAIS à une confirmation sur une seule source. """ if not self.disponible(): return { "statut": "hors_ligne", "message": "Pas de connexion — réponse basée uniquement sur les connaissances locales." } if requests_module is None: try: import requests as requests_module except ImportError: return {"statut": "outil_manquant", "message": "Bibliothèque réseau non installée."} # À brancher : une vraie recherche, qui doit interroger au moins # self.nb_sources_minimum sources indépendantes avant de conclure # à une confirmation. Squelette volontairement laissé ouvert tant # que la source de recherche n'est pas choisie. return { "statut": "a_implementer", "message": "Recherche réseau prête à être branchée à une vraie source." } def etiqueter_reponse(self, reponse_locale, resultat_verification): """ Assemble la réponse finale en distinguant TOUJOURS ce qui vient des connaissances locales de ce qui vient d'une vérification réseau — jamais mélangé sans distinction claire pour l'utilisateur. """ statut = resultat_verification.get("statut") if statut == "confirme": return f"{reponse_locale}\n\n(Vérifié en ligne : {resultat_verification.get('details', '')})" elif statut == "hors_ligne": return f"{reponse_locale}\n\n(Basé uniquement sur mes connaissances locales — hors connexion)" else: return f"{reponse_locale}\n\n(Non vérifié en ligne)"Ce qui reste à faire
Choisir la source de recherche réelle à brancher dans
verifier_information()— à décider une fois OS-MIRE installé et testable en conditions réelles. -
AuteurMessages
Affichage de 1 message (sur 1 au total)
- Vous devez être connecté pour répondre à ce sujet.