From 197a6108d0c4e67082f20863b3316121730a213b Mon Sep 17 00:00:00 2001 From: Ankush Malaker <43288948+AnkushMalaker@users.noreply.github.com> Date: Wed, 7 Jan 2026 04:26:38 +0000 Subject: [PATCH] remove mistral deadcode; notebooks untouched --- .env.template | 6 +----- CLAUDE.md | 15 +++++-------- Docs/getting-started.md | 21 ++++++------------- .../Docs/memory-configuration-guide.md | 2 +- backends/advanced/Docs/quickstart.md | 21 ++++++------------- backends/advanced/README.md | 2 +- backends/advanced/SETUP_SCRIPTS.md | 9 ++++---- .../models/conversation.py | 3 +-- .../services/audio_stream/producer.py | 2 +- .../services/transcription/base.py | 1 - .../tests/test_conversation_models.py | 5 ++--- config.env.template | 6 +----- tests/configs/README.md | 4 ++-- 13 files changed, 31 insertions(+), 66 deletions(-) diff --git a/.env.template b/.env.template index c2a4d8a2..388edbf5 100644 --- a/.env.template +++ b/.env.template @@ -90,16 +90,12 @@ CHAT_TEMPERATURE=0.7 # SPEECH-TO-TEXT CONFIGURATION # ======================================== -# Primary transcription provider: deepgram, mistral, or parakeet +# Primary transcription provider: deepgram or parakeet TRANSCRIPTION_PROVIDER=deepgram # Deepgram configuration DEEPGRAM_API_KEY=your-deepgram-key-here -# Mistral configuration (when TRANSCRIPTION_PROVIDER=mistral) -MISTRAL_API_KEY=your-mistral-key-here -MISTRAL_MODEL=voxtral-mini-2507 - # Parakeet ASR configuration (when TRANSCRIPTION_PROVIDER=parakeet) PARAKEET_ASR_URL=http://host.docker.internal:8767 diff --git a/CLAUDE.md b/CLAUDE.md index abe20db6..dfd92196 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -18,7 +18,7 @@ This supports a comprehensive web dashboard for management. Chronicle includes an **interactive setup wizard** for easy configuration. The wizard guides you through: - Service selection (backend + optional services) - Authentication setup (admin account, JWT secrets) -- Transcription provider configuration (Deepgram, Mistral, or offline ASR) +- Transcription provider configuration (Deepgram or offline ASR) - LLM provider setup (OpenAI or Ollama) - Memory provider selection (Chronicle Native with Qdrant or OpenMemory MCP) - Network configuration and HTTPS setup @@ -184,12 +184,12 @@ docker compose up --build ## Architecture Overview ### Key Components -- **Audio Pipeline**: Real-time Opus/PCM → Application-level processing → Deepgram/Mistral transcription → memory extraction +- **Audio Pipeline**: Real-time Opus/PCM → Application-level processing → Deepgram transcription → memory extraction - **Wyoming Protocol**: WebSocket communication uses Wyoming protocol (JSONL + binary) for structured audio sessions - **Unified Pipeline**: Job-based tracking system for all audio processing (WebSocket and file uploads) - **Job Tracker**: Tracks pipeline jobs with stage events (audio → transcription → memory) and completion status - **Task Management**: BackgroundTaskManager tracks all async tasks to prevent orphaned processes -- **Unified Transcription**: Deepgram/Mistral transcription with fallback to offline ASR services +- **Unified Transcription**: Deepgram transcription with fallback to offline ASR services - **Memory System**: Pluggable providers (Chronicle native or OpenMemory MCP) - **Authentication**: Email-based login with MongoDB ObjectId user system - **Client Management**: Auto-generated client IDs as `{user_id_suffix}-{device_name}`, centralized ClientManager @@ -205,7 +205,7 @@ Required: Recommended: - Vector Storage: Qdrant (Chronicle provider) or OpenMemory MCP server - - Transcription: Deepgram, Mistral, or offline ASR services + - Transcription: Deepgram or offline ASR services Optional: - Parakeet ASR: Offline transcription service @@ -329,12 +329,7 @@ Chronicle supports multiple transcription services: TRANSCRIPTION_PROVIDER=deepgram DEEPGRAM_API_KEY=your-deepgram-key-here -# Option 2: Mistral (Voxtral models) -TRANSCRIPTION_PROVIDER=mistral -MISTRAL_API_KEY=your-mistral-key-here -MISTRAL_MODEL=voxtral-mini-2507 - -# Option 3: Local ASR (Parakeet) +# Option 2: Local ASR (Parakeet) PARAKEET_ASR_URL=http://host.docker.internal:8767 ``` diff --git a/Docs/getting-started.md b/Docs/getting-started.md index a923c99c..b8115ff6 100644 --- a/Docs/getting-started.md +++ b/Docs/getting-started.md @@ -36,7 +36,7 @@ cd backends/advanced **The setup wizard will guide you through:** - **Authentication**: Admin email/password setup -- **Transcription Provider**: Choose Deepgram, Mistral, or Offline (Parakeet) +- **Transcription Provider**: Choose Deepgram or Offline (Parakeet) - **LLM Provider**: Choose OpenAI or Ollama for memory extraction - **Memory Provider**: Choose Chronicle Native or OpenMemory MCP - **Optional Services**: Speaker Recognition and other extras @@ -52,14 +52,13 @@ cd backends/advanced Admin email [admin@example.com]: john@company.com Admin password (min 8 chars): ******** -► Speech-to-Text Configuration +► Speech-to-Text Configuration ------------------------------- Choose your transcription provider: 1) Deepgram (recommended - high quality, requires API key) - 2) Mistral (Voxtral models - requires API key) - 3) Offline (Parakeet ASR - requires GPU, runs locally) - 4) None (skip transcription setup) -Enter choice (1-4) [1]: 1 + 2) Offline (Parakeet ASR - requires GPU, runs locally) + 3) None (skip transcription setup) +Enter choice (1-3) [1]: 1 Get your API key from: https://console.deepgram.com/ Deepgram API key: dg_xxxxxxxxxxxxx @@ -154,12 +153,7 @@ OLLAMA_BASE_URL=http://ollama:11434 TRANSCRIPTION_PROVIDER=deepgram DEEPGRAM_API_KEY=your-deepgram-api-key-here -# Option 2: Mistral (Voxtral models for transcription) -TRANSCRIPTION_PROVIDER=mistral -MISTRAL_API_KEY=your-mistral-api-key-here -MISTRAL_MODEL=voxtral-mini-2507 - -# Option 3: Local ASR service +# Option 2: Local ASR service PARAKEET_ASR_URL=http://host.docker.internal:8080 ``` @@ -167,7 +161,6 @@ PARAKEET_ASR_URL=http://host.docker.internal:8080 - **OpenAI is strongly recommended** for LLM processing as it provides much better memory extraction and eliminates JSON parsing errors - **TRANSCRIPTION_PROVIDER** determines which service to use: - `deepgram`: Uses Deepgram's Nova-3 model for high-quality transcription - - `mistral`: Uses Mistral's Voxtral models for transcription - If not set, system falls back to offline ASR service - The system requires either online API keys or offline ASR service configuration @@ -312,7 +305,6 @@ curl -X POST "http://localhost:8000/api/process-audio-files" \ ### Transcription Options - **Deepgram API**: Cloud-based batch processing, high accuracy (recommended) -- **Mistral API**: Voxtral models for transcription with REST API processing - **Self-hosted ASR**: Local Wyoming protocol services with real-time processing - **Collection timeout**: 1.5 minute collection for optimal online processing quality @@ -407,7 +399,6 @@ uv sync --group (whatever group you want to sync) **Transcription Issues:** - **Deepgram**: Verify API key is valid and `TRANSCRIPTION_PROVIDER=deepgram` -- **Mistral**: Verify API key is valid and `TRANSCRIPTION_PROVIDER=mistral` - **Self-hosted**: Ensure ASR service is running on port 8765 - Check transcription service connection in health endpoint diff --git a/backends/advanced/Docs/memory-configuration-guide.md b/backends/advanced/Docs/memory-configuration-guide.md index 12796e13..66244003 100644 --- a/backends/advanced/Docs/memory-configuration-guide.md +++ b/backends/advanced/Docs/memory-configuration-guide.md @@ -65,7 +65,7 @@ memory: - **Embeddings**: `text-embedding-3-small`, `text-embedding-3-large` #### Ollama Models (Local) -- **LLM**: `llama3`, `mistral`, `qwen2.5` +- **LLM**: `llama3`, `qwen2.5` - **Embeddings**: `nomic-embed-text`, `all-minilm` ## Hot Reload diff --git a/backends/advanced/Docs/quickstart.md b/backends/advanced/Docs/quickstart.md index 0d681978..96a66421 100644 --- a/backends/advanced/Docs/quickstart.md +++ b/backends/advanced/Docs/quickstart.md @@ -34,7 +34,7 @@ cd backends/advanced **The setup wizard will guide you through:** - **Authentication**: Admin email/password setup -- **Transcription Provider**: Choose Deepgram, Mistral, or Offline (Parakeet) +- **Transcription Provider**: Choose Deepgram or Offline (Parakeet) - **LLM Provider**: Choose OpenAI or Ollama for memory extraction - **Memory Provider**: Choose Chronicle Native or OpenMemory MCP - **Optional Services**: Speaker Recognition and other extras @@ -50,14 +50,13 @@ cd backends/advanced Admin email [admin@example.com]: john@company.com Admin password (min 8 chars): ******** -► Speech-to-Text Configuration +► Speech-to-Text Configuration ------------------------------- Choose your transcription provider: 1) Deepgram (recommended - high quality, requires API key) - 2) Mistral (Voxtral models - requires API key) - 3) Offline (Parakeet ASR - requires GPU, runs locally) - 4) None (skip transcription setup) -Enter choice (1-4) [1]: 1 + 2) Offline (Parakeet ASR - requires GPU, runs locally) + 3) None (skip transcription setup) +Enter choice (1-3) [1]: 1 Get your API key from: https://console.deepgram.com/ Deepgram API key: dg_xxxxxxxxxxxxx @@ -152,12 +151,7 @@ OLLAMA_BASE_URL=http://ollama:11434 TRANSCRIPTION_PROVIDER=deepgram DEEPGRAM_API_KEY=your-deepgram-api-key-here -# Option 2: Mistral (Voxtral models for transcription) -TRANSCRIPTION_PROVIDER=mistral -MISTRAL_API_KEY=your-mistral-api-key-here -MISTRAL_MODEL=voxtral-mini-2507 - -# Option 3: Local ASR service +# Option 2: Local ASR service PARAKEET_ASR_URL=http://host.docker.internal:8080 ``` @@ -165,7 +159,6 @@ PARAKEET_ASR_URL=http://host.docker.internal:8080 - **OpenAI is strongly recommended** for LLM processing as it provides much better memory extraction and eliminates JSON parsing errors - **TRANSCRIPTION_PROVIDER** determines which service to use: - `deepgram`: Uses Deepgram's Nova-3 model for high-quality transcription - - `mistral`: Uses Mistral's Voxtral models for transcription - If not set, system falls back to offline ASR service - The system requires either online API keys or offline ASR service configuration @@ -310,7 +303,6 @@ curl -X POST "http://localhost:8000/api/audio/upload" \ ### Transcription Options - **Deepgram API**: Cloud-based batch processing, high accuracy (recommended) -- **Mistral API**: Voxtral models for transcription with REST API processing - **Self-hosted ASR**: Local Wyoming protocol services with real-time processing - **Collection timeout**: 1.5 minute collection for optimal online processing quality @@ -405,7 +397,6 @@ uv sync --group (whatever group you want to sync) **Transcription Issues:** - **Deepgram**: Verify API key is valid and `TRANSCRIPTION_PROVIDER=deepgram` -- **Mistral**: Verify API key is valid and `TRANSCRIPTION_PROVIDER=mistral` - **Self-hosted**: Ensure ASR service is running on port 8765 - Check transcription service connection in health endpoint diff --git a/backends/advanced/README.md b/backends/advanced/README.md index d493241c..60c832f0 100644 --- a/backends/advanced/README.md +++ b/backends/advanced/README.md @@ -31,7 +31,7 @@ Modern React-based web dashboard located in `./webui/` with: **The setup wizard guides you through:** - **Authentication**: Admin email/password setup with secure keys -- **Transcription Provider**: Choose between Deepgram, Mistral, or Offline (Parakeet) +- **Transcription Provider**: Choose between Deepgram or Offline (Parakeet) - **LLM Provider**: Choose between OpenAI (recommended) or Ollama for memory extraction - **Memory Provider**: Choose between Friend-Lite Native or OpenMemory MCP - **Optional Services**: Speaker Recognition, network configuration diff --git a/backends/advanced/SETUP_SCRIPTS.md b/backends/advanced/SETUP_SCRIPTS.md index b45c8910..7103e220 100644 --- a/backends/advanced/SETUP_SCRIPTS.md +++ b/backends/advanced/SETUP_SCRIPTS.md @@ -15,7 +15,7 @@ This document explains the different setup scripts available in Friend-Lite and ### What it does: - ✅ **Authentication Setup**: Admin email/password with secure key generation -- ✅ **Transcription Provider Selection**: Choose between Deepgram, Mistral, or Offline (Parakeet) +- ✅ **Transcription Provider Selection**: Choose between Deepgram or Offline (Parakeet) - ✅ **LLM Provider Configuration**: Choose between OpenAI (recommended) or Ollama - ✅ **Memory Provider Setup**: Choose between Friend-Lite Native or OpenMemory MCP - ✅ **API Key Collection**: Prompts for required keys with helpful links to obtain them @@ -43,10 +43,9 @@ Admin password (min 8 chars): ******** ------------------------------- Choose your transcription provider: 1) Deepgram (recommended - high quality, requires API key) - 2) Mistral (Voxtral models - requires API key) - 3) Offline (Parakeet ASR - requires GPU, runs locally) - 4) None (skip transcription setup) -Enter choice (1-4) [1]: 1 + 2) Offline (Parakeet ASR - requires GPU, runs locally) + 3) None (skip transcription setup) +Enter choice (1-3) [1]: 1 Get your API key from: https://console.deepgram.com/ Deepgram API key: dg_xxxxxxxxxxxxx diff --git a/backends/advanced/src/advanced_omi_backend/models/conversation.py b/backends/advanced/src/advanced_omi_backend/models/conversation.py index 01dd5d96..735a8be5 100644 --- a/backends/advanced/src/advanced_omi_backend/models/conversation.py +++ b/backends/advanced/src/advanced_omi_backend/models/conversation.py @@ -21,7 +21,6 @@ class Conversation(Document): class TranscriptProvider(str, Enum): """Supported transcription providers.""" DEEPGRAM = "deepgram" - MISTRAL = "mistral" PARAKEET = "parakeet" SPEECH_DETECTION = "speech_detection" # Legacy value UNKNOWN = "unknown" # Fallback value @@ -63,7 +62,7 @@ class TranscriptVersion(BaseModel): transcript: Optional[str] = Field(None, description="Full transcript text") segments: List["Conversation.SpeakerSegment"] = Field(default_factory=list, description="Speaker segments") provider: Optional["Conversation.TranscriptProvider"] = Field(None, description="Transcription provider used") - model: Optional[str] = Field(None, description="Model used (e.g., nova-3, voxtral-mini-2507)") + model: Optional[str] = Field(None, description="Model used (e.g., nova-3, parakeet)") created_at: datetime = Field(description="When this version was created") processing_time_seconds: Optional[float] = Field(None, description="Time taken to process") metadata: Dict[str, Any] = Field(default_factory=dict, description="Additional provider-specific metadata") diff --git a/backends/advanced/src/advanced_omi_backend/services/audio_stream/producer.py b/backends/advanced/src/advanced_omi_backend/services/audio_stream/producer.py index 66b0acf7..f7299cda 100644 --- a/backends/advanced/src/advanced_omi_backend/services/audio_stream/producer.py +++ b/backends/advanced/src/advanced_omi_backend/services/audio_stream/producer.py @@ -52,7 +52,7 @@ async def init_session( user_id: User identifier client_id: Client identifier mode: Processing mode (streaming/batch) - provider: Transcription provider ("deepgram", "mistral", etc.) + provider: Transcription provider ("deepgram", "parakeet", etc.) """ # Client-specific stream naming (one stream per client for isolation) stream_name = f"audio:stream:{client_id}" diff --git a/backends/advanced/src/advanced_omi_backend/services/transcription/base.py b/backends/advanced/src/advanced_omi_backend/services/transcription/base.py index 13893a68..7d0f2306 100644 --- a/backends/advanced/src/advanced_omi_backend/services/transcription/base.py +++ b/backends/advanced/src/advanced_omi_backend/services/transcription/base.py @@ -36,7 +36,6 @@ class TranscriptionProvider(Enum): """Available transcription providers for audio stream routing.""" DEEPGRAM = "deepgram" PARAKEET = "parakeet" - MISTRAL = "mistral" class BaseTranscriptionProvider(abc.ABC): diff --git a/backends/advanced/tests/test_conversation_models.py b/backends/advanced/tests/test_conversation_models.py index e4387c89..c2c27dd0 100644 --- a/backends/advanced/tests/test_conversation_models.py +++ b/backends/advanced/tests/test_conversation_models.py @@ -134,7 +134,7 @@ def test_add_transcript_version(self): version_id="v2", transcript="Updated transcript", segments=segments, - provider=TranscriptProvider.MISTRAL, + provider=TranscriptProvider.PARAKEET, set_as_active=False ) @@ -170,7 +170,7 @@ def test_set_active_versions(self): segments2 = [SpeakerSegment(start=0.0, end=5.0, text="Version 2", speaker="Speaker A")] conversation.add_transcript_version("v1", "Transcript 1", segments1, TranscriptProvider.DEEPGRAM) - conversation.add_transcript_version("v2", "Transcript 2", segments2, TranscriptProvider.MISTRAL, set_as_active=False) + conversation.add_transcript_version("v2", "Transcript 2", segments2, TranscriptProvider.PARAKEET, set_as_active=False) # Should be v1 active assert conversation.active_transcript_version == "v1" @@ -213,7 +213,6 @@ def test_provider_enums(self): """Test that provider enums work correctly.""" # Test TranscriptProvider enum assert TranscriptProvider.DEEPGRAM == "deepgram" - assert TranscriptProvider.MISTRAL == "mistral" assert TranscriptProvider.PARAKEET == "parakeet" # Test MemoryProvider enum diff --git a/config.env.template b/config.env.template index 3312dfae..bc7d0ca4 100644 --- a/config.env.template +++ b/config.env.template @@ -65,16 +65,12 @@ OPENAI_API_KEY = sk-xxxxx # SPEECH-TO-TEXT CONFIGURATION # ======================================== -# Primary transcription provider: deepgram, mistral, or parakeet +# Primary transcription provider: deepgram or parakeet TRANSCRIPTION_PROVIDER = deepgram # Deepgram configuration DEEPGRAM_API_KEY = 90xxxxxx -# Mistral configuration (when TRANSCRIPTION_PROVIDER=mistral) -MISTRAL_API_KEY = -MISTRAL_MODEL = voxtral-mini-2507 - # Parakeet ASR configuration (when TRANSCRIPTION_PROVIDER=parakeet) PARAKEET_ASR_URL = http://host.docker.internal:8767 diff --git a/tests/configs/README.md b/tests/configs/README.md index 8b1e196f..0b6ff73d 100644 --- a/tests/configs/README.md +++ b/tests/configs/README.md @@ -60,7 +60,7 @@ done When creating a new test configuration: -1. **Name it descriptively**: `{stt}-{llm}.yml` (e.g., `mistral-openai.yml`) +1. **Name it descriptively**: `{stt}-{llm}.yml` (e.g., `deepgram-openai.yml`) 2. **Use environment variables**: Always use `${VAR:-default}` pattern for secrets 3. **Set appropriate defaults**: Update the `defaults:` section to match your provider combo 4. **Include only required models**: Don't include models that aren't used @@ -124,7 +124,7 @@ Test configs use environment variable substitution to avoid hardcoding secrets: As you add support for new providers, create corresponding test configs: -- `mistral-openai.yml` - Mistral Voxtral STT + OpenAI LLM +- `deepgram-openai.yml` - Deepgram STT + OpenAI LLM - `deepgram-ollama.yml` - Deepgram STT + Local Ollama LLM - `parakeet-openai.yml` - Local Parakeet STT + OpenAI LLM - etc.