Text Classification
GGUF
jev-style
English
jev
openjev
decision-model
typed-decisions
bonsai
ternary
local-inference
blackwell
conversational
Instructions to use ajh-code/Jev-Bonsai-Compass with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- jev-style
How to use ajh-code/Jev-Bonsai-Compass with jev-style:
pip install jev-style # GGUF builds score through llama.cpp: build the jev-score binary once hf download ajh-code/Jev-Bonsai-Compass build_jev_score.sh jev_score.cpp --local-dir jev-score export JEV_SCORE_BIN=$(sh jev-score/build_jev_score.sh /path/to/llama.cpp | tail -n 1)
from jev_style import JevStyle, noul, choice js = JevStyle.from_pretrained("ajh-code/Jev-Bonsai-Compass") out = js.decide("I was charged twice for one order.", { "billing": noul("This message is about billing."), "team": choice("Which team should handle it?", ["billing", "shipping", "tech"]), }) print(out["answers"]["team"]["choice"]) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use ajh-code/Jev-Bonsai-Compass 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 ajh-code/Jev-Bonsai-Compass:Q2_0 # Run inference directly in the terminal: llama cli -hf ajh-code/Jev-Bonsai-Compass:Q2_0
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf ajh-code/Jev-Bonsai-Compass:Q2_0 # Run inference directly in the terminal: llama cli -hf ajh-code/Jev-Bonsai-Compass:Q2_0
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 ajh-code/Jev-Bonsai-Compass:Q2_0 # Run inference directly in the terminal: ./llama-cli -hf ajh-code/Jev-Bonsai-Compass:Q2_0
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 ajh-code/Jev-Bonsai-Compass:Q2_0 # Run inference directly in the terminal: ./build/bin/llama-cli -hf ajh-code/Jev-Bonsai-Compass:Q2_0
Use Docker
docker model run hf.co/ajh-code/Jev-Bonsai-Compass:Q2_0
- LM Studio
- Jan
- Ollama
How to use ajh-code/Jev-Bonsai-Compass with Ollama:
ollama run hf.co/ajh-code/Jev-Bonsai-Compass:Q2_0
- Unsloth Desktop
- Pi
How to use ajh-code/Jev-Bonsai-Compass with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf ajh-code/Jev-Bonsai-Compass:Q2_0
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": "ajh-code/Jev-Bonsai-Compass:Q2_0" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use ajh-code/Jev-Bonsai-Compass with Docker Model Runner:
docker model run hf.co/ajh-code/Jev-Bonsai-Compass:Q2_0
- Lemonade
How to use ajh-code/Jev-Bonsai-Compass with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull ajh-code/Jev-Bonsai-Compass:Q2_0
Run and chat with the model
lemonade run user.Jev-Bonsai-Compass-Q2_0
List all available models
lemonade list
- Hermes Agent
How to use ajh-code/Jev-Bonsai-Compass with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf ajh-code/Jev-Bonsai-Compass:Q2_0
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 ajh-code/Jev-Bonsai-Compass:Q2_0
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use ajh-code/Jev-Bonsai-Compass with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf ajh-code/Jev-Bonsai-Compass:Q2_0
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 "ajh-code/Jev-Bonsai-Compass:Q2_0" \ --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 source/bonsai_runtime/decision.py from ajh-code/Jev-Bonsai-Compass: direct link, hf CLI and curl.
- Browser
- Download file 3.5 kB
-
https://huggingface.co/ajh-code/Jev-Bonsai-Compass/resolve/main/source/bonsai_runtime/decision.py
- Command line
-
hf download hf://ajh-code/Jev-Bonsai-Compass/source/bonsai_runtime/decision.py
-
curl -L -o decision.py https://huggingface.co/ajh-code/Jev-Bonsai-Compass/resolve/main/source/bonsai_runtime/decision.py
3.5 kB
| """Reusable text-choice and compact arithmetic decisions over one resident model.""" | |
| import json,time | |
| from .numeric import applicable,compact_unit,compact_prompt,decode,INSTRUCTION | |
| from .readout import prompt_for,readout | |
| def validate(request): | |
| if not isinstance(request,dict) or set(request)!={'state','question','options'}:raise ValueError('Provide exactly state, question, and options') | |
| if not all(isinstance(request[k],str) and request[k].strip() for k in ['state','question']):raise ValueError('State and question must be nonempty strings') | |
| options=request['options'] | |
| if not isinstance(options,list) or not 2<=len(options)<=26:raise ValueError('Provide 2 to 26 options') | |
| if not all(isinstance(o,(list,tuple)) and len(o)==2 and all(isinstance(v,str) and v for v in o) for o in options):raise ValueError('Options must be pairs of nonempty strings') | |
| if len({o[0] for o in options})!=len(options):raise ValueError('Option IDs must be unique') | |
| if len(json.dumps(request))>65536:raise ValueError('Request exceeds the 64 KiB input limit') | |
| class DecisionEngine: | |
| def __init__(self,client): | |
| client.verify_profile() | |
| self.client=client | |
| def decide(self,request): | |
| validate(request) | |
| # One entire decision (including a possible fallback) holds the worker slot. | |
| with self.client.lock:return self._decide(request) | |
| def _decide(self,request): | |
| self.client.calls.clear() | |
| tick=time.perf_counter();start=0;trace={};attempted=applicable(request) | |
| if attempted: | |
| unit=compact_unit(request) | |
| prompt=compact_prompt(request) if unit is not None else INSTRUCTION+'\n'+prompt_for(request['state'],request['question'],request['options']).replace('Answer with the letter of the best option only.','Return only the JSON calculation, or a null expression.') | |
| response=self.client.post('/v1/chat/completions',dict(model='qwen',messages=[dict(role='user',content=prompt)],max_tokens=64 if unit is not None else 96,temperature=0)) | |
| choice=response['choices'][0];content=choice['message'].get('content') or '' | |
| trace=dict(tool_expression=content,tool_tokens=(response.get('usage') or {}).get('completion_tokens'),tool_finish_reason=choice['finish_reason'],tool_error=None) | |
| if unit is not None:trace['output_unit']=unit | |
| try: | |
| if choice['finish_reason']=='length':raise ValueError('truncated') | |
| answer,_=decode(json.dumps(dict(expression=content,unit=unit)) if unit is not None else content,request['options']) | |
| return dict(answer=answer,method='numeric-tool',tool_attempted=True,seconds=time.perf_counter()-tick,score=None,trace=trace,calls=self.client.calls[start:]) | |
| except (ValueError,TypeError,AssertionError,SyntaxError,ZeroDivisionError,OverflowError,KeyError,IndexError) as exc:trace['tool_error']=str(exc) | |
| result=readout(self.client,request['state'],request['question'],request['options'],.85,dict(cache_prompt=False,top_logprobs=1024)) | |
| if result['missing_letters']:raise RuntimeError('Backend did not return all option scores') | |
| return dict(answer=result['argmax'],method='fast',tool_attempted=attempted,seconds=time.perf_counter()-tick, | |
| score=max(p['p'] for p in result['probs']),score_kind='option-relative softmax; not a correctness guarantee', | |
| probs=result['probs'],trace=trace,calls=self.client.calls[start:]) | |