Install and configure
1. Configure transaction interpretation
Ramble needs an OpenAI-compatible /chat/completions endpoint. This can be a hosted provider or a self-hosted service such as Ollama, LiteLLM, or llama.cpp.
| Variable | Default | Purpose |
|---|---|---|
ASSISTANT_LLM_ENDPOINT | https://api.openai.com/v1/chat/completions | Full chat completions URL. |
ASSISTANT_LLM_MODEL | gpt-4o-mini | Model sent with each request. |
ASSISTANT_LLM_API_KEY | None | API key sent as a Bearer token. It may be empty for a local service without authentication. |
ASSISTANT_LLM_CONTEXT | None | Optional instructions added to every request, such as a preferred language for descriptions. |
Ramble is enabled when either ASSISTANT_LLM_ENDPOINT or ASSISTANT_LLM_API_KEY is set.
- With OpenAI, setting only
ASSISTANT_LLM_API_KEYuses the default endpoint and model. - With a self-hosted service, set
ASSISTANT_LLM_ENDPOINTand usuallyASSISTANT_LLM_MODEL. A key is optional if your service does not require one.
2. Configure audio transcription (optional)
You only need this service when clients upload audio to the Ramble API. Typing and device dictation work without it.
The service must provide an OpenAI-compatible /audio/transcriptions endpoint.
| Variable | Default | Purpose |
|---|---|---|
ASSISTANT_TRANSCRIPTION_ENDPOINT | https://api.openai.com/v1/audio/transcriptions | Full audio transcription URL. |
ASSISTANT_TRANSCRIPTION_MODEL | gpt-4o-mini-transcribe | Transcription model sent with each request. |
ASSISTANT_TRANSCRIPTION_API_KEY | None | API key sent as a Bearer token. |
ASSISTANT_TRANSCRIPTION_LANGUAGE | None | Optional language hint, such as en or ro. This improves short recordings that are difficult to identify automatically. |
The transcription service is enabled when either its endpoint or API key is set. Uploaded recordings are transcribed after the upload response; Pico retries pending transcription when saved rambles are loaded.
Docker Compose example
Add the variables under the existing Pico service:
services:
firefly-pico:
image: cioraneanu/firefly-pico:latest
environment:
- FIREFLY_URL=https://firefly.example.com
- ASSISTANT_LLM_ENDPOINT=https://api.openai.com/v1/chat/completions
- ASSISTANT_LLM_MODEL=gpt-4o-mini
- ASSISTANT_LLM_API_KEY=your-api-key
# - ASSISTANT_LLM_CONTEXT=Return descriptions in Romanian.
# Optional: required only for uploaded audio
- ASSISTANT_TRANSCRIPTION_ENDPOINT=https://api.openai.com/v1/audio/transcriptions
- ASSISTANT_TRANSCRIPTION_MODEL=gpt-4o-mini-transcribe
- ASSISTANT_TRANSCRIPTION_API_KEY=your-api-key
# - ASSISTANT_TRANSCRIPTION_LANGUAGE=ro
Restart the Pico container after changing its environment.
3. Verify the setup
In Pico, open Settings → Assistant. The page shows the resolved endpoint and model for each service.
- Test the language model connection.
- If you configured audio transcription, test that connection too.
- Optionally add personal LLM context. It is combined with the server-wide
ASSISTANT_LLM_CONTEXT.
When the language model test succeeds, open the new transaction screen and try a short message in Ramble.