| --- |
| title: GLM Visual Variable Runtime |
| emoji: 👁️ |
| colorFrom: indigo |
| colorTo: blue |
| sdk: docker |
| app_port: 8000 |
| short_description: OpenAI-compatible visual runtime gateway |
| --- |
| |
| # GLM Visual Variable Runtime |
|
|
| `glm-5.2-visual-runtime` is a training-free multimodal gateway that exposes an OpenAI-compatible API while using GLM-5.2 as the reasoning engine and lazy visual lenses for images, OCR, palettes, objects, charts, and presentations. |
|
|
| The MVP in this repository is contract-first: |
|
|
| - FastAPI endpoints for `/v1/responses`, `/v1/chat/completions`, `/v1/files`, `/health`, and `/ready`. |
| - Persistent visual assets with hash-based deduplication and lazy cached views. |
| - Deterministic `test` mode providers, plus replaceable interfaces for GLM-5.2, GLM-5V-Turbo, and GLM-OCR. |
| - CPU-only ingest fingerprinting with Pillow, OpenCV, and NumPy. |
| - A TypeScript PptxGenJS renderer service for editable PowerPoint artifacts. |
| - No training, no fine-tuning, and no GLM-5.2 self-hosting. |
|
|
| ## Quick Start |
|
|
| ```bash |
| cp .env.example .env |
| docker compose up --build |
| ``` |
|
|
| API docs are available at `http://localhost:8000/docs`. |
|
|
| ## Local Tests |
|
|
| ```bash |
| cd apps/api |
| python3 -m venv .venv |
| . .venv/bin/activate |
| pip install -e ".[test]" |
| pytest ../../tests |
| ``` |
|
|
| ## Example |
|
|
| ```python |
| from openai import OpenAI |
| |
| client = OpenAI(base_url="http://localhost:8000/v1", api_key="test") |
| response = client.responses.create( |
| model="glm-5.2-visual-runtime", |
| input=[{ |
| "role": "user", |
| "content": [{"type": "input_text", "text": "Hello"}], |
| }], |
| ) |
| print(response.output_text) |
| ``` |
|
|
| ## Hugging Face Space |
|
|
| The deployment target is a Docker Space. Set the following secrets in the Space for cloud mode: |
|
|
| - `GLM_API_KEY` |
| - `VISION_API_KEY` |
| - `OCR_API_KEY` |
| - object store and database credentials |
|
|
| Without secrets, set `VISUAL_RUNTIME_MODE=test` to use deterministic fake providers. |
|
|