Sommaire
Architecture générale
src/app.tsx orchestre la navigation, les pages, les hooks de statut,
les installations et les providers de conversation.
src/services/tauris.ts centralise les appels invoke vers
les commandes Rust exposées par src-tauri/src/main.rs.
Le backend démarre et supervise Ollama sur 127.0.0.1:11434 et
ComfyUI sur 127.0.0.1:8188.
dev_agent.rs installe Aider, valide les paramètres, lance Aider
dans le projet cible et construit un diff avant/après.
Vue des couches
Diagramme chargé depuis diagrammes/vue-couches.mmd
Source du diagramme : diagrammes/vue-couches.mmd
Le module openwebui.rs existe encore pour compatibilité et certaines commandes
d'installation, mais la navigation principale actuelle utilise le chat intégré plutôt
qu'une interface Open WebUI lancée par Assistia.
Schémas techniques
Diagramme de séquence : message de chat
Diagramme chargé depuis diagrammes/sequence-chat.mmd
Source du diagramme : diagrammes/sequence-chat.mmd
Diagramme de séquence : génération d'image
Diagramme chargé depuis diagrammes/sequence-generation-image.mmd
Source du diagramme : diagrammes/sequence-generation-image.mmd
Diagramme d'activité : lancement et disponibilité
Diagramme chargé depuis diagrammes/activite-lancement.mmd
Source du diagramme : diagrammes/activite-lancement.mmd
Schéma d'interaction entre les fichiers
Diagramme chargé depuis diagrammes/interaction-fichiers.mmd
Source du diagramme : diagrammes/interaction-fichiers.mmd
Flux principaux
| Flux | Entrée frontend | Commandes / modules backend | Sortie utilisateur |
|---|---|---|---|
| Chat local | ChatPage + ChatContext |
search_web optionnel, puis send_ollama_chat_message et ollama::send_chat_message |
Réponse assistant affichée dans le chat, avec sources web si SearXNG a été utilisé. |
| Téléchargement modèle Ollama | ChatModelsSection + useChatModelActions |
pull_ollama_model, ollama pull |
Modèle visible dans la liste du chat après rafraîchissement. |
| Génération image | ImageGeneratorPage + workflow JSON |
queue_comfyui_image_generation, API /prompt et /history |
Image encodée en data URL puis possibilité d'enregistrement. |
| Modèles ComfyUI | ImageModelsSection |
download_comfyui_model_files, delete_comfyui_model_files |
Fichiers présents ou supprimés dans ComfyUI/models. |
| Agent développeur | DeveloperAgentPage + paramètres persistés |
send_developer_agent_message, aider-chat, snapshot de projet |
Résumé, stdout/stderr tronqués, statut Git et diff détecté. |
| Installation | InstallationSection + useRuntimeOperations |
install_all, install_ollama, ensure_comfyui_installed, ensure_developer_agent_installed |
Composants locaux prêts ou message d'erreur dans les logs. |
Frontend React
| Fichier | Responsabilité |
|---|---|
src/main.tsx |
Point d'entrée React. Monte App dans le DOM. |
src/app.tsx |
Composant racine : langue, navigation, statuts, démarrage automatique, providers de chat et pages actives. |
src/i18n.ts et src/i18n/* |
Contrat et dictionnaires de traduction français/anglais. |
src/services/tauris.ts |
Façade unique pour les commandes Tauri et types partagés avec le frontend. |
src/store/launcherStore.ts |
Store Zustand pour progression, statut runtime et logs. |
src/contexts/ChatContext.tsx |
Historique du chat, modèle sélectionné, brouillon et message assistant en attente. |
src/contexts/DeveloperAgentChatContext.tsx |
Historique et brouillon du chat de l'agent développeur. |
src/hooks/useServiceStatus.ts |
Interroge les statuts toutes les 5 secondes, avec fallback sur Ollama seul. |
src/hooks/useRuntimeEvents.ts |
Écoute launcher-log et launcher-status et alimente Zustand. |
src/hooks/useRuntimeOperations.ts |
Regroupe installation, démarrage Ollama, démarrage ComfyUI, démarrage SearXNG et feedbacks d'action. |
src/hooks/useChatModelAvailability.ts et useChatModelActions.ts |
Liste, télécharge et supprime les modèles Ollama. |
src/hooks/useImageGeneratorModelAvailability.ts et useImageGeneratorModelActions.ts |
Vérifie, télécharge et supprime les fichiers de modèles ComfyUI. |
src/hooks/useDeveloperAgentSettings.ts |
Charge et sauvegarde URL Ollama, dossier projet et modèle de l'agent. |
src/hooks/useWebSearchSettings.ts |
Charge et sauvegarde l'activation de la recherche web, l'URL SearXNG et le nombre de résultats. |
src/components/pages/* |
Pages fonctionnelles : chat, générateur d'image, agent développeur, paramètres et logs. |
src/components/settings/* |
Sous-sections de la page Paramètres : composants, modèles chat, modèles image et agent développeur. |
src/utils/* |
Parsing de progression, traduction des messages runtime et construction des workflows ComfyUI. |
Backend Rust / Tauri
| Fichier | Responsabilité | Points clés |
|---|---|---|
src-tauri/src/main.rs |
Enregistre les commandes Tauri et arrête les services à la fermeture. | start_runtime, start_comfyui, start_searxng, send_ollama_chat_message, queue_comfyui_image_generation. |
src-tauri/src/common.rs |
Types partagés, settings JSON, événements Tauri, streaming stdout/stderr et gestion des processus. | emit_runtime_log, emit_runtime_status, run_streaming_command, kill_process_tree. |
src-tauri/src/ollama.rs |
Détection Ollama, démarrage ollama serve, liste/pull/delete de modèles et appel HTTP /api/chat. |
Gère les timeouts, le décodage HTTP chunked et les chemins configurés. |
src-tauri/src/comfyui.rs |
Détection/démarrage ComfyUI, fichiers modèles, requêtes HTTP ComfyUI, lecture et sauvegarde d'images. | Protège les chemins relatifs, attend /history jusqu'au retour d'une image. |
src-tauri/src/dev_agent.rs |
Paramètres Aider, environnement local, exécution de l'agent et diff avant/après. | Snapshot limité à 5000 fichiers, 4 Mo au total, 512 Ko par fichier. |
src-tauri/src/web_search.rs |
Paramètres de recherche web et interrogation d'une instance SearXNG compatible JSON. | Construit /search?q=...&format=json, limite les résultats transmis au modèle et supporte HTTP/HTTPS via curl ou PowerShell. |
src-tauri/src/searxng.rs |
Installation locale, configuration, démarrage et arrêt de SearXNG. | Télécharge l'archive officielle, crée un venv Python 3.11, active le format JSON et lance python -m searx.webapp sur 127.0.0.1:8888. |
src-tauri/src/installation.rs |
Installation Ollama, Open WebUI compatibilité, ComfyUI, Aider, SearXNG, uv et Python. | ComfyUI utilise Python 3.13 ; Open WebUI, Aider et SearXNG utilisent Python 3.11. |
src-tauri/src/python.rs |
Détection Python 3.11 et uv, construction des commandes d'installation uv. | Supporte macOS, Linux et Windows. |
src-tauri/src/openwebui.rs |
Module de compatibilité Open WebUI : chemins, installation gérée, démarrage et arrêt. | Encore présent côté backend, non central dans le parcours UI actuel. |
src-tauri/src/system.rs |
Utilitaire système minimal. | Retourne la mémoire totale en Mo. |
Commandes Tauri exposées
| Groupe | Commandes |
|---|---|
| Runtime | check_ollama_status, get_services_status, start_runtime, stop_runtime, start_comfyui, start_searxng, stop_comfyui. |
| Installation | start_ollama_installation, start_open_webui_installation, start_comfyui_installation, start_developer_agent_installation, start_searxng_installation, start_full_installation. |
| Chat et modèles Ollama | list_ollama_models, pull_ollama_model, delete_ollama_model, send_ollama_chat_message. |
| ComfyUI | get_comfyui_model_availability, download_comfyui_model_files, delete_comfyui_model_files, queue_comfyui_image_generation, save_comfyui_generated_image. |
| Agent développeur | get_developer_agent_settings, set_developer_agent_settings, send_developer_agent_message. |
| Recherche web | get_web_search_settings, set_web_search_settings, search_web, start_searxng_installation. |
| Liens externes | open_documentation, open_patreon, open_ollama_installation, open_ollama_terms, open_comfyui, open_webui. |
État, événements et stockage
L'état durable de l'interface est réparti entre les contexts de chat et le store
launcherStore. Les hooks gardent les états transitoires d'action.
Les processus longs émettent launcher-log pour les logs et
launcher-status pour le message de progression et le pourcentage.
common.rs lit et écrit launcher-settings.json dans le
dossier applicatif Tauri. Il contient les chemins et paramètres de l'agent.
ComfyUI, Open WebUI compatibilité, Aider et SearXNG sont installés sous
app_data_dir dans des dossiers gérés par Assistia.
Maintenance
Commandes de développement
npm install
npm run dev
npm run tauri dev
npm run build
Points d'attention
- Les noms de commandes dans
src/services/tauris.tsdoivent rester alignés avectauri::generate_handler!dansmain.rs. - Les messages backend traduits côté frontend passent par
src/utils/runtimeMessages.ts. Ajouter une nouvelle chaîne runtime peut nécessiter une clé i18n. - Les workflows ComfyUI doivent être référencés dans
src/config/imageGeneratorModels.jsonet disponibles danssrc/config/workflows/. - La recherche web peut utiliser le SearXNG local installé par Assistia sans Docker. Le fichier
settings.ymlgénéré activejsondanssearch.formats. - Les téléchargements de modèles ComfyUI doivent utiliser des chemins relatifs sûrs, car
comfyui.rsrejette les chemins absolus et les remontées de dossier. - L'agent développeur modifie un dossier utilisateur. Le diff affiché repose sur un snapshot texte limité et sur Git lorsqu'il est disponible.
- Open WebUI est encore installable techniquement, mais toute réintroduction dans l'interface doit reconnecter les pages React, hooks et libellés correspondants.
Cette page est volontairement centrée sur les modules actifs de l'application. Les détails bas niveau restent dans le code source, qui fait autorité en cas d'écart.