Initial release: DictIA v0.8.14-alpha (fork de Speakr, AGPL-3.0)
This commit is contained in:
101
deployment/profiles/docker-compose.dictia16.yml
Normal file
101
deployment/profiles/docker-compose.dictia16.yml
Normal file
@@ -0,0 +1,101 @@
|
||||
# =============================================================================
|
||||
# DictIA 16 — Docker Compose
|
||||
# GPU : RTX 5070 Ti (16 Go VRAM)
|
||||
# =============================================================================
|
||||
#
|
||||
# Services :
|
||||
# - dictia : Application principale DictIA
|
||||
# - whisperx-asr : Service de transcription WhisperX Large-v3
|
||||
# - ollama : LLM local Mistral 7B (résumés, chat, Q&A)
|
||||
#
|
||||
# Démarrage :
|
||||
# 1. cp config/env.dictia16.example .env
|
||||
# 2. docker compose -f config/docker-compose.dictia16.yml up -d
|
||||
# 3. Télécharger Mistral : docker exec ollama ollama pull mistral
|
||||
#
|
||||
# Note : Aucune clé API nécessaire — tout tourne en local (100% privé).
|
||||
# =============================================================================
|
||||
|
||||
services:
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Application DictIA
|
||||
# ---------------------------------------------------------------------------
|
||||
dictia:
|
||||
image: dictia:latest
|
||||
container_name: dictia
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "8899:8899"
|
||||
env_file:
|
||||
- ../.env
|
||||
environment:
|
||||
- LOG_LEVEL=ERROR
|
||||
volumes:
|
||||
- ../uploads:/data/uploads
|
||||
- ../instance:/data/instance
|
||||
# Décommenter pour l'export automatique :
|
||||
# - ../exports:/data/exports
|
||||
# Décommenter pour le traitement automatique :
|
||||
# - ../auto-process:/data/auto-process
|
||||
depends_on:
|
||||
- whisperx-asr
|
||||
- ollama
|
||||
networks:
|
||||
- dictia-net
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# WhisperX ASR — Transcription locale (WhisperX Large-v3)
|
||||
# RTX 5070 Ti : BATCH_SIZE=32, COMPUTE_TYPE=float16
|
||||
# ---------------------------------------------------------------------------
|
||||
whisperx-asr:
|
||||
image: murtazanasir/whisperx-asr-service:latest
|
||||
container_name: whisperx-asr
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- HF_TOKEN=${HF_TOKEN}
|
||||
- DEVICE=cuda
|
||||
- COMPUTE_TYPE=float16
|
||||
- BATCH_SIZE=32
|
||||
- DEFAULT_MODEL=large-v3
|
||||
volumes:
|
||||
- whisperx-models:/root/.cache
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- driver: nvidia
|
||||
count: 1
|
||||
capabilities: [gpu]
|
||||
networks:
|
||||
- dictia-net
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Ollama — LLM local Mistral 7B
|
||||
# Résumés, points d'action, Q&A — 100% local, aucune donnée externe
|
||||
# ---------------------------------------------------------------------------
|
||||
ollama:
|
||||
image: ollama/ollama:latest
|
||||
container_name: ollama
|
||||
restart: unless-stopped
|
||||
volumes:
|
||||
- ollama-models:/root/.ollama
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- driver: nvidia
|
||||
count: 1
|
||||
capabilities: [gpu]
|
||||
networks:
|
||||
- dictia-net
|
||||
|
||||
networks:
|
||||
dictia-net:
|
||||
driver: bridge
|
||||
|
||||
volumes:
|
||||
whisperx-models:
|
||||
driver: local
|
||||
ollama-models:
|
||||
driver: local
|
||||
75
deployment/profiles/docker-compose.dictia8.yml
Normal file
75
deployment/profiles/docker-compose.dictia8.yml
Normal file
@@ -0,0 +1,75 @@
|
||||
# =============================================================================
|
||||
# DictIA 8 — Docker Compose
|
||||
# GPU : RTX 5060 (8 Go VRAM)
|
||||
# =============================================================================
|
||||
#
|
||||
# Services :
|
||||
# - dictia : Application principale DictIA
|
||||
# - whisperx-asr : Service de transcription WhisperX Large-v3
|
||||
#
|
||||
# Démarrage :
|
||||
# 1. cp config/env.dictia8.example .env
|
||||
# 2. Remplir TEXT_MODEL_API_KEY dans .env
|
||||
# 3. docker compose -f config/docker-compose.dictia8.yml up -d
|
||||
# =============================================================================
|
||||
|
||||
services:
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Application DictIA
|
||||
# ---------------------------------------------------------------------------
|
||||
dictia:
|
||||
image: dictia:latest
|
||||
container_name: dictia
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "8899:8899"
|
||||
env_file:
|
||||
- ../.env
|
||||
environment:
|
||||
- LOG_LEVEL=ERROR
|
||||
volumes:
|
||||
- ../uploads:/data/uploads
|
||||
- ../instance:/data/instance
|
||||
# Décommenter pour l'export automatique :
|
||||
# - ../exports:/data/exports
|
||||
# Décommenter pour le traitement automatique :
|
||||
# - ../auto-process:/data/auto-process
|
||||
depends_on:
|
||||
- whisperx-asr
|
||||
networks:
|
||||
- dictia-net
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# WhisperX ASR — Transcription locale (WhisperX Large-v3)
|
||||
# RTX 5060 : BATCH_SIZE=16, COMPUTE_TYPE=float16
|
||||
# ---------------------------------------------------------------------------
|
||||
whisperx-asr:
|
||||
image: murtazanasir/whisperx-asr-service:latest
|
||||
container_name: whisperx-asr
|
||||
restart: unless-stopped
|
||||
environment:
|
||||
- HF_TOKEN=${HF_TOKEN}
|
||||
- DEVICE=cuda
|
||||
- COMPUTE_TYPE=float16
|
||||
- BATCH_SIZE=16
|
||||
- DEFAULT_MODEL=large-v3
|
||||
volumes:
|
||||
- whisperx-models:/root/.cache
|
||||
deploy:
|
||||
resources:
|
||||
reservations:
|
||||
devices:
|
||||
- driver: nvidia
|
||||
count: 1
|
||||
capabilities: [gpu]
|
||||
networks:
|
||||
- dictia-net
|
||||
|
||||
networks:
|
||||
dictia-net:
|
||||
driver: bridge
|
||||
|
||||
volumes:
|
||||
whisperx-models:
|
||||
driver: local
|
||||
134
deployment/profiles/env.dictia16.example
Normal file
134
deployment/profiles/env.dictia16.example
Normal file
@@ -0,0 +1,134 @@
|
||||
# =============================================================================
|
||||
# DictIA 16 — Configuration (.env)
|
||||
# GPU : RTX 5070 Ti (16 Go VRAM)
|
||||
# =============================================================================
|
||||
#
|
||||
# Architecture :
|
||||
# - Transcription : WhisperX Large-v3 (local, ~5,5 Go VRAM)
|
||||
# - LLM (résumés) : Mistral 7B local via Ollama (~6,4 Go VRAM)
|
||||
# - Mode : Séquentiel (transcription puis résumé)
|
||||
# - Total VRAM : ~11,9 Go / 16 Go (marge ~4,1 Go)
|
||||
#
|
||||
# Démarrage rapide :
|
||||
# 1. cp config/env.dictia16.example .env
|
||||
# 2. Aucune clé API nécessaire — tout tourne en local
|
||||
# 3. docker compose -f config/docker-compose.dictia16.yml up -d
|
||||
# =============================================================================
|
||||
|
||||
# =============================================================================
|
||||
# MODÈLE DE TEXTE — Résumés, titres, chat (LLM LOCAL)
|
||||
# =============================================================================
|
||||
# DictIA 16 utilise Mistral 7B en local via Ollama.
|
||||
# Aucune donnée ne quitte le serveur — 100% privé.
|
||||
|
||||
TEXT_MODEL_BASE_URL=http://ollama:11434/v1
|
||||
TEXT_MODEL_API_KEY=not-required
|
||||
TEXT_MODEL_NAME=mistral
|
||||
|
||||
# --- Modèle de chat séparé (optionnel) ---
|
||||
# Même modèle par défaut, mais peut être changé pour un modèle plus rapide.
|
||||
# CHAT_MODEL_API_KEY=not-required
|
||||
# CHAT_MODEL_BASE_URL=http://ollama:11434/v1
|
||||
# CHAT_MODEL_NAME=mistral
|
||||
|
||||
# =============================================================================
|
||||
# TRANSCRIPTION — WhisperX ASR local (REQUIS)
|
||||
# =============================================================================
|
||||
# WhisperX tourne en local dans un conteneur Docker séparé.
|
||||
# Le service ASR est défini dans docker-compose.dictia16.yml.
|
||||
|
||||
ASR_BASE_URL=http://whisperx-asr:9000
|
||||
|
||||
# Diarisation (identification automatique des locuteurs) — recommandé
|
||||
ASR_DIARIZE=true
|
||||
ASR_RETURN_SPEAKER_EMBEDDINGS=true
|
||||
|
||||
# Nombre de locuteurs attendus (optionnel — aide la précision)
|
||||
# ASR_MIN_SPEAKERS=1
|
||||
# ASR_MAX_SPEAKERS=6
|
||||
|
||||
# =============================================================================
|
||||
# PARAMÈTRES ADMINISTRATEUR
|
||||
# =============================================================================
|
||||
ADMIN_USERNAME=admin
|
||||
ADMIN_EMAIL=admin@votreentreprise.com
|
||||
ADMIN_PASSWORD=changeme
|
||||
|
||||
# =============================================================================
|
||||
# ACCÈS ET INSCRIPTION
|
||||
# =============================================================================
|
||||
# Désactiver l'inscription publique (accès sur invitation uniquement)
|
||||
ALLOW_REGISTRATION=false
|
||||
|
||||
# Restreindre l'inscription aux domaines autorisés
|
||||
# Exemple : REGISTRATION_ALLOWED_DOMAINS=votreentreprise.com
|
||||
REGISTRATION_ALLOWED_DOMAINS=
|
||||
|
||||
# =============================================================================
|
||||
# FUSEAU HORAIRE
|
||||
# =============================================================================
|
||||
# Exemples : America/Toronto, America/Montreal, America/New_York, UTC
|
||||
TIMEZONE="America/Toronto"
|
||||
|
||||
# =============================================================================
|
||||
# LIMITES DE TOKENS
|
||||
# =============================================================================
|
||||
SUMMARY_MAX_TOKENS=8000
|
||||
CHAT_MAX_TOKENS=5000
|
||||
|
||||
# =============================================================================
|
||||
# COMPRESSION AUDIO
|
||||
# =============================================================================
|
||||
AUDIO_COMPRESS_UPLOADS=true
|
||||
AUDIO_CODEC=mp3
|
||||
AUDIO_BITRATE=128k
|
||||
|
||||
# =============================================================================
|
||||
# FONCTIONNALITÉS OPTIONNELLES
|
||||
# =============================================================================
|
||||
|
||||
# Inquire Mode — recherche IA sur tous les enregistrements
|
||||
# Peut être activé sur DictIA 16 (plus de VRAM disponible)
|
||||
ENABLE_INQUIRE_MODE=false
|
||||
|
||||
# Traitement automatique de fichiers (dossier surveillé)
|
||||
ENABLE_AUTO_PROCESSING=false
|
||||
# AUTO_PROCESS_MODE=admin_only
|
||||
# AUTO_PROCESS_WATCH_DIR=/data/auto-process
|
||||
|
||||
# Export automatique
|
||||
ENABLE_AUTO_EXPORT=false
|
||||
# AUTO_EXPORT_DIR=/data/exports
|
||||
# AUTO_EXPORT_TRANSCRIPTION=true
|
||||
# AUTO_EXPORT_SUMMARY=true
|
||||
|
||||
# Suppression automatique / rétention
|
||||
ENABLE_AUTO_DELETION=false
|
||||
# GLOBAL_RETENTION_DAYS=90
|
||||
# DELETION_MODE=audio_only
|
||||
|
||||
# =============================================================================
|
||||
# PARTAGE
|
||||
# =============================================================================
|
||||
ENABLE_INTERNAL_SHARING=false
|
||||
ENABLE_PUBLIC_SHARING=true
|
||||
USERS_CAN_DELETE=true
|
||||
|
||||
# =============================================================================
|
||||
# FILES D'ATTENTE DE TRAITEMENT
|
||||
# =============================================================================
|
||||
JOB_QUEUE_WORKERS=2
|
||||
SUMMARY_QUEUE_WORKERS=2
|
||||
JOB_MAX_RETRIES=3
|
||||
|
||||
# =============================================================================
|
||||
# BASE DE DONNÉES ET STOCKAGE
|
||||
# =============================================================================
|
||||
SQLALCHEMY_DATABASE_URI=sqlite:////data/instance/transcriptions.db
|
||||
UPLOAD_FOLDER=/data/uploads
|
||||
|
||||
# =============================================================================
|
||||
# JOURNALISATION
|
||||
# =============================================================================
|
||||
# ERROR = production (minimal), INFO = débogage, DEBUG = développement
|
||||
LOG_LEVEL=ERROR
|
||||
126
deployment/profiles/env.dictia8.example
Normal file
126
deployment/profiles/env.dictia8.example
Normal file
@@ -0,0 +1,126 @@
|
||||
# =============================================================================
|
||||
# DictIA 8 — Configuration (.env)
|
||||
# GPU : RTX 5060 (8 Go VRAM)
|
||||
# =============================================================================
|
||||
#
|
||||
# Architecture :
|
||||
# - Transcription : WhisperX Large-v3 (local, ~5,5 Go VRAM)
|
||||
# - LLM (résumés) : API cloud via OpenRouter (VRAM insuffisante pour LLM local)
|
||||
#
|
||||
# Démarrage rapide :
|
||||
# 1. cp config/env.dictia8.example .env
|
||||
# 2. Remplir TRANSCRIPTION_API_KEY et TEXT_MODEL_API_KEY
|
||||
# 3. docker compose -f config/docker-compose.dictia8.yml up -d
|
||||
# =============================================================================
|
||||
|
||||
# =============================================================================
|
||||
# MODÈLE DE TEXTE — Résumés, titres, chat (REQUIS)
|
||||
# =============================================================================
|
||||
# DictIA 8 utilise un LLM cloud via OpenRouter (VRAM insuffisante pour LLM local).
|
||||
# Inscrivez-vous sur https://openrouter.ai pour obtenir une clé API.
|
||||
|
||||
TEXT_MODEL_BASE_URL=https://openrouter.ai/api/v1
|
||||
TEXT_MODEL_API_KEY=votre_cle_openrouter
|
||||
TEXT_MODEL_NAME=openai/gpt-4o-mini
|
||||
|
||||
# =============================================================================
|
||||
# TRANSCRIPTION — WhisperX ASR local (REQUIS)
|
||||
# =============================================================================
|
||||
# WhisperX tourne en local dans un conteneur Docker séparé.
|
||||
# Le service ASR est défini dans docker-compose.dictia8.yml.
|
||||
|
||||
ASR_BASE_URL=http://whisperx-asr:9000
|
||||
|
||||
# Diarisation (identification automatique des locuteurs) — recommandé
|
||||
ASR_DIARIZE=true
|
||||
ASR_RETURN_SPEAKER_EMBEDDINGS=true
|
||||
|
||||
# Nombre de locuteurs attendus (optionnel — aide la précision)
|
||||
# ASR_MIN_SPEAKERS=1
|
||||
# ASR_MAX_SPEAKERS=6
|
||||
|
||||
# =============================================================================
|
||||
# PARAMÈTRES ADMINISTRATEUR
|
||||
# =============================================================================
|
||||
ADMIN_USERNAME=admin
|
||||
ADMIN_EMAIL=admin@votreentreprise.com
|
||||
ADMIN_PASSWORD=changeme
|
||||
|
||||
# =============================================================================
|
||||
# ACCÈS ET INSCRIPTION
|
||||
# =============================================================================
|
||||
# Désactiver l'inscription publique (accès sur invitation uniquement)
|
||||
ALLOW_REGISTRATION=false
|
||||
|
||||
# Restreindre l'inscription aux domaines autorisés
|
||||
# Exemple : REGISTRATION_ALLOWED_DOMAINS=votreentreprise.com
|
||||
REGISTRATION_ALLOWED_DOMAINS=
|
||||
|
||||
# =============================================================================
|
||||
# FUSEAU HORAIRE
|
||||
# =============================================================================
|
||||
# Exemples : America/Toronto, America/Montreal, America/New_York, UTC
|
||||
TIMEZONE="America/Toronto"
|
||||
|
||||
# =============================================================================
|
||||
# LIMITES DE TOKENS
|
||||
# =============================================================================
|
||||
SUMMARY_MAX_TOKENS=8000
|
||||
CHAT_MAX_TOKENS=5000
|
||||
|
||||
# =============================================================================
|
||||
# COMPRESSION AUDIO
|
||||
# =============================================================================
|
||||
AUDIO_COMPRESS_UPLOADS=true
|
||||
AUDIO_CODEC=mp3
|
||||
AUDIO_BITRATE=128k
|
||||
|
||||
# =============================================================================
|
||||
# FONCTIONNALITÉS OPTIONNELLES
|
||||
# =============================================================================
|
||||
|
||||
# Inquire Mode — recherche IA sur tous les enregistrements
|
||||
# Désactivé sur DictIA 8 (VRAM insuffisante pour embeddings locaux)
|
||||
ENABLE_INQUIRE_MODE=false
|
||||
|
||||
# Traitement automatique de fichiers (dossier surveillé)
|
||||
ENABLE_AUTO_PROCESSING=false
|
||||
# AUTO_PROCESS_MODE=admin_only
|
||||
# AUTO_PROCESS_WATCH_DIR=/data/auto-process
|
||||
|
||||
# Export automatique
|
||||
ENABLE_AUTO_EXPORT=false
|
||||
# AUTO_EXPORT_DIR=/data/exports
|
||||
# AUTO_EXPORT_TRANSCRIPTION=true
|
||||
# AUTO_EXPORT_SUMMARY=true
|
||||
|
||||
# Suppression automatique / rétention
|
||||
ENABLE_AUTO_DELETION=false
|
||||
# GLOBAL_RETENTION_DAYS=90
|
||||
# DELETION_MODE=audio_only
|
||||
|
||||
# =============================================================================
|
||||
# PARTAGE
|
||||
# =============================================================================
|
||||
ENABLE_INTERNAL_SHARING=false
|
||||
ENABLE_PUBLIC_SHARING=true
|
||||
USERS_CAN_DELETE=true
|
||||
|
||||
# =============================================================================
|
||||
# FILES D'ATTENTE DE TRAITEMENT
|
||||
# =============================================================================
|
||||
JOB_QUEUE_WORKERS=2
|
||||
SUMMARY_QUEUE_WORKERS=2
|
||||
JOB_MAX_RETRIES=3
|
||||
|
||||
# =============================================================================
|
||||
# BASE DE DONNÉES ET STOCKAGE
|
||||
# =============================================================================
|
||||
SQLALCHEMY_DATABASE_URI=sqlite:////data/instance/transcriptions.db
|
||||
UPLOAD_FOLDER=/data/uploads
|
||||
|
||||
# =============================================================================
|
||||
# JOURNALISATION
|
||||
# =============================================================================
|
||||
# ERROR = production (minimal), INFO = débogage, DEBUG = développement
|
||||
LOG_LEVEL=ERROR
|
||||
Reference in New Issue
Block a user