diff --git a/README.md b/README.md index 7e7e3b3..63f8376 100644 --- a/README.md +++ b/README.md @@ -2,6 +2,8 @@ Assistant vocal CLI personnalisé utilisant **Mistral Large** pour les réponses, **Voxtral TTS** pour la synthèse vocale, et **Voxtral Realtime** pour la transcription micro. Supporte le **Model Context Protocol (MCP)** pour appeler des outils externes depuis le LLM. +Disclaimer : Cet outil est un "proof-of-concept" expérimental pour investiguer les possibilités offertes par des agents vocaux personnalisés. + --- ## Table des matières @@ -90,19 +92,19 @@ python main.py ### Commandes disponibles dans le REPL -| Commande | Description | -|----------|-------------| -| `help` | Afficher l'aide | -| `exit` / `quit` | Quitter l'assistant | -| `reset` | Effacer l'historique de conversation | -| `profiles` | Lister les profils disponibles | +| Commande | Description | +| ---------------- | -------------------------------------------------- | +| `help` | Afficher l'aide | +| `exit` / `quit` | Quitter l'assistant | +| `reset` | Effacer l'historique de conversation | +| `profiles` | Lister les profils disponibles | | `profile ` | Charger un profil (ex : `profile traveller_scout`) | -| `voice ` | Définir la voix Voxtral manuellement | -| `voice clear` | Revenir à la voix automatique | -| `mode vocal` | Passer en mode entrée microphone | -| `mode texte` | Revenir en mode saisie clavier | -| `mcp` | Lister les serveurs MCP connectés | -| `mcp tools` | Lister tous les outils MCP disponibles | +| `voice ` | Définir la voix Voxtral manuellement | +| `voice clear` | Revenir à la voix automatique | +| `mode vocal` | Passer en mode entrée microphone | +| `mode texte` | Revenir en mode saisie clavier | +| `mcp` | Lister les serveurs MCP connectés | +| `mcp tools` | Lister tous les outils MCP disponibles | --- @@ -154,9 +156,9 @@ mcp_servers: ### Profils inclus -| Slug | Nom | Description | -|------|-----|-------------| -| `default` | Arioch — Assistant général | Assistant généraliste en français | +| Slug | Nom | Description | +| ----------------- | ----------------------------- | -------------------------------------------------------------------------------------------------- | +| `default` | Arioch — Assistant général | Assistant généraliste en français | | `traveller_scout` | Scout Ship AI — Traveller RPG | IA de bord d'un vaisseau Scout/Courier (Traveller RPG), avec accès à la carte de l'univers via MCP | --- @@ -266,19 +268,19 @@ Serveur MCP pour l'API [travellermap.com](https://travellermap.com). Écrit en T #### Outils disponibles -| Outil | Description | -|-------|-------------| -| `search_worlds` | Recherche un monde par nom dans l'univers Traveller | -| `find_route` | Calcule une route de saut entre deux mondes | -| `get_world_info` | Informations détaillées sur un monde (UWP décodé, atmosphère, etc.) | -| `get_worlds_in_jump_range` | Mondes accessibles depuis une position en N sauts | -| `get_jump_map` | Carte de la zone autour d'un monde | -| `get_subsector_map` | Image d'un sous-secteur | -| `render_custom_map` | Rendu de carte personnalisée | -| `get_sector_list` | Liste de tous les secteurs de l'univers | -| `get_sector_data` | Données d'un secteur (format SEC) | -| `get_sector_metadata` | Métadonnées d'un secteur (JSON) | -| `get_allegiance_list` | Liste des allégeances politiques | +| Outil | Description | +| -------------------------- | ------------------------------------------------------------------- | +| `search_worlds` | Recherche un monde par nom dans l'univers Traveller | +| `find_route` | Calcule une route de saut entre deux mondes | +| `get_world_info` | Informations détaillées sur un monde (UWP décodé, atmosphère, etc.) | +| `get_worlds_in_jump_range` | Mondes accessibles depuis une position en N sauts | +| `get_jump_map` | Carte de la zone autour d'un monde | +| `get_subsector_map` | Image d'un sous-secteur | +| `render_custom_map` | Rendu de carte personnalisée | +| `get_sector_list` | Liste de tous les secteurs de l'univers | +| `get_sector_data` | Données d'un secteur (format SEC) | +| `get_sector_metadata` | Métadonnées d'un secteur (JSON) | +| `get_allegiance_list` | Liste des allégeances politiques | #### (Re)compiler le serveur @@ -326,24 +328,23 @@ python scripts/list_voices.py ## Variables d'environnement -| Variable | Obligatoire | Défaut | Description | -|----------|-------------|--------|-------------| -| `MISTRAL_API_KEY` | ✅ | — | Clé API Mistral AI | -| `VOICE_ID` | ❌ | auto | ID voix Voxtral (sélection auto si vide) | -| `VOICE_LANGUAGE` | ❌ | `fr` | Langue préférée pour la sélection de voix | -| `SYSTEM_PROMPT` | ❌ | prompt Arioch | Prompt système par défaut | -| `TTS_PCM_SAMPLE_RATE` | ❌ | `24000` | Fréquence d'échantillonnage audio TTS | +| Variable | Obligatoire | Défaut | Description | +| --------------------- | ----------- | ------------- | ----------------------------------------- | +| `MISTRAL_API_KEY` | ✅ | — | Clé API Mistral AI | +| `VOICE_ID` | ❌ | auto | ID voix Voxtral (sélection auto si vide) | +| `VOICE_LANGUAGE` | ❌ | `fr` | Langue préférée pour la sélection de voix | +| `SYSTEM_PROMPT` | ❌ | prompt Arioch | Prompt système par défaut | +| `TTS_PCM_SAMPLE_RATE` | ❌ | `24000` | Fréquence d'échantillonnage audio TTS | --- ## Dépendances Python -| Package | Rôle | -|---------|------| -| `mistralai` | SDK Mistral (LLM, TTS, STT Realtime) | -| `python-dotenv` | Chargement des variables `.env` | -| `sounddevice` | Capture microphone (mode vocal) | -| `numpy` | Traitement PCM audio | -| `pyyaml` | Lecture des fichiers de profil | -| `mcp` | Client MCP (connexion aux serveurs d'outils) | - +| Package | Rôle | +| --------------- | -------------------------------------------- | +| `mistralai` | SDK Mistral (LLM, TTS, STT Realtime) | +| `python-dotenv` | Chargement des variables `.env` | +| `sounddevice` | Capture microphone (mode vocal) | +| `numpy` | Traitement PCM audio | +| `pyyaml` | Lecture des fichiers de profil | +| `mcp` | Client MCP (connexion aux serveurs d'outils) |