title: Obsidian Daily Chat LLM
emoji: π§
colorFrom: purple
colorTo: indigo
sdk: docker
pinned: false
π§ Obsidian Daily Chat - Hugging Face LLM Space
This Space provides a 100% free, limitless, OpenAI-compatible API running a lightweight quantized Large Language Model (LLM). It is designed to act as a drop-in replacement API for your Obsidian AI Daily Chat and runs flawlessly on mobile (Android/iOS) and desktop.
π Deployment Instructions
1. File Setup
Ensure the following three files are in the root of your Hugging Face Space repository:
README.md: Contains the YAML header above (defines this Space as a Docker space) and this documentation.Dockerfile: Defines the environment and sets up the server.app.py: The launcher script that handles dynamic model downloading and runs the server.
π Multi-Space Setup: One Role, One Model, Per Space
If you deploy this same repo as three separate Spaces, give each one a role instead of manually picking a model for it. Set a single environment variable per Space:
SPACE_ROLE: one ofreasoning,uncensored,general.
On boot, the Space automatically loads the curated model for that role β no MODEL_ID needed:
| Role | Curated model | Good for |
|---|---|---|
reasoning |
DeepSeek-R1-Distill Qwen 7B | logic, math, coding |
uncensored |
Dolphin 2.9.4 Llama 3.1 8B | unfiltered instruction-following |
general |
Qwen 2.5 7B Instruct | everyday all-rounder |
Rename each Space (Settings β Rename this space) to match, e.g.
obsidian-daily-chat-reasoning, obsidian-daily-chat-uncensored, obsidian-daily-chat-general,
so the role is visible in the Space's name/URL, not just its config.
π "Update Models" button
Curated picks go stale β better models release every few months. Hit this endpoint on a Space whenever you want it to re-check the Hub and upgrade itself, without you having to pick a new model by hand:
POST https://<space-url>/jolly/refresh-model
It searches the Hub for the most-downloaded GGUF model matching that Space's role, verifies
a compatible quantized file exists, and hot-swaps to it. If nothing suitable turns up, it
leaves the currently running model untouched and reports "status": "no_change". Check
GET /jolly/info afterwards β model_source tells you "fallback" (curated pick) vs.
"hub-discovered" (auto-found), and last_refreshed has the timestamp.
π οΈ Manually Picking a Model (Advanced Override)
You don't have to use roles β you can still pick an exact model yourself via Environment Variables in Space Settings, which take priority over SPACE_ROLE.
How to Change the Model:
- Go to your Space Settings page on Hugging Face.
- Scroll down to Variables and Secrets.
- Define the following two environment variables:
MODEL_REPO: The Hugging Face repo ID (e.g.Qwen/Qwen2.5-1.5B-Instruct-GGUForunsloth/Llama-3.2-3B-Instruct-GGUF).MODEL_FILE: The exact GGUF filename or a glob pattern (e.g.*q4_k_m.gguforLlama-3.2-3B-Instruct-Q4_K_M.gguf).
- Re-run or restart your Space. It will automatically download the new model and load it!
π Synchronizing Multiple Spaces (Cluster Config)
If you have multiple Spaces deployed for Load Balancing and want them to use the same model without changing settings on all of them manually:
- Create a public or secret GitHub Gist containing a
config.jsonwith the model definition, for example:{ "MODEL_REPO": "unsloth/Llama-3.2-3B-Instruct-GGUF", "MODEL_FILE": "*Q4_K_M.gguf" } - Click the "Raw" button on your Gist and copy the raw file URL.
- On all of your Spaces, go to Settings > Variables and Secrets and add a variable named
CONFIG_URLset to that raw Gist URL. - Restart your Spaces. They will all automatically fetch your central Gist config and load the exact same model!
π‘ Recommended Models for Free CPU Basic (16GB RAM):
| Model Repository | Model Filename Pattern | RAM Usage | Performance | Description |
|---|---|---|---|---|
Qwen/Qwen2.5-1.5B-Instruct-GGUF (Default) |
*q4_k_m.gguf |
~1.2 GB | Extremely Fast | Smartest micro model; highly multilingual. |
unsloth/Llama-3.2-3B-Instruct-GGUF |
*Q4_K_M.gguf |
~2.2 GB | Fast & Capable | Exceptional reasoning and style. Highly recommended! |
Qwen/Qwen2.5-7B-Instruct-GGUF |
*q4_k_m.gguf |
~4.8 GB | Medium/Slow | High intelligence; slower generation speed on CPU. |
π Connecting to Obsidian
Once your Space status shows as Running, you can configure your Obsidian AI Daily Chat to use it as a standard OpenAI endpoint.
- API URL / Endpoint:
https://<YOUR_HF_USERNAME>-<YOUR_SPACE_NAME>.hf.space/v1 - API Key: Create a Read-only Hugging Face User Access Token in your Hugging Face Account Settings. Put this token (
hf_...) as the API key. - Model Name: Put
huggingface(or any string, as the server accepts any name).