Text Generation
Transformers
Safetensors
qwen3_5_text
dense
coding
agentic
unimodal
repackaged
conversational
Instructions to use Jaidchen/Focus with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- Transformers
How to use Jaidchen/Focus with Transformers:
# Use a pipeline as a high-level helper from transformers import pipeline pipe = pipeline("text-generation", model="Jaidchen/Focus") messages = [ {"role": "user", "content": "Who are you?"}, ] pipe(messages)# pip install -U transformers accelerate # Load model directly from transformers import AutoTokenizer, AutoModelForCausalLM tokenizer = AutoTokenizer.from_pretrained("Jaidchen/Focus") model = AutoModelForCausalLM.from_pretrained("Jaidchen/Focus", device_map="auto") messages = [ {"role": "user", "content": "Who are you?"}, ] inputs = tokenizer.apply_chat_template( messages, add_generation_prompt=True, tokenize=True, return_dict=True, return_tensors="pt", ).to(model.device) outputs = model.generate(**inputs, max_new_tokens=256) print(tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:])) - Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- vLLM
How to use Jaidchen/Focus with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Jaidchen/Focus" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Jaidchen/Focus", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Jaidchen/Focus
- SGLang
How to use Jaidchen/Focus with SGLang:
Install from pip and serve model
# Install SGLang from pip: pip install sglang # Start the SGLang server: python3 -m sglang.launch_server \ --model-path "Jaidchen/Focus" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Jaidchen/Focus", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker images
docker run --gpus all \ --shm-size 32g \ -p 30000:30000 \ -v ~/.cache/huggingface:/root/.cache/huggingface \ --env "HF_TOKEN=<secret>" \ --ipc=host \ lmsysorg/sglang:latest \ python3 -m sglang.launch_server \ --model-path "Jaidchen/Focus" \ --host 0.0.0.0 \ --port 30000 # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:30000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Jaidchen/Focus", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }' - Docker Model Runner
How to use Jaidchen/Focus with Docker Model Runner:
docker model run hf.co/Jaidchen/Focus
Update README.md
Browse files
README.md
CHANGED
|
@@ -165,30 +165,35 @@ repackaged [Qwen 3.6 27B](https://huggingface.co/Qwen/Qwen3.6-27B) with a simpli
|
|
| 165 |
|
| 166 |
## Jinja template changes
|
| 167 |
|
| 168 |
-
|
| 169 |
-
|
| 170 |
-
|
| 171 |
-
-
|
| 172 |
-
-
|
| 173 |
-
|
| 174 |
-
-
|
|
|
|
|
|
|
|
|
|
| 175 |
- adopted tweaks from [Froggeric version](https://huggingface.co/froggeric/Qwen-Fixed-Chat-Templates/blob/b225c1d63f84c65af7dd6af2ba384eb037aa885e/chat_template.jinja)
|
| 176 |
-
- Added `preserve_thinking` option to retain historical reasoning. ([line 8](https://huggingface.co/froggeric/Qwen-Fixed-Chat-Templates/blob/b225c1d63f84c65af7dd6af2ba384eb037aa885e/chat_template.jinja#L8), [
|
| 177 |
-
- Retained mid-conversation system/developer messages as Qwen system turns. ([
|
| 178 |
-
- Allowed string-valued `message.thinking` as fallback for historical reasoning. ([
|
| 179 |
-
- Applied boundary-aware `</think>` parsing. ([
|
| 180 |
-
- Avoided synthesizing empty historical thinking blocks. ([
|
| 181 |
-
- Supported both wrapped and direct tool calls, but never null-wrapped. ([
|
| 182 |
-
- Preserved non-empty string tool arguments. ([
|
| 183 |
-
- Used direct message indexing for tool-response grouping instead of `loop.previtem`/`loop.nextitem`. ([line 165](https://huggingface.co/froggeric/Qwen-Fixed-Chat-Templates/blob/b225c1d63f84c65af7dd6af2ba384eb037aa885e/chat_template.jinja#L165), [
|
| 184 |
- custom tweaks
|
| 185 |
-
- Merged any number of leading system/developer messages,
|
| 186 |
-
- Applied boundary-aware `</think>` parsing but excluded malformed-tag recovery.
|
| 187 |
-
- Raised an error
|
| 188 |
-
- Used direct message indexing for tool-response grouping without Froggeric
|
|
|
|
|
|
|
| 189 |
- unimodality patch
|
| 190 |
-
-
|
| 191 |
|
| 192 |
## license
|
| 193 |
|
| 194 |
-
Apache 2.0 – inherited from [Qwen 3.6 27B](https://huggingface.co/Qwen/Qwen3.
|
|
|
|
| 165 |
|
| 166 |
## Jinja template changes
|
| 167 |
|
| 168 |
+
`chat.jinja` is reproducibly built from an untouched upstream template plus the ordered patch stack in `jinja_build/`. `jinja_build/build.ps1` applies the patches lexicographically and overwrites the final `chat.jinja`.
|
| 169 |
+
|
| 170 |
+
- base: [Qwen/Qwen3.6-27B original](https://huggingface.co/Qwen/Qwen3.6-27B/blob/6a9e13bd6fc8f0983b9b99948120bc37f49c13e9/chat_template.jinja)
|
| 171 |
+
- commit `6a9e13bd6fc8f0983b9b99948120bc37f49c13e9`
|
| 172 |
+
- SHA-256 `E84F32A23FDDA27689F868AA4A1A5621F41133E51A48D7F3EFCBEA2839574259`
|
| 173 |
+
- adopted tweaks from [Unsloth Qwen3.6](https://huggingface.co/unsloth/Qwen3.6-27B/blob/d6e694245c1d535508bc54062f5e258d7b1e04f5/chat_template.jinja)
|
| 174 |
+
- Added `developer` role as alias for `system`. ([lines 45–57](https://huggingface.co/unsloth/Qwen3.6-27B/blob/d6e694245c1d535508bc54062f5e258d7b1e04f5/chat_template.jinja#L45-L57))
|
| 175 |
+
- Merged leading system/developer messages into a single policy message. ([lines 45–57](https://huggingface.co/unsloth/Qwen3.6-27B/blob/d6e694245c1d535508bc54062f5e258d7b1e04f5/chat_template.jinja#L45-L57), [lines 67–75](https://huggingface.co/unsloth/Qwen3.6-27B/blob/d6e694245c1d535508bc54062f5e258d7b1e04f5/chat_template.jinja#L67-L75))
|
| 176 |
+
- Allowed histories without a normal human query. ([lines 76–86](https://huggingface.co/unsloth/Qwen3.6-27B/blob/d6e694245c1d535508bc54062f5e258d7b1e04f5/chat_template.jinja#L76-L86))
|
| 177 |
+
- Made mapping-argument rendering portable by avoiding `|items`. ([lines 122–130](https://huggingface.co/unsloth/Qwen3.6-27B/blob/d6e694245c1d535508bc54062f5e258d7b1e04f5/chat_template.jinja#L122-L130))
|
| 178 |
- adopted tweaks from [Froggeric version](https://huggingface.co/froggeric/Qwen-Fixed-Chat-Templates/blob/b225c1d63f84c65af7dd6af2ba384eb037aa885e/chat_template.jinja)
|
| 179 |
+
- Added `preserve_thinking` option to retain historical reasoning. ([line 8](https://huggingface.co/froggeric/Qwen-Fixed-Chat-Templates/blob/b225c1d63f84c65af7dd6af2ba384eb037aa885e/chat_template.jinja#L8), [lines 225–230](https://huggingface.co/froggeric/Qwen-Fixed-Chat-Templates/blob/b225c1d63f84c65af7dd6af2ba384eb037aa885e/chat_template.jinja#L225-L230))
|
| 180 |
+
- Retained mid-conversation system/developer messages as Qwen system turns. ([lines 165–182](https://huggingface.co/froggeric/Qwen-Fixed-Chat-Templates/blob/b225c1d63f84c65af7dd6af2ba384eb037aa885e/chat_template.jinja#L165-L182))
|
| 181 |
+
- Allowed string-valued `message.thinking` as fallback for historical reasoning. ([lines 183–197](https://huggingface.co/froggeric/Qwen-Fixed-Chat-Templates/blob/b225c1d63f84c65af7dd6af2ba384eb037aa885e/chat_template.jinja#L183-L197))
|
| 182 |
+
- Applied boundary-aware `</think>` parsing. ([lines 198–223](https://huggingface.co/froggeric/Qwen-Fixed-Chat-Templates/blob/b225c1d63f84c65af7dd6af2ba384eb037aa885e/chat_template.jinja#L198-L223))
|
| 183 |
+
- Avoided synthesizing empty historical thinking blocks. ([lines 225–230](https://huggingface.co/froggeric/Qwen-Fixed-Chat-Templates/blob/b225c1d63f84c65af7dd6af2ba384eb037aa885e/chat_template.jinja#L225-L230))
|
| 184 |
+
- Supported both wrapped and direct tool calls, but never null-wrapped. ([lines 231–237](https://huggingface.co/froggeric/Qwen-Fixed-Chat-Templates/blob/b225c1d63f84c65af7dd6af2ba384eb037aa885e/chat_template.jinja#L231-L237))
|
| 185 |
+
- Preserved non-empty string tool arguments. ([lines 261–280](https://huggingface.co/froggeric/Qwen-Fixed-Chat-Templates/blob/b225c1d63f84c65af7dd6af2ba384eb037aa885e/chat_template.jinja#L261-L280))
|
| 186 |
+
- Used direct message indexing for tool-response grouping instead of `loop.previtem`/`loop.nextitem`. ([line 165](https://huggingface.co/froggeric/Qwen-Fixed-Chat-Templates/blob/b225c1d63f84c65af7dd6af2ba384eb037aa885e/chat_template.jinja#L165), [lines 286–318](https://huggingface.co/froggeric/Qwen-Fixed-Chat-Templates/blob/b225c1d63f84c65af7dd6af2ba384eb037aa885e/chat_template.jinja#L286-L318))
|
| 187 |
- custom tweaks
|
| 188 |
+
- Merged any number of leading system/developer messages, generalizing Unsloth's two-message merge. ([lines 45–57](https://huggingface.co/unsloth/Qwen3.6-27B/blob/d6e694245c1d535508bc54062f5e258d7b1e04f5/chat_template.jinja#L45-L57))
|
| 189 |
+
- Applied boundary-aware `</think>` parsing but excluded Froggeric's malformed-tag recovery. ([lines 198–223](https://huggingface.co/froggeric/Qwen-Fixed-Chat-Templates/blob/b225c1d63f84c65af7dd6af2ba384eb037aa885e/chat_template.jinja#L198-L223))
|
| 190 |
+
- Raised an error containing the offending role instead of Qwen's generic unknown-role error. ([lines 143–144](https://huggingface.co/Qwen/Qwen3.6-27B/blob/6a9e13bd6fc8f0983b9b99948120bc37f49c13e9/chat_template.jinja#L143-L144))
|
| 191 |
+
- Used direct message indexing for tool-response grouping without Froggeric's error-escalation state. ([lines 286–318](https://huggingface.co/froggeric/Qwen-Fixed-Chat-Templates/blob/b225c1d63f84c65af7dd6af2ba384eb037aa885e/chat_template.jinja#L286-L318))
|
| 192 |
+
- Guarded undefined `tools`/`tool_calls` and handled non-mapping content items defensively.
|
| 193 |
+
- Adopted Qwen's proposed `continue_final_message` fix for partial assistant prefills. ([lines 130–132](https://huggingface.co/Qwen/Qwen3.6-27B/blob/0774bb84a25294dac0538c2bfc7abc08ae89d522/chat_template.jinja#L130-L132))
|
| 194 |
- unimodality patch
|
| 195 |
+
- Removed Qwen's vision-token machinery and rendered image/video content as `[image]` and `[video]`. ([lines 1–41](https://huggingface.co/Qwen/Qwen3.6-27B/blob/6a9e13bd6fc8f0983b9b99948120bc37f49c13e9/chat_template.jinja#L1-L41))
|
| 196 |
|
| 197 |
## license
|
| 198 |
|
| 199 |
+
Apache 2.0 – inherited from [Qwen 3.6 27B](https://huggingface.co/Qwen/Qwen3.6-27B/blob/main/LICENSE)
|