Instructions to use json-l/ecu-pilot-qwen3-8b-GGUF 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 json-l/ecu-pilot-qwen3-8b-GGUF 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 json-l/ecu-pilot-qwen3-8b-GGUF # Run inference directly in the terminal: llama cli -hf json-l/ecu-pilot-qwen3-8b-GGUF
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf json-l/ecu-pilot-qwen3-8b-GGUF # Run inference directly in the terminal: llama cli -hf json-l/ecu-pilot-qwen3-8b-GGUF
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 json-l/ecu-pilot-qwen3-8b-GGUF # Run inference directly in the terminal: ./llama-cli -hf json-l/ecu-pilot-qwen3-8b-GGUF
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 json-l/ecu-pilot-qwen3-8b-GGUF # Run inference directly in the terminal: ./build/bin/llama-cli -hf json-l/ecu-pilot-qwen3-8b-GGUF
Use Docker
docker model run hf.co/json-l/ecu-pilot-qwen3-8b-GGUF
- LM Studio
- Jan
- vLLM
How to use json-l/ecu-pilot-qwen3-8b-GGUF with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "json-l/ecu-pilot-qwen3-8b-GGUF" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "json-l/ecu-pilot-qwen3-8b-GGUF", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/json-l/ecu-pilot-qwen3-8b-GGUF
- Ollama
How to use json-l/ecu-pilot-qwen3-8b-GGUF with Ollama:
ollama run hf.co/json-l/ecu-pilot-qwen3-8b-GGUF
- Unsloth Desktop
- Pi
How to use json-l/ecu-pilot-qwen3-8b-GGUF with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf json-l/ecu-pilot-qwen3-8b-GGUF
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": "json-l/ecu-pilot-qwen3-8b-GGUF" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use json-l/ecu-pilot-qwen3-8b-GGUF with Docker Model Runner:
docker model run hf.co/json-l/ecu-pilot-qwen3-8b-GGUF
- Lemonade
How to use json-l/ecu-pilot-qwen3-8b-GGUF with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull json-l/ecu-pilot-qwen3-8b-GGUF
Run and chat with the model
lemonade run user.ecu-pilot-qwen3-8b-GGUF-{{QUANT_TAG}}List all available models
lemonade list
- Hermes Agent
How to use json-l/ecu-pilot-qwen3-8b-GGUF with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf json-l/ecu-pilot-qwen3-8b-GGUF
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 json-l/ecu-pilot-qwen3-8b-GGUF
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use json-l/ecu-pilot-qwen3-8b-GGUF with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf json-l/ecu-pilot-qwen3-8b-GGUF
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 "json-l/ecu-pilot-qwen3-8b-GGUF" \ --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"
| license: apache-2.0 | |
| base_model: Qwen/Qwen3-8B | |
| tags: | |
| - dbt | |
| - tool-calling | |
| - gguf | |
| - qwen3 | |
| - fine-tuned | |
| - unsloth | |
| model_type: qwen3 | |
| quantized_by: llama.cpp | |
| pipeline_tag: text-generation | |
| # ecu-pilot-qwen3-8b-GGUF | |
| A fine-tuned Qwen3-8B model for **dbt project assistance via tool calling** against [dbt-index](https://github.com/dbt-labs/dbt-index). | |
| ## Overview | |
| ecu-pilot is trained to autonomously select and call the correct dbt-index tool (out of 9 available tools) based on natural language questions about a dbt project, then summarize the results concisely. | |
| ### Tools | |
| | Tool | Description | | |
| |------|-------------| | |
| | `status` | Project overview — model/test/source counts | | |
| | `schema` | Database schema exploration | | |
| | `search` | Full-text search across models, columns, descriptions | | |
| | `node` | Detailed info on a specific model/source/test | | |
| | `lineage` | Upstream/downstream dependency graph | | |
| | `query` | Run SQL against the dbt-index DuckDB | | |
| | `report` | Coverage reports (tests, docs, etc.) | | |
| | `impact` | Blast radius analysis for model changes | | |
| | `diff` | Compare project state across branches | | |
| ## Training | |
| - **Base model**: Qwen3-8B (via `unsloth/Qwen3-8B-bnb-4bit`) | |
| - **Method**: QLoRA (r=32, alpha=32) with Unsloth + TRL SFTTrainer | |
| - **Data**: 667 tool-calling conversation examples from 8 dbt projects (BIRD benchmark databases) | |
| - **Epochs**: 1 | |
| - **Hardware**: AWS EC2 g6 (NVIDIA L40S 48GB) | |
| ## Quantization | |
| - **Format**: GGUF Q4_K_M (4-bit quantized via llama.cpp) | |
| - **Size**: ~4.7 GB | |
| ## Chat Template | |
| This model uses a **custom chat template** for tool calling. The template is included as [`chat_template.jinja`](chat_template.jinja) in this repo. | |
| Key differences from stock Qwen3: | |
| - Tool definitions are injected into the system message within `<tools>` XML tags | |
| - Tool calls use `<tool_call>` / `</tool_call>` XML delimiters | |
| - Tool responses are wrapped in `<tool_response>` / `</tool_response>` and sent as user messages | |
| When using with inference servers that support Jinja templates (vLLM, TGI, llama.cpp server), point to this template file. | |
| ## Usage | |
| ### LM Studio | |
| 1. Download the `.gguf` file | |
| 2. Place in `~/.lmstudio/models/json-l/ecu-pilot-qwen3-8b-GGUF/` | |
| 3. Load in LM Studio, set the chat template to the contents of `chat_template.jinja`, and start the local server | |
| ### Ollama | |
| Create a `Modelfile`: | |
| ``` | |
| FROM ./ecu-pilot-qwen3-8b-q4km.gguf | |
| TEMPLATE """{{- if .System }}<|im_start|>system | |
| {{ .System }}<|im_end|> | |
| {{ end }}{{- if .Tools }}<|im_start|>system | |
| # Tools | |
| You are provided with function signatures within <tools></tools> XML tags: | |
| <tools> | |
| {{- range .Tools }} | |
| {{ json . }} | |
| {{- end }} | |
| </tools> | |
| <|im_end|> | |
| {{ end }}{{- range .Messages }}<|im_start|>{{ .Role }} | |
| {{- if .Content }} | |
| {{ .Content }} | |
| {{- end }}{{- if .ToolCalls }} | |
| <tool_call> | |
| {{- range .ToolCalls }} | |
| {"name": "{{ .Function.Name }}", "arguments": {{ json .Function.Arguments }}} | |
| {{- end }} | |
| </tool_call> | |
| {{- end }}<|im_end|> | |
| {{ end }}<|im_start|>assistant | |
| """ | |
| SYSTEM """You are an expert dbt project assistant with access to a dbt-index metadata server.""" | |
| PARAMETER stop "<|im_end|>" | |
| PARAMETER stop "<tool_call>" | |
| PARAMETER temperature 0.7 | |
| PARAMETER num_ctx 4096 | |
| ``` | |
| Then: | |
| ```bash | |
| ollama create ecu-pilot -f Modelfile | |
| ollama run ecu-pilot | |
| ``` | |
| ## Evaluation | |
| On 8 test prompts (2 runs each): | |
| | Metric | Score | | |
| |--------|-------| | |
| | Tool called | 88% | | |
| | Correct tool | 75% | | |
| | Answer generated | 100% | | |
| ## License | |
| Apache 2.0 | |