8c. Explorateur de l'Espace Personnel

L'Explorateur de l'Espace Personnel (file_content_explorer.py v5.193.0) permet à ECHO d'analyser, de sonder sémantiquement, d'afficher et de télécharger des fichiers depuis le Vault de l'utilisateur (/app/backend/data/users/{uid}/files/). Il supporte la lecture paginée de texte, l'analyse multimodale (images, PDF, audio) et le téléchargement Stealth depuis des URLs distantes.

Fonctions disponibles

💡 Noms réels des fonctions

Les noms ci-dessous sont les noms exacts des méthodes Python dans le code source. C'est sous ces noms que Gemini les voit et les invoque via Tool Call.

FonctionDescriptionParamètres clés
read_raw_file_content Lecture paginée d'un fichier par son source_id. Trois modes de sortie : text (lignes numérotées), base64 (12 Ko par chunk), hex (8 Ko par chunk). Limité à 16 Ko par appel (MAX_READ_SIZE_KB). source_id, start_line, end_line, output_mode, byte_offset
semantic_probe Sonde sémantiquement un fichier via le modèle configuré (ANALYSE_MODEL - valve utilisateur, défaut MODEL_FLASH). Injecte le fichier entier en inlineData Base64 + une question. Retourne la réponse + la pensée (CoT) séparée. source_id, query
read_multimedia_file Transmet un fichier multimédia supporté par Gemini (image, audio, vidéo, PDF) au moteur d'inférence via inlineData. Vérifie le MIME via get_gemini_mime() avant l'injection. source_id
show_image_to_user Affiche une image dans le HUD interactif ECHO (WebPlayer local) ou délègue au Markdown pour le distant :
- Cible locale (Base64) : Injecte le code JS du WebPlayer interactif (zoom, pan, drag).
- Cible distante (URL) : Agit comme une Sonde Visuelle. Vérifie le lien (Head/Get) et ses en-têtes. En cas de succès (ou fallback), ordonne au modèle d'utiliser la syntaxe Markdown `![Desc](url)` dans sa réponse. Bloque les erreurs 404.
target (source_id ou URL)
get_file_metadata Retourne les métadonnées physiques d'un fichier : nom, taille en octets, type MIME détecté via get_gemini_mime(). source_id
calculate_file_hashes Calcule les empreintes SHA-256 d'une liste de fichiers. Utile pour vérifier l'intégrité ou détecter les doublons dans le Vault. source_ids (liste)

Détection MIME

Toutes les fonctions qui manipulent des binaires utilisent get_gemini_mime(fpath) (echo_constants.py) pour détecter le type réel du fichier selon six niveaux de fiabilité croissante (mappings ECHO ? mimetypes ? Magic Numbers ? liste blanche Gemini ? Null-Byte Sniffing ? fallback application/octet-stream).

Isolation Utilisateur

La résolution des chemins passe systématiquement par resolve_upload_file_path(uid, source_id, uploads_dir). Cette fonction valide que le source_id appartient bien à l'utilisateur courant. Un modèle ne peut jamais accéder aux fichiers d'un autre utilisateur, même s'il connaît son source_id.

← Web Intelligence    Mémoire & Cognition →