Skip to content

Latest commit

 

History

History
50 lines (37 loc) · 1.85 KB

File metadata and controls

50 lines (37 loc) · 1.85 KB

PortFolio-AI

Portfolio vocal de Mathis Capart, en ligne sur https://mathiscapart.xyz. Le visiteur pose sa question à voix haute ; l'assistant répond avec une copie de la voix de Mathis, uniquement à partir de son parcours.

Chaîne : reconnaissance vocale Kyutai (GPU AMD, ROCm) → recherche Qdrant → qwen3:8b via Ollama → synthèse Pocket TTS. Tout tourne en local sur un homelab Windows, exposé par Traefik et un tunnel Cloudflare, sans API d'inférence externe.

Structure

Dossier Contenu
backend/api/ API FastAPI : /health, /voice (WebSocket)
backend/stt/ reconnaissance vocale Kyutai en streaming
backend/tts/ service de synthèse vocale (voix clonée dans voix/, non versionné)
backend/rag/ découpage, ingestion et recherche ; corpus/ = le parcours
frontend/ Next.js en export statique : interface vocale et page parcours
deploy/ Traefik, nginx, cloudflared, script de démarrage des services natifs
.github/ CI et Dependabot

Démarrage rapide

docker compose up -d qdrant
powershell -ExecutionPolicy Bypass -File deploy\start-natif.ps1
docker compose --env-file .env -f deploy/docker-compose.expose.yml up -d

# Arrêter l'API et le TTS
powershell -ExecutionPolicy Bypass -File deploy\stop-natif.ps1

Documentation

Toute la documentation est dans docs/ :

Document Contenu
exploitation.md architecture, démarrage, déploiement, arrêt, vérifications, dépannage, sécurité
frontend.md front Next.js : variables de build, commandes, spécificités mobiles, tests

Conventions et décisions techniques mesurées : CLAUDE.md.

Tests

python -m pytest backend/tests          # backend, sans GPU
cd frontend; npx vitest run; npx tsc --noEmit