Skip to content

Overview

The Server is the FastAPI Backend, served by Uvicorn and launched with mirumoji server (or uvicorn mirumoji.server.app:app)

It's Async-First → Routers are async def and blocking work is wrapped in asyncio.to_thread()

Layout
  • AppFastAPI Application + Lifespan Handler

  • Config → Runtime Configuration

  • Constants → Shared Constants

  • Dependencies → Dependency-Injection Helpers

  • Media → Media File Handling

  • Jobs → In-Process Async Job Queue + Worker That Backs The Single + Batch Operations

  • DatabaseSQLAlchemy Models + Repos → Data-Access / Persistence Layer

  • ModelsPydantic Schemas

  • Processing → Transcription / Analysis Pipeline (Whisper, subtitles, text, LLM, audio, Anki) coordinated by the Processor

  • Routers → HTTP Endpoints Grouped By Surface (audio, dictionary, health, jobs, LLM, profile, video)

  • Modal Processing → Optional Modal GPU-Offload Entry Points + Configuration