Skip to Content
Mélodium 0.10.1 is now available!
DocsExemplesRésumé de réunion

Résumé de réunion

Source: 10_meeting_summary_service

Un serveur HTTP qui accepte des uploads audio bruts, les transcrit avec l’API ElevenLabs Scribe, génère un résumé structuré de réunion avec Claude Sonnet, et renvoie le résumé en streaming dans la réponse HTTP. Chaque requête est traitée dans sa propre track — le serveur gère plusieurs uploads simultanés sans aucune gestion explicite de threads.

Exécution

melodium run 10_meeting_summary_service/Compo.toml \ --anthropic_key sk-ant-... \ --elevenlabs_key el-...
$ curl -X POST http://127.0.0.1:8080/summarise \ --data-binary @meeting.wav \ -H "Content-Type: audio/wav" ## Résumé de réunion **Vue d'ensemble :** … **Décisions clés :** - … **Actions :** - …

Fonctionnement

Trois modèles sont instanciés au démarrage :

model server: HttpServer(…) model stt: Stt(elevenlabs_key=elevenlabs_key) model llm: Llm(anthropic_key=anthropic_key)

Stt utilise le modèle ElevenLabs scribe_v1. Llm utilise Claude Sonnet avec un system prompt de résumé structuré et une température plus basse (0,4) pour produire une sortie concentrée et cohérente.

See in Compositeur Studio

Pipeline par requête

Le sous-traitement summariseRequest gère tout pour une requête :

transcribe retourne un Block<string>. L’adaptateur stream<string>() le convertit en Stream<string> pour qu’il puisse s’écouler dans buildSummaryPrompt, qui enveloppe la transcription brute dans un template de prompt via entry + format.

chat retourne un Stream<string> de tokens de réponse, encodés et transmis directement dans connection.data — les tokens du résumé apparaissent dans la réponse HTTP au fur et à mesure de leur génération.

See in Compositeur Studio

Explication vidéo

Dépendances

[dependencies] std = "0.10.1" # flux de base, journalisation, structures de données http = "0.10.1" # serveur et client HTTP net = "0.10.1" # utilitaires d'adresses IP encoding = "0.10.1" # encodage / décodage UTF-8 ml = "0.10.1" # inférence LLM, STT, TTS et modèles locaux