Instructions to use Tyesee/ZuperAI-14B with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use Tyesee/ZuperAI-14B with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf Tyesee/ZuperAI-14B:Q4_K_M # Run inference directly in the terminal: llama cli -hf Tyesee/ZuperAI-14B:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf Tyesee/ZuperAI-14B:Q4_K_M # Run inference directly in the terminal: llama cli -hf Tyesee/ZuperAI-14B:Q4_K_M
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf Tyesee/ZuperAI-14B:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf Tyesee/ZuperAI-14B:Q4_K_M
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf Tyesee/ZuperAI-14B:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf Tyesee/ZuperAI-14B:Q4_K_M
Use Docker
docker model run hf.co/Tyesee/ZuperAI-14B:Q4_K_M
- LM Studio
- Jan
- vLLM
How to use Tyesee/ZuperAI-14B with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Tyesee/ZuperAI-14B" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Tyesee/ZuperAI-14B", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Tyesee/ZuperAI-14B:Q4_K_M
- Ollama
How to use Tyesee/ZuperAI-14B with Ollama:
ollama run hf.co/Tyesee/ZuperAI-14B:Q4_K_M
- Unsloth Desktop
- Pi
How to use Tyesee/ZuperAI-14B with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Tyesee/ZuperAI-14B:Q4_K_M
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "Tyesee/ZuperAI-14B:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use Tyesee/ZuperAI-14B with Docker Model Runner:
docker model run hf.co/Tyesee/ZuperAI-14B:Q4_K_M
- Lemonade
How to use Tyesee/ZuperAI-14B with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull Tyesee/ZuperAI-14B:Q4_K_M
Run and chat with the model
lemonade run user.ZuperAI-14B-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use Tyesee/ZuperAI-14B with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Tyesee/ZuperAI-14B:Q4_K_M
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default Tyesee/ZuperAI-14B:Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use Tyesee/ZuperAI-14B with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Tyesee/ZuperAI-14B:Q4_K_M
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "Tyesee/ZuperAI-14B:Q4_K_M" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
Download toolkit/verify.py from Tyesee/ZuperAI-14B: direct link, hf CLI and curl.
- Browser
- Download file 9.48 kB
-
https://huggingface.co/Tyesee/ZuperAI-14B/resolve/main/toolkit/verify.py
- Command line
-
hf download hf://Tyesee/ZuperAI-14B/toolkit/verify.py
-
curl -L -o verify.py https://huggingface.co/Tyesee/ZuperAI-14B/resolve/main/toolkit/verify.py
9.48 kB
| # -*- coding: utf-8 -*- | |
| """ZuperAI с исполняемой самопроверкой (test-driven): тесты → код → прогон → чинка. | |
| Поток: | |
| 1. «судья» пишет юнит-тесты ПО ЗАДАЧЕ (контракт, без видения кода); | |
| 2. локальная модель пишет код, который должен пройти эти тесты; | |
| 3. тесты гоняются в песочнице (отдельный subprocess, таймаут); | |
| 4. при провале судья решает, где ошибка — в коде или в тесте, и чинит её; | |
| 5. повтор, пока тесты не пройдут (или не выйдет лимит попыток). | |
| Кто есть кто: | |
| --code local|lmstudio кто пишет КОД. local = transformers+LoRA (грузит 3B в память), | |
| lmstudio = LM Studio (GGUF, быстрее, без torch). По умолчанию local. | |
| --judge deepseek|local|lmstudio кто пишет ТЕСТЫ и судит. По умолчанию deepseek, если ключ есть. | |
| Практичные связки: | |
| --code lmstudio --judge deepseek → код локально (быстро), тесты/судья сильные | |
| --code lmstudio --judge lmstudio → полностью офлайн, без DeepSeek и без torch | |
| Запуск: | |
| venv/Scripts/python.exe verify.py "Напиши функцию, которая ..." | |
| Ключи: | |
| --attempts N число попыток (по умолчанию 5) | |
| --timeout N таймаут прогона тестов, сек (по умолчанию 30) | |
| --keep не удалять песочницу (покажет путь к solution.py/test_*.py) | |
| """ | |
| import sys | |
| import tempfile | |
| from webui import (deepseek_available, deepseek_generate, | |
| lmstudio_available, lmstudio_generate) | |
| from verify_util import (TEST_SYSTEM, VERIFY_ATTEMPTS, VERIFY_TIMEOUT, | |
| run_tests, looks_like_tests, tail, ensure_unittest_header) | |
| SYSTEM = ("Ты — опытный программист. Пиши рабочий, чистый код без лишних пояснений. " | |
| "Комментарии и докстринги — на русском.") | |
| def _cli_args(): | |
| args = sys.argv[1:] | |
| attempts, timeout, keep = VERIFY_ATTEMPTS, VERIFY_TIMEOUT, False | |
| code = "local" | |
| judge = "deepseek" if deepseek_available() else "local" | |
| prompt_parts = [] | |
| i = 0 | |
| while i < len(args): | |
| a = args[i] | |
| if a == "--attempts" and i + 1 < len(args): | |
| attempts = int(args[i + 1]); i += 2; continue | |
| if a == "--timeout" and i + 1 < len(args): | |
| timeout = int(args[i + 1]); i += 2; continue | |
| if a == "--judge" and i + 1 < len(args): | |
| judge = args[i + 1].lower(); i += 2; continue | |
| if a == "--code" and i + 1 < len(args): | |
| code = args[i + 1].lower(); i += 2; continue | |
| if a == "--keep": | |
| keep = True; i += 1; continue | |
| prompt_parts.append(a); i += 1 | |
| if judge not in ("deepseek", "local", "lmstudio"): | |
| judge = "local" | |
| if code not in ("local", "lmstudio"): | |
| code = "local" | |
| if judge == "deepseek" and not deepseek_available(): | |
| print("[!] DeepSeek недоступен — судья переключён на local", file=sys.stderr) | |
| judge = "local" | |
| if judge == "lmstudio" and not lmstudio_available(): | |
| print("[!] LM Studio не запущен (порт 1234) — судья переключён на local", file=sys.stderr) | |
| judge = "local" | |
| if code == "lmstudio" and not lmstudio_available(): | |
| print("[!] LM Studio не запущен (порт 1234) — код переключён на local", file=sys.stderr) | |
| code = "local" | |
| return (" ".join(prompt_parts) or | |
| "Напиши функцию, которая принимает список чисел и возвращает их среднее", | |
| attempts, timeout, keep, judge, code) | |
| def main(): | |
| prompt, max_attempts, timeout, keep, judge, code_backend = _cli_args() | |
| # грузим torch-модель только если кто-то (код или судья) работает через transformers | |
| tok = model = None | |
| if code_backend == "local" or judge == "local": | |
| from infer_smart import load, gen, _strip_fences as _sf | |
| tok, model = load() | |
| else: | |
| from infer_smart import _strip_fences as _sf | |
| def code_gen(msg, max_tokens=768): | |
| if code_backend == "lmstudio": | |
| return _sf(lmstudio_generate(msg, max_tokens=max_tokens)) | |
| return _sf(gen(tok, model, msg, max_tokens=max_tokens)) | |
| def judge_gen(msg, max_tokens=768): | |
| if judge == "deepseek": | |
| return _sf(deepseek_generate(msg, max_tokens=max_tokens)) | |
| if judge == "lmstudio": | |
| return _sf(lmstudio_generate(msg, max_tokens=max_tokens)) | |
| return _sf(gen(tok, model, msg, max_tokens=max_tokens)) | |
| print(f"[*] код: {code_backend}, судья: {judge}", file=sys.stderr) | |
| if judge == "local": | |
| print("[!] честно: локальная 3B может ошибаться в ТЕСТАХ (неверные ожидания). " | |
| "Для надёжности используйте --judge deepseek.", file=sys.stderr) | |
| sandbox = tempfile.mkdtemp(prefix="zuperai_verify_") | |
| # --- шаг 1: судья пишет тесты ПО ЗАДАЧЕ (TDD) --- | |
| t_messages = [{"role": "system", "content": TEST_SYSTEM}, | |
| {"role": "user", | |
| "content": f"Задача: {prompt}\n\nНапиши unittest-тесты, которые " | |
| f"импортируют решение из solution и проверяют корректность. " | |
| f"Верни ТОЛЬКО код тестов, без пояснений и без ```."}] | |
| tests = ensure_unittest_header(judge_gen(t_messages)) | |
| # --- шаг 2+: модель пишет код, гоняем, чиним --- | |
| messages = [{"role": "system", "content": SYSTEM}, | |
| {"role": "user", | |
| "content": f"Задача: {prompt}\n\nТесты (unittest):\n{tests}\n\n" | |
| f"Напиши код (solution.py), который проходит все эти тесты. " | |
| f"Верни ТОЛЬКО код, без пояснений и без ```."}] | |
| code = "" | |
| for attempt in range(1, max_attempts + 1): | |
| if not code: | |
| code = code_gen(messages) | |
| print(f"[попытка {attempt}/{max_attempts}] генерирую код…", file=sys.stderr) | |
| else: | |
| print(f"[попытка {attempt}/{max_attempts}] тестирую исправленный код…", | |
| file=sys.stderr) | |
| ok, out = run_tests(code, tests, sandbox, timeout) | |
| if ok: | |
| print(code) | |
| print(f"\n[OK] тесты прошли, попытка {attempt}") | |
| print("----- сгенерированные тесты -----") | |
| print(tests) | |
| print("----- песочница -----") | |
| print(sandbox if keep else "(временная, удалена)") | |
| return | |
| print(f"[попытка {attempt}] тесты упали:\n{tail(out)}", file=sys.stderr) | |
| messages.append({"role": "assistant", "content": code}) | |
| messages.append({"role": "user", | |
| "content": f"Решение не прошло тесты. Вывод тестов:\n" | |
| f"{tail(out)}\n\n" | |
| f"Определи, где ошибка: в коде (неверная реализация) " | |
| f"или в тесте (неверное ожидаемое значение). " | |
| f"Верни исправленный КОД, либо исправленный ТЕСТ — " | |
| f"только одно, без пояснений и без ```."}) | |
| fix = judge_gen(messages) | |
| if looks_like_tests(fix): | |
| tests = ensure_unittest_header(fix) | |
| code = "" | |
| messages = messages[:2] | |
| messages[1] = {"role": "user", | |
| "content": f"Задача: {prompt}\n\nТесты (unittest):\n{tests}\n\n" | |
| f"Напиши код (solution.py), который проходит все эти " | |
| f"тесты. Верни ТОЛЬКО код, без пояснений и без ```."} | |
| print("[*] судья решил, что ошибка в ТЕСТЕ — тест обновлён", file=sys.stderr) | |
| else: | |
| code = fix | |
| messages[-2] = {"role": "assistant", "content": code} | |
| print(code) | |
| print(f"\n[!] за {max_attempts} попыток тесты не прошли — выше последний вариант") | |
| print("----- последние тесты -----") | |
| print(tests) | |
| print("----- песочница -----") | |
| print(sandbox if keep else "(временная, удалена)") | |
| if __name__ == "__main__": | |
| main() | |