Installation
Summarizer is a CLI application. The recommended install path is an isolated environment so upgrades to other Python tools cannot break it.
Why isolation matters
If you install with plain pip install --user, packages land in shared user site-packages (for example ~/.local/lib/python3.12/site-packages). That directory is shared with groq, litellm, openai, MCP servers, and anything else you have installed the same way.
Each of those tools may depend on pydantic. When one package upgrades pydantic but not pydantic-core (or vice versa), unrelated commands can start failing — including summarizer serve, which imports FastAPI and pydantic at startup. That is an environment problem, not a summarizer bug.
Use pipx or a dedicated venv to avoid this.
Choose an install method
pipx (recommended)
venv
pip (shared environment)
From source
Streamlit GUI
Docker
Install pipx if you do not have it yet (pip install pipx && pipx ensurepath).
CLI only:
HTTP API (adds FastAPI, uvicorn, python-multipart):
All extras (server + local Whisper + LiteLLM):
To upgrade later: pipx upgrade martino-summarize
Optional Extras
HTTP API server
The [server] extra adds FastAPI, uvicorn, and python-multipart. Install in isolation — the server pulls in pydantic transitively via FastAPI, which is where version skew usually shows up.
Open http://localhost:8000/docs for interactive documentation.
See the HTTP API guide for details.
LiteLLM
Route requests through LiteLLM to access 100+ providers with unified calling:
Then set base_url: litellm in summarizer.yaml and use provider-prefixed models:
Local Whisper
See Transcription for GPU setup.
All extras
If summarizer serve crashes with a pydantic or pydantic-core version error, your Python environment has mismatched dependencies — not a summarizer application bug. See Errors and Troubleshooting for fixes.