feat: SttPipeline avec cache SQLite (#7) #104
No reviewers
Labels
No labels
module:M0-setup
module:M1-stt
module:M1-stt
module:M2-ai
module:M2-ai
module:M3-rich
module:M3-rich
module:M4-bridge
module:M4-bridge
module:M5-bonus
module:M5-bonus
module:setup
priority:high
priority:high
priority:low
priority:low
priority:medium
priority:medium
type:chore
type:chore
type:feature
type:feature
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/my-fractal!104
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feat/7-stt-pipeline-cache"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Résumé
Implémente l'issue #7 : pipeline audio complet avec cache SQLite pour éviter les re-transcriptions.
SttPipeline: orchestre la réception des bytes audio → moteur STT → cache SQLitePipelineEvent: enumStarted | Transcribed(Transcript) | Cached(Transcript) | Error(String)émis viampsc::Receivertranscriptions(event_id TEXT PRIMARY KEY, text, language, confidence, segments_json, created_at)— lecture avant toute transcription, écriture après~/.local/share/fractal-plus/stt-cache.db(viadirs::data_local_dir())SttPipeline::run()spawne untokio::tasket retourne unmpsc::Receiver<PipelineEvent>non bloquantquery!macro avec featuressqlite + runtime-tokio-native-tls + migrate + macrosFichiers modifiés
Cargo.tomlsqlx = { version = "0.8", features = ["sqlite", "runtime-tokio-native-tls", "migrate", "macros"] }dans[workspace.dependencies]crates/fractal-stt/Cargo.tomlsqlx = { workspace = true }crates/fractal-stt/src/pipeline.rsSttPipeline,PipelineEvent, helpersload_from_cache/store_in_cachecrates/fractal-stt/src/lib.rsPipelineEventetSttPipeline; renommage du moduleopenai_whisper→openai(conforme à la spec)Plan de test
cargo build -p fractal-sttcompile sans erreurpipeline.run(event_id, audio, opts)→ reçoitStartedpuisTranscribed(_)event_id→ reçoit directementCached(_), moteur non sollicité~/.local/share/fractal-plus/stt-cache.dbavecsqlite3Error(_), pas de crashCloses #7
Pull request closed