AJout disclaimer
This commit is contained in:
89
README.md
89
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.
|
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
|
## Table des matières
|
||||||
@@ -90,19 +92,19 @@ python main.py
|
|||||||
|
|
||||||
### Commandes disponibles dans le REPL
|
### Commandes disponibles dans le REPL
|
||||||
|
|
||||||
| Commande | Description |
|
| Commande | Description |
|
||||||
|----------|-------------|
|
| ---------------- | -------------------------------------------------- |
|
||||||
| `help` | Afficher l'aide |
|
| `help` | Afficher l'aide |
|
||||||
| `exit` / `quit` | Quitter l'assistant |
|
| `exit` / `quit` | Quitter l'assistant |
|
||||||
| `reset` | Effacer l'historique de conversation |
|
| `reset` | Effacer l'historique de conversation |
|
||||||
| `profiles` | Lister les profils disponibles |
|
| `profiles` | Lister les profils disponibles |
|
||||||
| `profile <slug>` | Charger un profil (ex : `profile traveller_scout`) |
|
| `profile <slug>` | Charger un profil (ex : `profile traveller_scout`) |
|
||||||
| `voice <id>` | Définir la voix Voxtral manuellement |
|
| `voice <id>` | Définir la voix Voxtral manuellement |
|
||||||
| `voice clear` | Revenir à la voix automatique |
|
| `voice clear` | Revenir à la voix automatique |
|
||||||
| `mode vocal` | Passer en mode entrée microphone |
|
| `mode vocal` | Passer en mode entrée microphone |
|
||||||
| `mode texte` | Revenir en mode saisie clavier |
|
| `mode texte` | Revenir en mode saisie clavier |
|
||||||
| `mcp` | Lister les serveurs MCP connectés |
|
| `mcp` | Lister les serveurs MCP connectés |
|
||||||
| `mcp tools` | Lister tous les outils MCP disponibles |
|
| `mcp tools` | Lister tous les outils MCP disponibles |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -154,9 +156,9 @@ mcp_servers:
|
|||||||
|
|
||||||
### Profils inclus
|
### Profils inclus
|
||||||
|
|
||||||
| Slug | Nom | Description |
|
| Slug | Nom | Description |
|
||||||
|------|-----|-------------|
|
| ----------------- | ----------------------------- | -------------------------------------------------------------------------------------------------- |
|
||||||
| `default` | Arioch — Assistant général | Assistant généraliste en français |
|
| `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 |
|
| `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
|
#### Outils disponibles
|
||||||
|
|
||||||
| Outil | Description |
|
| Outil | Description |
|
||||||
|-------|-------------|
|
| -------------------------- | ------------------------------------------------------------------- |
|
||||||
| `search_worlds` | Recherche un monde par nom dans l'univers Traveller |
|
| `search_worlds` | Recherche un monde par nom dans l'univers Traveller |
|
||||||
| `find_route` | Calcule une route de saut entre deux mondes |
|
| `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_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_worlds_in_jump_range` | Mondes accessibles depuis une position en N sauts |
|
||||||
| `get_jump_map` | Carte de la zone autour d'un monde |
|
| `get_jump_map` | Carte de la zone autour d'un monde |
|
||||||
| `get_subsector_map` | Image d'un sous-secteur |
|
| `get_subsector_map` | Image d'un sous-secteur |
|
||||||
| `render_custom_map` | Rendu de carte personnalisée |
|
| `render_custom_map` | Rendu de carte personnalisée |
|
||||||
| `get_sector_list` | Liste de tous les secteurs de l'univers |
|
| `get_sector_list` | Liste de tous les secteurs de l'univers |
|
||||||
| `get_sector_data` | Données d'un secteur (format SEC) |
|
| `get_sector_data` | Données d'un secteur (format SEC) |
|
||||||
| `get_sector_metadata` | Métadonnées d'un secteur (JSON) |
|
| `get_sector_metadata` | Métadonnées d'un secteur (JSON) |
|
||||||
| `get_allegiance_list` | Liste des allégeances politiques |
|
| `get_allegiance_list` | Liste des allégeances politiques |
|
||||||
|
|
||||||
#### (Re)compiler le serveur
|
#### (Re)compiler le serveur
|
||||||
|
|
||||||
@@ -326,24 +328,23 @@ python scripts/list_voices.py
|
|||||||
|
|
||||||
## Variables d'environnement
|
## Variables d'environnement
|
||||||
|
|
||||||
| Variable | Obligatoire | Défaut | Description |
|
| Variable | Obligatoire | Défaut | Description |
|
||||||
|----------|-------------|--------|-------------|
|
| --------------------- | ----------- | ------------- | ----------------------------------------- |
|
||||||
| `MISTRAL_API_KEY` | ✅ | — | Clé API Mistral AI |
|
| `MISTRAL_API_KEY` | ✅ | — | Clé API Mistral AI |
|
||||||
| `VOICE_ID` | ❌ | auto | ID voix Voxtral (sélection auto si vide) |
|
| `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 |
|
| `VOICE_LANGUAGE` | ❌ | `fr` | Langue préférée pour la sélection de voix |
|
||||||
| `SYSTEM_PROMPT` | ❌ | prompt Arioch | Prompt système par défaut |
|
| `SYSTEM_PROMPT` | ❌ | prompt Arioch | Prompt système par défaut |
|
||||||
| `TTS_PCM_SAMPLE_RATE` | ❌ | `24000` | Fréquence d'échantillonnage audio TTS |
|
| `TTS_PCM_SAMPLE_RATE` | ❌ | `24000` | Fréquence d'échantillonnage audio TTS |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## Dépendances Python
|
## Dépendances Python
|
||||||
|
|
||||||
| Package | Rôle |
|
| Package | Rôle |
|
||||||
|---------|------|
|
| --------------- | -------------------------------------------- |
|
||||||
| `mistralai` | SDK Mistral (LLM, TTS, STT Realtime) |
|
| `mistralai` | SDK Mistral (LLM, TTS, STT Realtime) |
|
||||||
| `python-dotenv` | Chargement des variables `.env` |
|
| `python-dotenv` | Chargement des variables `.env` |
|
||||||
| `sounddevice` | Capture microphone (mode vocal) |
|
| `sounddevice` | Capture microphone (mode vocal) |
|
||||||
| `numpy` | Traitement PCM audio |
|
| `numpy` | Traitement PCM audio |
|
||||||
| `pyyaml` | Lecture des fichiers de profil |
|
| `pyyaml` | Lecture des fichiers de profil |
|
||||||
| `mcp` | Client MCP (connexion aux serveurs d'outils) |
|
| `mcp` | Client MCP (connexion aux serveurs d'outils) |
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user