planner-llm / README.md
aphisit.t
production deploy
3f41f74
|
Raw
History Blame Contribute Delete
2.79 kB
---
title: PlannerLLM
emoji: 🧠
colorFrom: blue
colorTo: green
sdk: docker
pinned: false
short_description: OpenAI-compatible planner model API via llama.cpp
---
# PlannerLLM
OpenAI-compatible API for `bldeaw/m1_planner_q4_k_m` using llama.cpp on Hugging Face Spaces.
---
# Features
- Docker Space ready
- Persistent model storage
- Secure secret handling
- Runtime config via environment variables
- Auto model download on first start
- OpenAI-compatible endpoints
---
# Required Hugging Face Setup
## 1. Create Docker Space
Create a new Hugging Face Space:
- SDK: Docker
---
## 2. Optional: Add Persistent Storage
Settings → Storage
Recommended — prevents re-downloading the model on every restart.
Mounted path:
```text
/data
```
---
## 3. Add Variables / Secrets
Settings → Variables and Secrets
### Variables
```text
MODEL_REPO_ID=bldeaw/m1_planner_q4_k_m
MODEL_FILE=m1_planner_q4_k_m.gguf
MODEL_REVISION=main
CTX_SIZE=2048
THREADS=2
N_GPU_LAYERS=0
MODEL_DIR=/data/models
PORT=7860
```
### Secret (only if private repo)
```text
HF_TOKEN=hf_xxxxx
```
### Optional checksum
```text
MODEL_SHA256=xxxxxxxx
```
---
# Repository Files
```text
Dockerfile
start.sh
.dockerignore
README.md
```
---
# Deploy
```bash
git clone https://huggingface.co/spaces/bldeaw/planner-llm
cp Dockerfile start.sh .dockerignore README.md planner-llm/
cd planner-llm
git add .
git commit -m "production deploy"
git push origin main
```
---
# API Usage
## Python
```python
from openai import OpenAI
client = OpenAI(
base_url="https://bldeaw-planner-llm.hf.space/v1",
api_key="dummy"
)
resp = client.chat.completions.create(
model="local-model",
messages=[
{"role": "user", "content": "Hello"}
]
)
print(resp.choices[0].message.content)
```
---
## curl
```bash
curl https://bldeaw-planner-llm.hf.space/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{
"model": "local-model",
"messages": [
{"role": "user", "content": "Hello"}
]
}'
```
---
# Endpoints
| Endpoint | Method |
| -------------------- | ------ |
| /v1/chat/completions | POST |
| /v1/completions | POST |
| /v1/models | GET |
| / | GET |
---
# Troubleshooting
## 503 Service Unavailable
Usually:
- Space building
- Model downloading (~986 MB, takes a few minutes)
- Crash during startup
Check the Logs tab.
## checksum mismatch
Wrong file or corrupted download. Delete the cached file and restart.
## Slow startup
Large model downloading on first run. Add persistent storage so it only downloads once.
---
# Security
- Store tokens only in Secrets
- Use a private model repo + HF_TOKEN if needed
- Never commit `.env`
- Never commit `.gguf` into the Space repo