Files
meet/src/summary
lebaudantoine 4e5032a7a4 ♻️(summary) enhance file handling in the Celery worker
The previous code lacked proper encapsulation, resulting in an overly complex
worker. While the initial naive approach was great for bootstrapping the
feature, the refactor introduces more maturity with dedicated service classes
that have clear, single responsibilities.

During the extraction to services, several minor issues were fixed:

1) Properly closing the MinIO response.

2) Enhanced validation of object filenames and extensions to ensure
correct file handling.

3) Introduced a context manager to automatically clean up temporary
local files, removing reliance on developers.

4) Slightly improved logging and naming for clarity.

5) Dynamic temporary file extension handling when it was previously
always an hardcoded .ogg file, even when it was not the case.
2026-01-04 20:22:15 +01:00
..
2025-12-22 11:23:28 +01:00
2025-10-06 14:53:56 +02:00

Experimental Stack

This is an experimental part of the stack. It currently lacks proper observability, unit tests, and other production-grade features. This serves as the base for AI features in Visio.

How it works

Please refer to the Recording feature documentation and the Transcription feature documentation.

How to develop

(To develop locally follow the instructions on developing La Suite Meet locally)

From the root of the project:

make bootstrap

Configure your env values in env.d/summary to properly set up WhisperX and the LLM API you will call.

make run

When the stack is up, configure the MinIO webhook (TODO: add this step to make bootstrap)

make minio-webhook-setup

If you want to develop on the Celery workers with hot reloading, run:

docker compose watch celery-summary-transcribe celery-summary-summarize

Celery workers will hot reload on any change.