7c. Explorateur de l'Espace Personnel

L'Explorateur de l'Espace Personnel (file_content_explorer.py v5.109.10) 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 file_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). file_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. file_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. file_id
show_image_to_user Affiche une image dans le HUD interactif ECHO (même moteur que le navigateur web : zoom, pan, drag, resize, minimisation). Accepte un file_id local (Base64 inline) ou une URL distante. Fallback gracieux si le serveur ne peut pas valider l'URL (CDN restrictifs type Wikimedia) — l'image est quand même injectée côté client. target (file_id ou URL)
download_from_url Télécharge un fichier depuis une URL distante avec le Stealth Engine (User-Agent mimic navigateur, gestion des redirections 302, anti-403). Le fichier est sauvegardé dans le Vault et enregistré dans processed_files. url, filename (optionnel)
get_file_metadata Retourne les métadonnées physiques d'un fichier : nom, taille en octets, type MIME détecté via get_gemini_mime(). file_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. file_ids (liste)

Détection MIME robuste

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, file_id, uploads_dir). Cette fonction valide que le file_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 file_id.

? Web Intelligence    Mémoire & Cognition ?