Instructions to use Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS 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 Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS 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 Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS:IQ4_XS # Run inference directly in the terminal: llama cli -hf Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS:IQ4_XS
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS:IQ4_XS # Run inference directly in the terminal: llama cli -hf Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS:IQ4_XS
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 Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS:IQ4_XS # Run inference directly in the terminal: ./llama-cli -hf Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS:IQ4_XS
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 Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS:IQ4_XS # Run inference directly in the terminal: ./build/bin/llama-cli -hf Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS:IQ4_XS
Use Docker
docker model run hf.co/Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS:IQ4_XS
- LM Studio
- Jan
- vLLM
How to use Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS:IQ4_XS
- Ollama
How to use Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS with Ollama:
ollama run hf.co/Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS:IQ4_XS
- Unsloth Studio
How to use Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS with Unsloth Studio:
Install Unsloth Studio (macOS, Linux, WSL)
curl -fsSL https://unsloth.ai/install.sh | sh # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS to start chatting
Install Unsloth Studio (Windows)
irm https://unsloth.ai/install.ps1 | iex # Run unsloth studio unsloth studio -H 0.0.0.0 -p 8888 # Then open http://localhost:8888 in your browser # Search for Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS to start chatting
Using HuggingFace Spaces for Unsloth
# No setup required # Open https://huggingface.co/spaces/unsloth/studio in your browser # Search for Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS to start chatting
- Pi
How to use Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS:IQ4_XS
Configure the model in Pi
# Install Pi: npm install -g @mariozechner/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS:IQ4_XS" } ] } } }Run Pi
# Start Pi in your project directory: pi
- OpenClaw new
How to use Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS:IQ4_XS
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 "Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS:IQ4_XS" \ --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"
- Docker Model Runner
How to use Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS with Docker Model Runner:
docker model run hf.co/Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS:IQ4_XS
- Lemonade
How to use Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS:IQ4_XS
Run and chat with the model
lemonade run user.ClickBook-Gemma-4-E2B-multi-IQ4_XS-IQ4_XS
List all available models
lemonade list
- Hermes Agent
How to use Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS:IQ4_XS
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 Clickbook/ClickBook-Gemma-4-E2B-multi-IQ4_XS:IQ4_XS
Run Hermes
hermes
- Atomic Chat
Model card, prompts and integration guide
Browse files- MOBILE-INTEGRATION.md +328 -0
- README.md +176 -0
- prompts.json +296 -0
MOBILE-INTEGRATION.md
ADDED
|
@@ -0,0 +1,328 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# ClickBook on-device model — integration guide
|
| 2 |
+
|
| 3 |
+
For the iOS and Android teams. Every number here is measured on this repo's
|
| 4 |
+
benchmark or its ship gate; where something is untested it says so explicitly.
|
| 5 |
+
|
| 6 |
+
**Start here:** ship `models/wide_iq4xs_e2.gguf` and `out/prompts.json`. Everything
|
| 7 |
+
else in this document explains those two files.
|
| 8 |
+
|
| 9 |
+
---
|
| 10 |
+
|
| 11 |
+
## 1. The two shipping assets
|
| 12 |
+
|
| 13 |
+
### `models/wide_iq4xs_e2.gguf` — 1.844 GB
|
| 14 |
+
|
| 15 |
+
| | |
|
| 16 |
+
|---|---|
|
| 17 |
+
| base | Gemma 4 E2B instruction-tuned |
|
| 18 |
+
| quantisation | IQ4_XS body, Q2_K token embeddings, imatrix-guided |
|
| 19 |
+
| vocabulary | 231,955 tokens (of 262,144; the rest are pruned scripts) |
|
| 20 |
+
| runtime | llama.cpp b10326 or later |
|
| 21 |
+
| benchmark | **79.2** on the 90-item set, 15 failures, no empty or truncated panels |
|
| 22 |
+
|
| 23 |
+
That 79.2 is measured on this exact file and is level with the 1.666 GB
|
| 24 |
+
eleven-language build (79.0 at the same seed, 78.4 averaged over two). **Restoring
|
| 25 |
+
seven scripts costs nothing on the languages already served** — a earlier
|
| 26 |
+
intermediate build read 1.4 marks lower, which a second seed showed to be noise.
|
| 27 |
+
|
| 28 |
+
### `out/prompts.json` — 32 KB
|
| 29 |
+
|
| 30 |
+
Every prompt, per language, with `{{word}}`, `{{sentence}}` and `{{passage}}`
|
| 31 |
+
placeholders, plus the required request settings and per-language token caps.
|
| 32 |
+
|
| 33 |
+
**Substitute into these strings; do not retype or paraphrase them.** The wording is
|
| 34 |
+
the result of seven measured revisions and small changes have moved benchmark
|
| 35 |
+
scores by double digits. Regenerate the file after any prompt change:
|
| 36 |
+
|
| 37 |
+
```bash
|
| 38 |
+
BENCH_PROMPTS=v7 npx tsx scripts/export-prompts.ts > out/prompts.json
|
| 39 |
+
```
|
| 40 |
+
|
| 41 |
+
### Other builds, same recipe, if the size budget changes
|
| 42 |
+
|
| 43 |
+
| file | size | scripts |
|
| 44 |
+
|---|---:|---|
|
| 45 |
+
| `iq4xs_e2.gguf` | 1.666 GB | Latin, Cyrillic, Arabic |
|
| 46 |
+
| `cjkkrhi_iq4xs_e2.gguf` | 1.815 GB | + CJK, Hangul, Devanagari |
|
| 47 |
+
| **`wide_iq4xs_e2.gguf`** | **1.844 GB** | **+ Tamil, Thai, Greek, Hebrew** |
|
| 48 |
+
| `allscripts_iq4xs_e2.gguf` | 1.950 GB | every script — over a 1.9 GB cap |
|
| 49 |
+
|
| 50 |
+
Vocabulary costs **3.49 KB per token**: Gemma 4 keeps per-layer embeddings, so a
|
| 51 |
+
token carries 10,496 parameters. Script coverage is therefore expensive, and the
|
| 52 |
+
shipped subset is deliberate. `scripts/build-script-variant.sh` builds any other
|
| 53 |
+
combination.
|
| 54 |
+
|
| 55 |
+
---
|
| 56 |
+
|
| 57 |
+
## 2. Language support
|
| 58 |
+
|
| 59 |
+
`out/prompts.json` carries `book`, `reader` and `evidence` for every language.
|
| 60 |
+
Honour those flags — they are ship gates, not preferences.
|
| 61 |
+
|
| 62 |
+
| language | book | reader | evidence |
|
| 63 |
+
|---|:--:|:--:|---|
|
| 64 |
+
| English, German, Arabic | ✅ | ✅ | benchmark, 90 items × 2 seeds |
|
| 65 |
+
| French, Portuguese, Spanish, Italian, Russian, Dutch, Polish, Turkish | ✅ | — | benchmark, 183 items each on an older build: 69–86 |
|
| 66 |
+
| Chinese, Japanese, Korean, Hindi, Thai, Hebrew | ✅ | ✅ | ship gate: 4/4 tabs pass |
|
| 67 |
+
| **Tamil** | ✅ | ❌ | ship gate: CONTEXT fails |
|
| 68 |
+
| **Greek** | ❌ | ❌ | ship gate: output corrupted |
|
| 69 |
+
|
| 70 |
+
Reader-language support for French through Turkish needs TRANSLATION and CONTEXT
|
| 71 |
+
templates, which do not exist yet. Those languages can be read *from*, not
|
| 72 |
+
answered *in*.
|
| 73 |
+
|
| 74 |
+
### Greek — do not enable
|
| 75 |
+
|
| 76 |
+
Output mixes scripts and invents words:
|
| 77 |
+
|
| 78 |
+
```
|
| 79 |
+
"η σκέψη του μυаλу" Cyrillic а and у inside a Greek word
|
| 80 |
+
"που άμεσως führte" a German verb
|
| 81 |
+
"για να β Olympic" nonsense
|
| 82 |
+
```
|
| 83 |
+
|
| 84 |
+
Only 1,511 Greek tokens were retained, and that is not enough. Leaving them in the
|
| 85 |
+
file is harmless; just never offer Greek as a book or reader language.
|
| 86 |
+
|
| 87 |
+
### Tamil — book language only
|
| 88 |
+
|
| 89 |
+
MEANING, EXAMPLE and TRANSLATION pass. CONTEXT does not: translating a passage
|
| 90 |
+
*into* Tamil produced `அவர்店の앞 அதிக நேரம்…` — Han, Kana and Hangul spliced into
|
| 91 |
+
Tamil. A Tamil speaker can read a Tamil book with English, German or Arabic
|
| 92 |
+
answers; do not offer Tamil as the answer language.
|
| 93 |
+
|
| 94 |
+
### The six smoke-tested languages
|
| 95 |
+
|
| 96 |
+
Each was probed with taps where the obvious reading is wrong. All six read them
|
| 97 |
+
correctly:
|
| 98 |
+
|
| 99 |
+
| language | tap | got |
|
| 100 |
+
|---|---|---|
|
| 101 |
+
| Chinese | 不是个东西 | a scornful insult, not "a thing" |
|
| 102 |
+
| Japanese | 手が空いた | became free, not "hand is empty" |
|
| 103 |
+
| Korean | 발이 넓다 | well connected, not "wide feet" |
|
| 104 |
+
| Hindi | हाथ धोना | to lose something, not "wash hands" |
|
| 105 |
+
| Thai | ใจดี | kind-hearted |
|
| 106 |
+
| Hebrew | יד חמה | a knack for it, not "warm hand" |
|
| 107 |
+
|
| 108 |
+
**Two taps per language is not a benchmark.** English, German and Arabic have 90
|
| 109 |
+
items across two seeds; these have a handful of sentences. Treat them as beta and
|
| 110 |
+
expect to find failures the gate does not cover.
|
| 111 |
+
|
| 112 |
+
---
|
| 113 |
+
|
| 114 |
+
## 3. Request configuration
|
| 115 |
+
|
| 116 |
+
```jsonc
|
| 117 |
+
{
|
| 118 |
+
"n_ctx": 2048, // 555 suffices for one tap and is faster
|
| 119 |
+
"n_threads": 6,
|
| 120 |
+
"n_gpu_layers": 99, // 0 on CPU-only devices
|
| 121 |
+
"temperature": 0.1,
|
| 122 |
+
"top_k": 40,
|
| 123 |
+
"top_p": 0.9,
|
| 124 |
+
"repeat_penalty": 1.05,
|
| 125 |
+
"seed": 42,
|
| 126 |
+
"chat_template_kwargs": { "enable_thinking": false } // REQUIRED
|
| 127 |
+
}
|
| 128 |
+
```
|
| 129 |
+
|
| 130 |
+
### `enable_thinking: false` is not optional
|
| 131 |
+
|
| 132 |
+
Without it the model reasons before answering, spends the whole budget in
|
| 133 |
+
`reasoning_content`, and returns **empty `content` with `finish_reason: "length"`**.
|
| 134 |
+
In the UI that is indistinguishable from an unsupported language or a broken
|
| 135 |
+
model. It has cost this project three separate debugging sessions, including one
|
| 136 |
+
where nine languages appeared to fail and none of them had.
|
| 137 |
+
|
| 138 |
+
If you ever enable thinking deliberately, raise every cap below to 1000 first.
|
| 139 |
+
|
| 140 |
+
### Token caps
|
| 141 |
+
|
| 142 |
+
Defaults, and the per-language values in `prompts.json` under `caps.perLanguage`:
|
| 143 |
+
|
| 144 |
+
| tab | default | ko / th | hi | ta | he |
|
| 145 |
+
|---|---:|---:|---:|---:|---:|
|
| 146 |
+
| MEANING | 111 | 136 | 144 | 160 | 192 |
|
| 147 |
+
| EXAMPLE | 222 | 272 | 288 | 320 | 384 |
|
| 148 |
+
| TRANSLATION | 111 | 136 | 144 | 160 | 192 |
|
| 149 |
+
| CONTEXT | 444 | 544 | 576 | 640 | 768 |
|
| 150 |
+
|
| 151 |
+
Chinese and Japanese use the defaults — measured, they cost the same tokens as
|
| 152 |
+
English for equivalent content (`scripts/token-cost.ts`). Hebrew is the most
|
| 153 |
+
expensive script at 1.67×.
|
| 154 |
+
|
| 155 |
+
Verified headroom at these caps: the longest MEANING answer across all seven new
|
| 156 |
+
languages was 25 of 112 tokens, and no tab in any language came within 10% of its
|
| 157 |
+
cap. Nothing truncates.
|
| 158 |
+
|
| 159 |
+
### Performance
|
| 160 |
+
|
| 161 |
+
12.1 s per popup on the device configuration (CPU, ctx 555, all four tabs);
|
| 162 |
+
roughly 1.7 s per tab with GPU offload.
|
| 163 |
+
|
| 164 |
+
---
|
| 165 |
+
|
| 166 |
+
## 4. How a tap becomes four answers
|
| 167 |
+
|
| 168 |
+
| tab | prompt & answer language | asks for |
|
| 169 |
+
|---|---|---|
|
| 170 |
+
| MEANING | **book** | define the tapped word in the sense this sentence gives it |
|
| 171 |
+
| EXAMPLE | **book** | three new short sentences using that same sense |
|
| 172 |
+
| TRANSLATION | **reader** | what the word means, answered in the reader's language |
|
| 173 |
+
| CONTEXT | **reader** | translate the whole passage |
|
| 174 |
+
|
| 175 |
+
Two rules that carry measured weight:
|
| 176 |
+
|
| 177 |
+
- **`{{sentence}}` must come from the tap's character offsets**, not from splitting
|
| 178 |
+
the passage on punctuation. When the same word appears twice in a passage, the
|
| 179 |
+
wrong sentence produces a confidently wrong answer.
|
| 180 |
+
- **`{{passage}}`** is the whole block, or roughly 520 characters centred on the
|
| 181 |
+
tap when the block is longer.
|
| 182 |
+
|
| 183 |
+
The idiom clause inside each prompt — "if the word is part of an idiom, explain the
|
| 184 |
+
whole phrase instead" — is what makes idiom taps work. Do not trim it for brevity.
|
| 185 |
+
|
| 186 |
+
---
|
| 187 |
+
|
| 188 |
+
## 5. Verifying a build before release
|
| 189 |
+
|
| 190 |
+
```bash
|
| 191 |
+
npx tsx scripts/newlang-verify.ts models/wide_iq4xs_e2.gguf
|
| 192 |
+
```
|
| 193 |
+
|
| 194 |
+
Exits non-zero if any language fails. It checks, per tab: non-empty output, no
|
| 195 |
+
foreign-script contamination, inside the token cap with headroom, and that EXAMPLE
|
| 196 |
+
returns three unnumbered lines. Current state: **27 of 28 checks pass**, the
|
| 197 |
+
exception being Tamil CONTEXT, which is why Tamil is book-only.
|
| 198 |
+
|
| 199 |
+
To read the answers rather than assert on them:
|
| 200 |
+
|
| 201 |
+
```bash
|
| 202 |
+
npx tsx scripts/newlang-probe.ts models/wide_iq4xs_e2.gguf zh,ja,ko
|
| 203 |
+
```
|
| 204 |
+
|
| 205 |
+
For the eleven benchmarked languages:
|
| 206 |
+
|
| 207 |
+
```bash
|
| 208 |
+
SENSE10_MODEL=models/wide_iq4xs_e2.gguf bash scripts/full90.sh myarm
|
| 209 |
+
```
|
| 210 |
+
|
| 211 |
+
---
|
| 212 |
+
|
| 213 |
+
## 6. What is not in this build
|
| 214 |
+
|
| 215 |
+
There is **no on-device dictionary**. A purpose-built sense resource measured
|
| 216 |
+
+12.7 marks (79.0 → 91.7 on the 90-item benchmark) but needs a generation run that
|
| 217 |
+
has not been funded; the version buildable from free public lexicons measured
|
| 218 |
+
**+0.7** and is not worth its 82.5 MB. Format and integration points are in
|
| 219 |
+
`docs/sense10.md`. `wide_iq4xs_e2.gguf` leaves 56 MB under a 1.9 GB cap if one
|
| 220 |
+
ships later.
|
| 221 |
+
|
| 222 |
+
Known open issues, both reproducible with the ship gate:
|
| 223 |
+
|
| 224 |
+
- Tamil CONTEXT script contamination (§2).
|
| 225 |
+
- EXAMPLE occasionally numbers its sentences despite the prompt forbidding it.
|
| 226 |
+
Strip a leading `1.` / `-` / `•` client-side.
|
| 227 |
+
|
| 228 |
+
---
|
| 229 |
+
|
| 230 |
+
## 7. Packaging and delivery
|
| 231 |
+
|
| 232 |
+
The model is delivered by the stores themselves — Play Asset Delivery on Android,
|
| 233 |
+
Background Assets on iOS. Both host and serve it free, both resume interrupted
|
| 234 |
+
downloads, and both tie the asset to an app version, which matters here because
|
| 235 |
+
`prompts.json` describes gates and caps for **this** model file. A plain CDN URL
|
| 236 |
+
lets those drift apart; the store mechanisms do not.
|
| 237 |
+
|
| 238 |
+
### Integrity
|
| 239 |
+
|
| 240 |
+
```
|
| 241 |
+
file ClickBook-Gemma-4-E2B-multi-IQ4_XS.gguf
|
| 242 |
+
bytes 1,844,170,944
|
| 243 |
+
sha256 0ad915db36b04976d4a217e264d5a46c2d08fb77632875795d7ac080b8d5f6fe
|
| 244 |
+
```
|
| 245 |
+
|
| 246 |
+
Verify after assembly, before first load. A truncated or mis-ordered file will
|
| 247 |
+
often still load in llama.cpp and produce fluent nonsense — the failure does not
|
| 248 |
+
announce itself.
|
| 249 |
+
|
| 250 |
+
### Android — Play Asset Delivery, two packs
|
| 251 |
+
|
| 252 |
+
The per-pack limit is **1.5 GB** and this file is 1.844 GB, so it must be split.
|
| 253 |
+
Note the limit applies to *compressed download size*, which does not help: a GGUF
|
| 254 |
+
is quantised weights and compresses by only 3% (ratio 0.970, measured), so
|
| 255 |
+
compressed size is effectively file size.
|
| 256 |
+
|
| 257 |
+
**Every variant of this model exceeds 1.5 GB**, including the 1.666 GB
|
| 258 |
+
eleven-language build, so splitting is unavoidable and model size is therefore not
|
| 259 |
+
a packaging consideration when choosing which build to ship.
|
| 260 |
+
|
| 261 |
+
Use **fast-follow** delivery: the app opens immediately and the model arrives in
|
| 262 |
+
the background behind a progress UI you control. Two packs of 922.1 MB, split at
|
| 263 |
+
the exact byte midpoint and concatenated in order:
|
| 264 |
+
|
| 265 |
+
```bash
|
| 266 |
+
split -b 922085472 ClickBook-Gemma-4-E2B-multi-IQ4_XS.gguf model.part
|
| 267 |
+
# model.partaa bytes 0..922,085,471
|
| 268 |
+
# sha256 d98cccc0847c9f2200d2eeba1f0d928d70f945528d08c52abfcd1231c7a003b1
|
| 269 |
+
# model.partab bytes 922,085,472..1,844,170,943
|
| 270 |
+
# sha256 d09e50a639d5f3d28eae17d9708217f9fedfb240063ec3dade5bcf6b46b43393
|
| 271 |
+
```
|
| 272 |
+
|
| 273 |
+
Two packs sit far inside the 30 GB cumulative fast-follow allowance, so there is
|
| 274 |
+
no second limit to design around.
|
| 275 |
+
|
| 276 |
+
### iOS — Background Assets, one pack
|
| 277 |
+
|
| 278 |
+
**On-Demand Resources is deprecated as of iOS 27.** Build on **Background Assets**
|
| 279 |
+
with Apple-hosted asset packs, which allow 200 GB across up to 200 packs.
|
| 280 |
+
|
| 281 |
+
The per-pack limit on **iOS 18+ is 8 GB**, so the model ships as a **single
|
| 282 |
+
1.844 GB pack** with no splitting and no reassembly. On iOS 17 and earlier the
|
| 283 |
+
limit is 512 MB per tag, which would mean four parts — if the minimum deployment
|
| 284 |
+
target is below iOS 18, raise it or accept the extra client complexity.
|
| 285 |
+
|
| 286 |
+
### Consequence: the two platforms need different packaging
|
| 287 |
+
|
| 288 |
+
Android reassembles two parts; iOS receives one file. **Do not design one chunking
|
| 289 |
+
scheme for both.** Keep the split and concatenation logic on the Android side
|
| 290 |
+
only, and let iOS treat the model as an ordinary single asset.
|
| 291 |
+
|
| 292 |
+
| | limit per pack | parts for 1.844 GB |
|
| 293 |
+
|---|---:|---:|
|
| 294 |
+
| Android, Play Asset Delivery | 1.5 GB | **2** |
|
| 295 |
+
| iOS 18+, Background Assets | 8 GB | **1** |
|
| 296 |
+
| iOS ≤ 17, On-Demand Resources | 512 MB | 4 (and deprecated) |
|
| 297 |
+
|
| 298 |
+
---
|
| 299 |
+
|
| 300 |
+
## 8. Release checklist
|
| 301 |
+
|
| 302 |
+
Everything below has been run against the assets in this repo. Re-run after any
|
| 303 |
+
change to the model, the prompts or the caps.
|
| 304 |
+
|
| 305 |
+
| # | check | command | current |
|
| 306 |
+
|---|---|---|---|
|
| 307 |
+
| 1 | model is the expected size | `ls -l models/wide_iq4xs_e2.gguf` | 1.844 GB ✅ |
|
| 308 |
+
| 2 | no regression on the benchmarked languages | `SENSE10_MODEL=models/wide_iq4xs_e2.gguf bash scripts/full90.sh rel` | 79.2 vs 79.0 ✅ |
|
| 309 |
+
| 3 | new languages pass the ship gate | `npx tsx scripts/newlang-verify.ts models/wide_iq4xs_e2.gguf` | 27/28 ✅ (Tamil CONTEXT known) |
|
| 310 |
+
| 4 | prompts export is current and at v7 | `BENCH_PROMPTS=v7 npx tsx scripts/export-prompts.ts > out/prompts.json` | 32 KB, v7 ✅ |
|
| 311 |
+
| 5 | client sends `enable_thinking: false` | inspect one request | **verify per platform** |
|
| 312 |
+
| 6 | client honours `book` / `reader` flags | Greek hidden, Tamil not offered as answer language | **verify per platform** |
|
| 313 |
+
| 7 | client derives `{{sentence}}` from tap offsets | not from punctuation splitting | **verify per platform** |
|
| 314 |
+
| 8 | assembled model matches the checksum | `sha256sum` after concatenation | **verify per platform** |
|
| 315 |
+
|
| 316 |
+
Rows 5–8 cannot be checked from this repo and are the ones most likely to be got
|
| 317 |
+
wrong. Two of them fail silently: row 5 looks like a model defect, and row 8 —
|
| 318 |
+
a mis-assembled model — loads without complaint and generates fluent nonsense.
|
| 319 |
+
|
| 320 |
+
### Reproducing every number in this document
|
| 321 |
+
|
| 322 |
+
```bash
|
| 323 |
+
bash scripts/full90.sh <arm> # 90-item benchmark
|
| 324 |
+
npx tsx scripts/newlang-verify.ts <model.gguf> # ship gate, exits non-zero
|
| 325 |
+
npx tsx scripts/newlang-probe.ts <model.gguf> zh,ja,ko # read the answers
|
| 326 |
+
npx tsx scripts/token-cost.ts <model.gguf> # token cost per script
|
| 327 |
+
bash scripts/build-script-variant.sh <name> <Scripts,Comma> # a different script set
|
| 328 |
+
```
|
README.md
ADDED
|
@@ -0,0 +1,176 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
---
|
| 2 |
+
license: gemma
|
| 3 |
+
base_model: google/gemma-4-E2B-it
|
| 4 |
+
library_name: gguf
|
| 5 |
+
pipeline_tag: text-generation
|
| 6 |
+
tags:
|
| 7 |
+
- gguf
|
| 8 |
+
- llama.cpp
|
| 9 |
+
- on-device
|
| 10 |
+
- mobile
|
| 11 |
+
- vocabulary-pruned
|
| 12 |
+
- quantized
|
| 13 |
+
language:
|
| 14 |
+
- en
|
| 15 |
+
- de
|
| 16 |
+
- ar
|
| 17 |
+
- fr
|
| 18 |
+
- es
|
| 19 |
+
- it
|
| 20 |
+
- pt
|
| 21 |
+
- nl
|
| 22 |
+
- pl
|
| 23 |
+
- tr
|
| 24 |
+
- ru
|
| 25 |
+
- zh
|
| 26 |
+
- ja
|
| 27 |
+
- ko
|
| 28 |
+
- hi
|
| 29 |
+
- ta
|
| 30 |
+
- th
|
| 31 |
+
- he
|
| 32 |
+
---
|
| 33 |
+
|
| 34 |
+
# ClickBook Gemma 4 E2B — multilingual, vocabulary-pruned, IQ4_XS
|
| 35 |
+
|
| 36 |
+
An on-device reading assistant model. A reader taps a word in a book; the model
|
| 37 |
+
explains it in the sense that sentence gives it, writes fresh examples, translates
|
| 38 |
+
the word, and translates the passage.
|
| 39 |
+
|
| 40 |
+
**1.844 GB**, built to fit a 1.85 GB application budget on iOS and Android.
|
| 41 |
+
|
| 42 |
+
## What was changed from the base model
|
| 43 |
+
|
| 44 |
+
1. **Vocabulary pruned from 262,144 to 231,955 tokens.** Scripts not served by the
|
| 45 |
+
product were removed: Bengali, Gurmukhi, Gujarati, Oriya, Telugu, Kannada,
|
| 46 |
+
Malayalam, Sinhala, Lao, Tibetan, Myanmar, Georgian, Ethiopic, Cherokee and
|
| 47 |
+
others. Latin, Cyrillic, Arabic, CJK, Hangul, Devanagari, Tamil, Thai, Greek
|
| 48 |
+
and Hebrew are retained.
|
| 49 |
+
|
| 50 |
+
This matters more than it would in most architectures: Gemma 4 carries
|
| 51 |
+
per-layer embeddings, so a vocabulary token costs **10,496 parameters** — about
|
| 52 |
+
3.49 KB in this quantisation. Vocabulary is roughly a third of the file.
|
| 53 |
+
|
| 54 |
+
2. **Quantised to IQ4_XS** with **Q2_K token embeddings**, guided by an importance
|
| 55 |
+
matrix computed over 1,538 calibration chunks.
|
| 56 |
+
|
| 57 |
+
Embedding tensors are deliberately left out of imatrix guidance because they
|
| 58 |
+
cannot benefit from it — embedding lookups are gather operations, not matrix
|
| 59 |
+
multiplications, so `llama-imatrix` never observes them.
|
| 60 |
+
|
| 61 |
+
## Files
|
| 62 |
+
|
| 63 |
+
| file | purpose |
|
| 64 |
+
|---|---|
|
| 65 |
+
| `ClickBook-Gemma-4-E2B-multi-IQ4_XS.gguf` | the model |
|
| 66 |
+
| `prompts.json` | every prompt, per language, with placeholders and token caps |
|
| 67 |
+
| `MOBILE-INTEGRATION.md` | integration guide for client developers |
|
| 68 |
+
|
| 69 |
+
## Usage
|
| 70 |
+
|
| 71 |
+
```bash
|
| 72 |
+
llama-server -m ClickBook-Gemma-4-E2B-multi-IQ4_XS.gguf -c 2048 -ngl 99 --jinja
|
| 73 |
+
```
|
| 74 |
+
|
| 75 |
+
```jsonc
|
| 76 |
+
{
|
| 77 |
+
"messages": [{ "role": "user", "content": "<prompt from prompts.json>" }],
|
| 78 |
+
"temperature": 0.1, "top_k": 40, "top_p": 0.9, "repeat_penalty": 1.05,
|
| 79 |
+
"max_tokens": 111,
|
| 80 |
+
"chat_template_kwargs": { "enable_thinking": false }
|
| 81 |
+
}
|
| 82 |
+
```
|
| 83 |
+
|
| 84 |
+
### `enable_thinking: false` is required
|
| 85 |
+
|
| 86 |
+
Without it the model reasons before answering, spends the entire token budget in
|
| 87 |
+
`reasoning_content`, and returns **empty `content` with `finish_reason: "length"`**.
|
| 88 |
+
That is indistinguishable from a broken model or an unsupported language. If you
|
| 89 |
+
want reasoning, raise every cap to 1000 first.
|
| 90 |
+
|
| 91 |
+
## Language support
|
| 92 |
+
|
| 93 |
+
Support is uneven and the model card should be believed over the language tag list
|
| 94 |
+
above, which cannot express degrees.
|
| 95 |
+
|
| 96 |
+
| languages | reading | answering | evidence |
|
| 97 |
+
|---|:--:|:--:|---|
|
| 98 |
+
| English, German, Arabic | yes | yes | 90-item benchmark, two seeds |
|
| 99 |
+
| French, Portuguese, Spanish, Italian, Russian, Dutch, Polish, Turkish | yes | not yet | 183 items each on an earlier build, 69–86 |
|
| 100 |
+
| Chinese, Japanese, Korean, Hindi, Thai, Hebrew | yes | yes | smoke-tested, 4/4 tabs pass |
|
| 101 |
+
| Tamil | yes | **no** | passage translation into Tamil is corrupted |
|
| 102 |
+
| Greek | **no** | **no** | output mixes scripts and invents words |
|
| 103 |
+
|
| 104 |
+
**Greek is broken. Do not enable it.** Only 1,511 Greek tokens survived the prune,
|
| 105 |
+
which is not enough for coherent generation; output splices Cyrillic letters and
|
| 106 |
+
German words into Greek text.
|
| 107 |
+
|
| 108 |
+
**Tamil should be read but not written to.** Translating a passage into Tamil
|
| 109 |
+
produced Han, Kana and Hangul characters spliced into Tamil script.
|
| 110 |
+
|
| 111 |
+
The six smoke-tested languages passed every automated check and read two
|
| 112 |
+
deliberately hard idiomatic taps each correctly — 手が空いた, 발이 넓다, हाथ धोना,
|
| 113 |
+
ใจดี, יד חמה. That is a handful of sentences, not a benchmark. Treat them as beta.
|
| 114 |
+
|
| 115 |
+
## Evaluation
|
| 116 |
+
|
| 117 |
+
Measured on a 90-item held-out set of tapped words in English, German and Arabic,
|
| 118 |
+
graded 0–100 by an LLM judge against a rubric containing a reference sense. Same
|
| 119 |
+
prompts, sampler and seed throughout; the only variable is the model file.
|
| 120 |
+
|
| 121 |
+
| build | vocabulary | size | score | failures |
|
| 122 |
+
|---|---:|---:|---:|---:|
|
| 123 |
+
| same weights at **f16** | 231,955 | 8.676 GB | 80.5 | 12 |
|
| 124 |
+
| **this model** | 231,955 | **1.844 GB** | **79.2** | 15 |
|
| 125 |
+
| narrower prune, 11 languages | 180,850 | 1.666 GB | 79.0 | 15 |
|
| 126 |
+
| **unpruned vocabulary**, same quantisation | 262,144 | 1.950 GB | **63.6** | 23 |
|
| 127 |
+
|
| 128 |
+
Three things this shows.
|
| 129 |
+
|
| 130 |
+
**Quantisation is nearly free.** IQ4_XS with Q2_K embeddings costs **1.3 points**
|
| 131 |
+
against the same weights at f16, for a **4.7× smaller file** — 8.676 GB to 1.844 GB.
|
| 132 |
+
|
| 133 |
+
**Restoring seven scripts is free.** Going from 180,850 to 231,955 tokens — adding
|
| 134 |
+
CJK, Hangul, Devanagari, Tamil, Thai, Greek and Hebrew — moved the score by 0.2 and
|
| 135 |
+
the failure count not at all.
|
| 136 |
+
|
| 137 |
+
**Pruning is not only a size optimisation, it is a quality one.** The unpruned
|
| 138 |
+
262,144-token vocabulary, built with an identical recipe and imatrix, scores
|
| 139 |
+
**15.6 points lower** and fails 23 items instead of 15. The regression is worst on
|
| 140 |
+
the *easiest* third of the set (91.5 → 70.8). A plausible mechanism is that at
|
| 141 |
+
Q2_K precision the embedding table and output distribution spend capacity on tens
|
| 142 |
+
of thousands of tokens the model never needs, at the expense of the tokens it
|
| 143 |
+
does. The measurement is single-seed and reported as measured; the explanation is
|
| 144 |
+
a hypothesis.
|
| 145 |
+
|
| 146 |
+
### Packaging note for mobile
|
| 147 |
+
|
| 148 |
+
The file compresses by only 3% (ratio 0.970) — quantised weights are close to
|
| 149 |
+
incompressible, so download size is effectively file size. Google Play's asset
|
| 150 |
+
pack limit is 1.5 GB per pack, which this model exceeds, so Android delivery needs
|
| 151 |
+
**two asset packs** concatenated on device. Every smaller variant above exceeds it
|
| 152 |
+
too, so splitting is unavoidable regardless of which build is chosen.
|
| 153 |
+
|
| 154 |
+
## Limitations
|
| 155 |
+
|
| 156 |
+
- **Not a chat model.** It is tuned for four narrow tasks driven by the supplied
|
| 157 |
+
prompts. General conversation is out of scope.
|
| 158 |
+
- The hardest word senses remain hard: polysemous common words (*bank*, *charge*,
|
| 159 |
+
*Schloss*) are where the 15 failures concentrate.
|
| 160 |
+
- No on-device dictionary is bundled. An external sense resource was measured at
|
| 161 |
+
+12.7 points on the same benchmark but is not included here.
|
| 162 |
+
- Quality in the newly-restored scripts is established by smoke tests only.
|
| 163 |
+
|
| 164 |
+
## License and provenance
|
| 165 |
+
|
| 166 |
+
Derived from [`google/gemma-4-E2B-it`](https://huggingface.co/google/gemma-4-E2B-it)
|
| 167 |
+
and distributed under the **[Gemma Terms of Use](https://ai.google.dev/gemma/terms)**.
|
| 168 |
+
|
| 169 |
+
By using this model you agree to those terms, including the
|
| 170 |
+
[Gemma Prohibited Use Policy](https://ai.google.dev/gemma/prohibited_use_policy).
|
| 171 |
+
Those restrictions pass through to anyone you distribute this model or its
|
| 172 |
+
derivatives to. The modifications made here — vocabulary pruning and quantisation
|
| 173 |
+
— are described above.
|
| 174 |
+
|
| 175 |
+
Gemma is a trademark of Google LLC. This is an independent derivative and is not
|
| 176 |
+
endorsed by or affiliated with Google.
|
prompts.json
ADDED
|
@@ -0,0 +1,296 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
{
|
| 2 |
+
"promptVersion": "v7",
|
| 3 |
+
"generatedFrom": "adapters/clickbook-prompts.ts + scripts/newlang-prompts.ts",
|
| 4 |
+
"model": {
|
| 5 |
+
"file": "wide_iq4xs_e2.gguf",
|
| 6 |
+
"bytes": 1844,
|
| 7 |
+
"unit": "MB",
|
| 8 |
+
"vocab": 231955
|
| 9 |
+
},
|
| 10 |
+
"request": {
|
| 11 |
+
"required": {
|
| 12 |
+
"chat_template_kwargs": {
|
| 13 |
+
"enable_thinking": false
|
| 14 |
+
}
|
| 15 |
+
},
|
| 16 |
+
"sampling": {
|
| 17 |
+
"temperature": 0.1,
|
| 18 |
+
"top_k": 40,
|
| 19 |
+
"top_p": 0.9,
|
| 20 |
+
"repeat_penalty": 1.05,
|
| 21 |
+
"seed": 42
|
| 22 |
+
},
|
| 23 |
+
"server": {
|
| 24 |
+
"n_ctx": 2048,
|
| 25 |
+
"n_ctx_min": 555,
|
| 26 |
+
"n_threads": 6,
|
| 27 |
+
"n_gpu_layers": 99
|
| 28 |
+
}
|
| 29 |
+
},
|
| 30 |
+
"placeholders": {
|
| 31 |
+
"{{word}}": "the tapped word, verbatim from the text",
|
| 32 |
+
"{{sentence}}": "the sentence containing the tap, derived from the tap character offsets",
|
| 33 |
+
"{{passage}}": "the whole block, or ~520 characters around the tap if longer"
|
| 34 |
+
},
|
| 35 |
+
"caps": {
|
| 36 |
+
"default": {
|
| 37 |
+
"meaning": 111,
|
| 38 |
+
"example": 222,
|
| 39 |
+
"translation": 111,
|
| 40 |
+
"context": 444
|
| 41 |
+
},
|
| 42 |
+
"perLanguage": {
|
| 43 |
+
"zh": {
|
| 44 |
+
"meaning": 112,
|
| 45 |
+
"example": 224,
|
| 46 |
+
"translation": 112,
|
| 47 |
+
"context": 448
|
| 48 |
+
},
|
| 49 |
+
"ja": {
|
| 50 |
+
"meaning": 112,
|
| 51 |
+
"example": 224,
|
| 52 |
+
"translation": 112,
|
| 53 |
+
"context": 448
|
| 54 |
+
},
|
| 55 |
+
"ko": {
|
| 56 |
+
"meaning": 136,
|
| 57 |
+
"example": 272,
|
| 58 |
+
"translation": 136,
|
| 59 |
+
"context": 544
|
| 60 |
+
},
|
| 61 |
+
"hi": {
|
| 62 |
+
"meaning": 144,
|
| 63 |
+
"example": 288,
|
| 64 |
+
"translation": 144,
|
| 65 |
+
"context": 576
|
| 66 |
+
},
|
| 67 |
+
"ta": {
|
| 68 |
+
"meaning": 160,
|
| 69 |
+
"example": 320,
|
| 70 |
+
"translation": 160,
|
| 71 |
+
"context": 640
|
| 72 |
+
},
|
| 73 |
+
"th": {
|
| 74 |
+
"meaning": 136,
|
| 75 |
+
"example": 272,
|
| 76 |
+
"translation": 136,
|
| 77 |
+
"context": 544
|
| 78 |
+
},
|
| 79 |
+
"he": {
|
| 80 |
+
"meaning": 192,
|
| 81 |
+
"example": 384,
|
| 82 |
+
"translation": 192,
|
| 83 |
+
"context": 768
|
| 84 |
+
}
|
| 85 |
+
}
|
| 86 |
+
},
|
| 87 |
+
"languages": {
|
| 88 |
+
"ar": {
|
| 89 |
+
"name": "Arabic",
|
| 90 |
+
"book": true,
|
| 91 |
+
"reader": true,
|
| 92 |
+
"evidence": "benchmark, 90 items x 2 seeds",
|
| 93 |
+
"prompts": {
|
| 94 |
+
"meaning": "ما معنى «{{word}}» هنا؟ الجملة التي وردت فيها: <<<{{sentence}}>>>\nعرّف «{{word}}» نفسها بالمعنى الذي تعطيه لها الجملة. وإذا كانت داخل تعبير اصطلاحي - أي عبارة معناها ليس مجموع كلماتها - فاشرح العبارة كلها. ولا تلخّص الجملة ولا تعد سردها. استخدم العربية البسيطة. من دون تسميات أو ماركداون أو علامات اقتباس أو أمثلة.",
|
| 95 |
+
"example": "هكذا استُخدمت «{{word}}» هنا: <<<{{sentence}}>>>\nاكتب 3 جمل قصيرة جديدة من عندك تستخدم «{{word}}» بالمعنى نفسه. إذا كانت «{{word}}» داخل تعبير اصطلاحي - أي عبارة معناها ليس مجموع كلماتها - فاحتفظ بالعبارة كلها. أما الكلمة المركبة فليست تعبيرا اصطلاحيا، فاستخدم «{{word}}» وحدها. لا تستخدم أي معنى آخر. ولا تكرر الجملة السابقة. استخدم العربية البسيطة. من دون تسميات أو ماركداون أو علامات اقتباس.",
|
| 96 |
+
"translation": "قارئ وجد كلمة «{{word}}» في هذه الجملة: <<<{{sentence}}>>>\nاشرح بالعربية ما تعنيه «{{word}}» هناك. اكتب عبارة قصيرة لا كلمة واحدة مجردة. وإذا كانت جزءا من تعبير اصطلاحي، فاشرح العبارة كلها. اشرح الكلمة ولا تترجم الجملة. من دون تسميات أو ماركداون أو علامات اقتباس أو أمثلة. أجب بالعربية.",
|
| 97 |
+
"context": "ترجم هذا المقطع إلى العربية بشكل طبيعي وسلس: {{passage}}. حافظ على المعنى والأسلوب الأصلي. أعط الترجمة العربية فقط. من دون تسميات أو ماركداون أو علامات اقتباس أو ملاحظات."
|
| 98 |
+
}
|
| 99 |
+
},
|
| 100 |
+
"de": {
|
| 101 |
+
"name": "German",
|
| 102 |
+
"book": true,
|
| 103 |
+
"reader": true,
|
| 104 |
+
"evidence": "benchmark, 90 items x 2 seeds",
|
| 105 |
+
"prompts": {
|
| 106 |
+
"meaning": "Was bedeutet «{{word}}» hier? Der Satz, in dem es vorkommt: <<<{{sentence}}>>>\nErkläre «{{word}}» selbst, in der Bedeutung, die der Satz ihm gibt. Wenn «{{word}}» dort Teil einer Redewendung ist - einer Wendung, deren Bedeutung sich nicht aus den einzelnen Wörtern ergibt - erkläre stattdessen die ganze Wendung. Fasse den Satz nicht zusammen und erzähle ihn nicht nach. Nutze einfaches Deutsch. Keine Beschriftungen, kein Markdown, keine Anführungszeichen, keine Beispiele.",
|
| 107 |
+
"example": "So wird «{{word}}» verwendet: <<<{{sentence}}>>>\nSchreibe 3 neue kurze eigene Sätze, die «{{word}}» mit genau dieser Bedeutung verwenden. Wenn der Satz «{{word}}» in einer Redewendung verwendet - einer Wendung, deren Bedeutung sich nicht aus den einzelnen Wörtern ergibt - behalte die ganze Wendung. Ein zusammengesetztes Wort ist keine Redewendung; dort nutze einfach «{{word}}» selbst. Nutze keine andere Bedeutung. Wiederhole den Satz oben nicht. Nutze einfaches Deutsch. Keine Beschriftungen, kein Markdown, keine Anführungszeichen.",
|
| 108 |
+
"translation": "Ein Leser ist auf das Wort «{{word}}» in diesem Satz gestoßen: <<<{{sentence}}>>>\nErkläre auf Deutsch, was «{{word}}» dort bedeutet. Schreibe eine kurze Wendung, nicht nur ein einzelnes Wort. Wenn es Teil einer Redewendung ist, erkläre die ganze Wendung. Erkläre das Wort, übersetze nicht den Satz. Keine Beschriftungen, kein Markdown, keine Anführungszeichen, keine Beispiele. Antworte auf Deutsch.",
|
| 109 |
+
"context": "Übersetze diesen Text in natürliches Deutsch: {{passage}}. Behalte Bedeutung und Ton des Originals bei. Antworte nur mit der deutschen Übersetzung. Keine Beschriftungen, kein Markdown, keine Anführungszeichen, keine Notizen."
|
| 110 |
+
}
|
| 111 |
+
},
|
| 112 |
+
"el": {
|
| 113 |
+
"name": "el",
|
| 114 |
+
"book": false,
|
| 115 |
+
"reader": false,
|
| 116 |
+
"evidence": "ship gate: output mixes Cyrillic and German into Greek, invents words",
|
| 117 |
+
"note": "DO NOT ENABLE. Only 1,511 Greek tokens were retained.",
|
| 118 |
+
"prompts": {}
|
| 119 |
+
},
|
| 120 |
+
"en": {
|
| 121 |
+
"name": "English",
|
| 122 |
+
"book": true,
|
| 123 |
+
"reader": true,
|
| 124 |
+
"evidence": "benchmark, 90 items x 2 seeds",
|
| 125 |
+
"prompts": {
|
| 126 |
+
"meaning": "What does «{{word}}» mean here? The sentence it appears in: <<<{{sentence}}>>>\nDefine «{{word}}» itself, in the sense the sentence gives it. If «{{word}}» is part of an idiom there - a phrase whose meaning is not the sum of its words - explain what that whole phrase means instead. Do not summarise or retell the sentence. Use simple English. No labels, no markdown, no quotes, no examples.",
|
| 127 |
+
"example": "Here is how «{{word}}» is used: <<<{{sentence}}>>>\nWrite 3 new short sentences of your own that use «{{word}}» with that same meaning. If the sentence uses «{{word}}» inside an idiom - a phrase whose meaning is not the sum of its words - keep that whole phrase. A compound word or a possessive is not an idiom; for those just use «{{word}}» itself. Do not use any other meaning. Do not repeat the sentence above. Use plain English. No labels, no markdown, no quotes.",
|
| 128 |
+
"translation": "A reader met the word «{{word}}» in this sentence: <<<{{sentence}}>>>\nIn English, explain what «{{word}}» means there. Write a short phrase, not a single bare word. If it is part of an idiom, explain what the whole phrase means. Explain the word, do not translate the sentence. No labels, no markdown, no quotes, no examples. Answer in English.",
|
| 129 |
+
"context": "Translate this passage into natural English: {{passage}}. Keep the meaning and tone of the original. Reply with only the English translation. No labels, no markdown, no quotes, no notes."
|
| 130 |
+
}
|
| 131 |
+
},
|
| 132 |
+
"es": {
|
| 133 |
+
"name": "Spanish",
|
| 134 |
+
"book": true,
|
| 135 |
+
"reader": false,
|
| 136 |
+
"evidence": "benchmark, 183 items (older build): 81.3",
|
| 137 |
+
"prompts": {
|
| 138 |
+
"meaning": "¿Qué significa «{{word}}» aquí? La oración en la que aparece: <<<{{sentence}}>>>\nDefine «{{word}}» en sí, en el sentido que le da la oración. Si «{{word}}» forma parte de una expresión idiomática - una frase cuyo significado no es la suma de sus palabras - explica en su lugar qué significa toda la expresión. No resumas ni recuentes la oración. Usa un español sencillo. Sin etiquetas, sin markdown, sin comillas, sin ejemplos.",
|
| 139 |
+
"example": "Así se usa «{{word}}»: <<<{{sentence}}>>>\nEscribe 3 oraciones cortas nuevas tuyas que usen «{{word}}» con ese mismo significado. Si la oración usa «{{word}}» dentro de una expresión idiomática - una frase cuyo significado no es la suma de sus palabras - conserva toda la expresión. Una palabra compuesta no es una expresión idiomática; en ese caso usa «{{word}}» sola. No uses ningún otro significado. No repitas la oración anterior. Usa un español sencillo. Sin etiquetas, sin markdown, sin comillas."
|
| 140 |
+
}
|
| 141 |
+
},
|
| 142 |
+
"fr": {
|
| 143 |
+
"name": "French",
|
| 144 |
+
"book": true,
|
| 145 |
+
"reader": false,
|
| 146 |
+
"evidence": "benchmark, 183 items (older build): 86.3",
|
| 147 |
+
"prompts": {
|
| 148 |
+
"meaning": "Que signifie «{{word}}» ici ? La phrase où il apparaît : <<<{{sentence}}>>>\nDéfinis «{{word}}» lui-même, dans le sens que la phrase lui donne. Si «{{word}}» fait partie d'une expression idiomatique - une locution dont le sens n'est pas la somme des mots - explique plutôt ce que signifie l'expression entière. Ne résume pas et ne raconte pas la phrase. Utilise un français simple. Sans étiquettes, sans markdown, sans guillemets, sans exemples.",
|
| 149 |
+
"example": "Voici comment «{{word}}» est employé : <<<{{sentence}}>>>\nÉcris 3 nouvelles phrases courtes de ton cru qui emploient «{{word}}» avec exactement ce sens. Si la phrase emploie «{{word}}» dans une expression idiomatique - une locution dont le sens n'est pas la somme des mots - garde l'expression entière. Un mot composé n'est pas une expression idiomatique ; dans ce cas emploie «{{word}}» seul. N'emploie aucun autre sens. Ne répète pas la phrase ci-dessus. Utilise un français simple. Sans étiquettes, sans markdown, sans guillemets."
|
| 150 |
+
}
|
| 151 |
+
},
|
| 152 |
+
"he": {
|
| 153 |
+
"name": "Hebrew",
|
| 154 |
+
"book": true,
|
| 155 |
+
"reader": true,
|
| 156 |
+
"evidence": "ship gate: 4/4 tabs pass; 2 taps read correctly",
|
| 157 |
+
"prompts": {
|
| 158 |
+
"meaning": "מה המשמעות של «{{word}}» כאן? המשפט שבו היא מופיעה: <<<{{sentence}}>>>\nהסבר את המילה «{{word}}» עצמה, במשמעות שהמשפט נותן לה. אם «{{word}}» היא חלק מצירוף קבוע שמשמעותו אינה סכום המילים שבו, הסבר את הצירוף כולו. אל תסכם ואל תחזור על המשפט. כתוב בעברית פשוטה משפט אחד בלבד. בלי תוויות, בלי markdown, בלי מרכאות ובלי דוגמאות.",
|
| 159 |
+
"example": "כך משתמשים ב־«{{word}}»: <<<{{sentence}}>>>\nכתוב 3 משפטים קצרים חדשים משלך שמשתמשים ב־«{{word}}» באותה משמעות בדיוק. אם היא חלק מצירוף קבוע, שמור על הצירוף כולו. אל תשתמש במשמעות אחרת. אל תחזור על המשפט שלמעלה. משפט אחד בכל שורה, בלי מספור. בעברית פשוטה. בלי תוויות, בלי markdown ובלי מרכאות.",
|
| 160 |
+
"translation": "\"{{sentence}}\" מה המשמעות של {{word}} כאן? כתוב הסבר קצר מאוד בעברית פשוטה. בלי תוויות, בלי markdown, בלי מרכאות ובלי דוגמאות. ענה בעברית.",
|
| 161 |
+
"context": "תרגם את הקטע הזה לעברית טבעית: {{passage}}. שמור על המשמעות והנימה של המקור. ענה רק בתרגום העברי. בלי תוויות, בלי markdown, בלי מרכאות ובלי הערות."
|
| 162 |
+
}
|
| 163 |
+
},
|
| 164 |
+
"hi": {
|
| 165 |
+
"name": "Hindi",
|
| 166 |
+
"book": true,
|
| 167 |
+
"reader": true,
|
| 168 |
+
"evidence": "ship gate: 4/4 tabs pass; 2 taps read correctly",
|
| 169 |
+
"prompts": {
|
| 170 |
+
"meaning": "यहाँ «{{word}}» का क्या अर्थ है? जिस वाक्य में यह आया है: <<<{{sentence}}>>>\nइस वाक्य में «{{word}}» का जो अर्थ है, उसी शब्द के बारे में समझाइए। यदि «{{word}}» किसी बँधे हुए वाक्यांश का हिस्सा है जिसका अर्थ अलग-अलग शब्दों के अर्थ का जोड़ नहीं है, तो पूरे वाक्यांश का अर्थ समझाइए। वाक्य का सारांश या दोहराव मत कीजिए। सरल हिंदी में केवल एक वाक्य लिखिए। कोई लेबल, markdown, उद्धरण चिह्न या उदाहरण नहीं।",
|
| 171 |
+
"example": "«{{word}}» इस तरह प्रयोग होता है: <<<{{sentence}}>>>\nइसी अर्थ में «{{word}}» का प्रयोग करते हुए अपने 3 नए छोटे वाक्य लिखिए। यदि यह किसी बँधे हुए वाक्यांश का हिस्सा है तो पूरा वाक्यांश रखिए। कोई दूसरा अर्थ मत लीजिए। ऊपर का वाक्य मत दोहराइए। हर वाक्य नई पंक्ति में, संख्या मत लगाइए। सरल हिंदी में। कोई लेबल, markdown या उद्धरण चिह्न नहीं।",
|
| 172 |
+
"translation": "\"{{sentence}}\" इसमें {{word}} का क्या अर्थ है? सरल हिंदी में बहुत छोटा उत्तर लिखिए। कोई लेबल, markdown, उद्धरण चिह्न या उदाहरण नहीं। हिंदी में उत्तर दीजिए।",
|
| 173 |
+
"context": "इस अंश का सहज हिंदी में अनुवाद कीजिए: {{passage}}। मूल का अर्थ और लहजा बनाए रखिए। केवल हिंदी अनुवाद दीजिए। कोई लेबल, markdown, उद्धरण चिह्न या टिप्पणी नहीं।"
|
| 174 |
+
}
|
| 175 |
+
},
|
| 176 |
+
"it": {
|
| 177 |
+
"name": "Italian",
|
| 178 |
+
"book": true,
|
| 179 |
+
"reader": false,
|
| 180 |
+
"evidence": "benchmark, 183 items (older build): 81.3",
|
| 181 |
+
"prompts": {
|
| 182 |
+
"meaning": "Che cosa significa «{{word}}» qui? La frase in cui compare: <<<{{sentence}}>>>\nDefinisci «{{word}}» stessa, nel senso che le dà la frase. Se «{{word}}» fa parte di un'espressione idiomatica - una locuzione il cui significato non è la somma delle parole - spiega invece che cosa significa l'intera espressione. Non riassumere e non raccontare la frase. Usa un italiano semplice. Senza etichette, senza markdown, senza virgolette, senza esempi.",
|
| 183 |
+
"example": "Ecco come viene usata «{{word}}»: <<<{{sentence}}>>>\nScrivi 3 nuove frasi brevi tue che usino «{{word}}» con lo stesso significato. Se la frase usa «{{word}}» dentro un'espressione idiomatica - una locuzione il cui significato non è la somma delle parole - mantieni l'intera espressione. Una parola composta non è un'espressione idiomatica; in quel caso usa «{{word}}» da sola. Non usare nessun altro significato. Non ripetere la frase qui sopra. Usa un italiano semplice. Senza etichette, senza markdown, senza virgolette."
|
| 184 |
+
}
|
| 185 |
+
},
|
| 186 |
+
"ja": {
|
| 187 |
+
"name": "Japanese",
|
| 188 |
+
"book": true,
|
| 189 |
+
"reader": true,
|
| 190 |
+
"evidence": "ship gate: 4/4 tabs pass; 2 taps read correctly",
|
| 191 |
+
"prompts": {
|
| 192 |
+
"meaning": "ここでの «{{word}}» の意味は何ですか。その語が現れる文:<<<{{sentence}}>>>\nこの文が «{{word}}» に与えている意味を、その語自体について説明してください。もし «{{word}}» が決まった言い回しの一部で、全体の意味が個々の語の意味の合計にならない場合は、その言い回し全体を説明してください。文を要約したり言い換えたりしないでください。やさしい日本語で、一文だけ書いてください。ラベル、マークダウン、引用符、例文は不要です。",
|
| 193 |
+
"example": "«{{word}}» はこのように使われます:<<<{{sentence}}>>>\n同じ意味で «{{word}}» を使った短い新しい文を3つ書いてください。決まった言い回しの一部なら、その言い回し全体を残してください。他の意味では使わないでください。上の文を繰り返さないでください。1行に1文、番号は付けないでください。やさしい日本語で。ラベル、マークダウン、引用符は不要です。",
|
| 194 |
+
"translation": "「{{sentence}}」ここでの {{word}} の意味は何ですか。やさしい日本語で、とても短い説明を書いてください。ラベル、マークダウン、引用符、例文は不要です。日本語で答えてください。",
|
| 195 |
+
"context": "この文章を自然な日本語に翻訳してください:{{passage}}。原文の意味と調子を保ってください。日本語の訳文だけを答えてください。ラベル、マークダウン、引用符、注釈は不要です。"
|
| 196 |
+
}
|
| 197 |
+
},
|
| 198 |
+
"ko": {
|
| 199 |
+
"name": "Korean",
|
| 200 |
+
"book": true,
|
| 201 |
+
"reader": true,
|
| 202 |
+
"evidence": "ship gate: 4/4 tabs pass; 2 taps read correctly",
|
| 203 |
+
"prompts": {
|
| 204 |
+
"meaning": "여기에서 «{{word}}»는 무슨 뜻인가요? 그 말이 나오는 문장: <<<{{sentence}}>>>\n이 문장이 «{{word}}»에 주는 뜻을, 그 말 자체에 대해 설명해 주세요. «{{word}}»가 굳어진 표현의 일부이고 전체 뜻이 낱말 뜻의 합이 아니라면, 그 표현 전체를 설명해 주세요. 문장을 요약하거나 다시 말하지 마세요. 쉬운 한국어로 한 문장만 쓰세요. 라벨, 마크다운, 따옴표, 예문은 쓰지 마세요.",
|
| 205 |
+
"example": "«{{word}}»는 이렇게 쓰입니다: <<<{{sentence}}>>>\n같은 뜻으로 «{{word}}»를 쓴 짧은 새 문장 3개를 직접 써 주세요. 굳어진 표현의 일부라면 표현 전체를 그대로 두세요. 다른 뜻으로 쓰지 마세요. 위 문장을 되풀이하지 마세요. 한 줄에 한 문장씩, 번호는 붙이지 마세요. 쉬운 한국어로. 라벨, 마크다운, 따옴표는 쓰지 마세요.",
|
| 206 |
+
"translation": "\"{{sentence}}\" 여기에서 {{word}}는 무슨 뜻인가요? 쉬운 한국어로 아주 짧은 설명을 써 주세요. 라벨, 마크다운, 따옴표, 예문은 쓰지 마세요. 한국어로 답해 주세요.",
|
| 207 |
+
"context": "이 글을 자연스러운 한국어로 번역해 주세요: {{passage}}. 원문의 뜻과 어조를 지켜 주세요. 한국어 번역만 답해 주세요. 라벨, 마크다운, 따옴표, 주석은 쓰지 마세요."
|
| 208 |
+
}
|
| 209 |
+
},
|
| 210 |
+
"nl": {
|
| 211 |
+
"name": "Dutch",
|
| 212 |
+
"book": true,
|
| 213 |
+
"reader": false,
|
| 214 |
+
"evidence": "benchmark, 183 items (older build): 79.2",
|
| 215 |
+
"prompts": {
|
| 216 |
+
"meaning": "Wat betekent «{{word}}» hier? De zin waarin het voorkomt: <<<{{sentence}}>>>\nDefinieer «{{word}}» zelf, in de betekenis die de zin eraan geeft. Als «{{word}}» deel uitmaakt van een uitdrukking - een zegswijze waarvan de betekenis niet de som van de woorden is - leg dan uit wat die hele uitdrukking betekent. Vat de zin niet samen en vertel hem niet na. Gebruik eenvoudig Nederlands. Geen labels, geen markdown, geen aanhalingstekens, geen voorbeelden.",
|
| 217 |
+
"example": "Zo wordt «{{word}}» gebruikt: <<<{{sentence}}>>>\nSchrijf 3 nieuwe korte eigen zinnen die «{{word}}» met precies die betekenis gebruiken. Als de zin «{{word}}» in een uitdrukking gebruikt - een zegswijze waarvan de betekenis niet de som van de woorden is - behoud dan de hele uitdrukking. Een samenstelling is geen uitdrukking; gebruik daar gewoon «{{word}}» zelf. Gebruik geen andere betekenis. Herhaal de zin hierboven niet. Gebruik eenvoudig Nederlands. Geen labels, geen markdown, geen aanhalingstekens."
|
| 218 |
+
}
|
| 219 |
+
},
|
| 220 |
+
"pl": {
|
| 221 |
+
"name": "Polish",
|
| 222 |
+
"book": true,
|
| 223 |
+
"reader": false,
|
| 224 |
+
"evidence": "benchmark, 183 items (older build): 76.7",
|
| 225 |
+
"prompts": {
|
| 226 |
+
"meaning": "Co znaczy «{{word}}» w tym miejscu? Zdanie, w którym występuje: <<<{{sentence}}>>>\nZdefiniuj samo «{{word}}» w znaczeniu, jakie nadaje mu to zdanie. Jeśli «{{word}}» jest częścią idiomu - wyrażenia, którego znaczenie nie jest sumą słów - wyjaśnij zamiast tego znaczenie całego wyrażenia. Nie streszczaj ani nie opowiadaj zdania. Używaj prostego języka polskiego. Bez etykiet, bez markdowna, bez cudzysłowów, bez przykładów.",
|
| 227 |
+
"example": "Tak użyto «{{word}}»: <<<{{sentence}}>>>\nNapisz 3 nowe krótkie własne zdania, które używają «{{word}}» w dokładnie tym samym znaczeniu. Jeśli zdanie używa «{{word}}» wewnątrz idiomu - wyrażenia, którego znaczenie nie jest sumą słów - zachowaj całe wyrażenie. Wyraz złożony nie jest idiomem; w takim razie użyj samego «{{word}}». Nie używaj żadnego innego znaczenia. Nie powtarzaj powyższego zdania. Używaj prostego języka polskiego. Bez etykiet, bez markdowna, bez cudzysłowów."
|
| 228 |
+
}
|
| 229 |
+
},
|
| 230 |
+
"pt": {
|
| 231 |
+
"name": "Portuguese",
|
| 232 |
+
"book": true,
|
| 233 |
+
"reader": false,
|
| 234 |
+
"evidence": "benchmark, 183 items (older build): 85.7",
|
| 235 |
+
"prompts": {
|
| 236 |
+
"meaning": "O que significa «{{word}}» aqui? A frase em que aparece: <<<{{sentence}}>>>\nDefine «{{word}}» em si, no sentido que a frase lhe dá. Se «{{word}}» fizer parte de uma expressão idiomática - uma locução cujo significado não é a soma das palavras - explica antes o que significa a expressão inteira. Não resumas nem recontes a frase. Usa português simples. Sem rótulos, sem markdown, sem aspas, sem exemplos.",
|
| 237 |
+
"example": "É assim que «{{word}}» é usada: <<<{{sentence}}>>>\nEscreve 3 frases curtas novas tuas que usem «{{word}}» com esse mesmo significado. Se a frase usar «{{word}}» dentro de uma expressão idiomática - uma locução cujo significado não é a soma das palavras - mantém a expressão inteira. Uma palavra composta não é uma expressão idiomática; nesse caso usa «{{word}}» sozinha. Não uses nenhum outro significado. Não repitas a frase acima. Usa português simples. Sem rótulos, sem markdown, sem aspas."
|
| 238 |
+
}
|
| 239 |
+
},
|
| 240 |
+
"ru": {
|
| 241 |
+
"name": "Russian",
|
| 242 |
+
"book": true,
|
| 243 |
+
"reader": false,
|
| 244 |
+
"evidence": "benchmark, 183 items (older build): 81.2",
|
| 245 |
+
"prompts": {
|
| 246 |
+
"meaning": "Что значит «{{word}}» здесь? Предложение, в котором оно встречается: <<<{{sentence}}>>>\nОпредели само «{{word}}» в том значении, которое даёт ему предложение. Если «{{word}}» входит в идиому - выражение, смысл которого не складывается из слов - объясни вместо этого значение всего выражения. Не пересказывай и не резюмируй предложение. Используй простой русский язык. Без пометок, без markdown, без кавычек, без примеров.",
|
| 247 |
+
"example": "Вот как употреблено «{{word}}»: <<<{{sentence}}>>>\nНапиши 3 новых коротких собственных предложения, где «{{word}}» имеет то же значение. Если в предложении «{{word}}» употреблено внутри идиомы - выражения, смысл которого не складывается из слов - сохрани всё выражение. Сложное слово идиомой не является; тогда используй само «{{word}}». Не используй другие значения. Не повторяй предложение выше. Используй простой русский язык. Без пометок, без markdown, без кавычек."
|
| 248 |
+
}
|
| 249 |
+
},
|
| 250 |
+
"ta": {
|
| 251 |
+
"name": "Tamil",
|
| 252 |
+
"book": true,
|
| 253 |
+
"reader": false,
|
| 254 |
+
"evidence": "ship gate: MEANING/EXAMPLE/TRANSLATION pass, CONTEXT fails",
|
| 255 |
+
"note": "CONTEXT spliced Han, Kana and Hangul into Tamil output. Book language only.",
|
| 256 |
+
"prompts": {
|
| 257 |
+
"meaning": "இங்கே «{{word}}» என்பதன் பொருள் என்ன? அது வரும் வாக்கியம்: <<<{{sentence}}>>>\nஇந்த வாக்கி���ம் «{{word}}» என்பதற்குத் தரும் பொருளை, அச்சொல்லைப் பற்றியே விளக்குங்கள். «{{word}}» ஒரு நிலையான தொடரின் பகுதியாக இருந்து, அதன் பொருள் தனிச் சொற்களின் கூட்டுப் பொருள் அல்ல எனில், அந்தத் தொடர் முழுவதையும் விளக்குங்கள். வாக்கியத்தைச் சுருக்கவோ மீண்டும் சொல்லவோ வேண்டாம். எளிய தமிழில் ஒரே ஒரு வாக்கியம் மட்டும் எழுதுங்கள். லேபிள், markdown, மேற்கோள் குறி, எடுத்துக்காட்டு வேண்டாம்.",
|
| 258 |
+
"example": "«{{word}}» இப்படிப் பயன்படுத்தப்படுகிறது: <<<{{sentence}}>>>\nஅதே பொருளில் «{{word}}» ஐப் பயன்படுத்தி உங்கள் சொந்த 3 புதிய குறுகிய வாக்கியங்களை எழுதுங்கள். அது ஒரு நிலையான தொடரின் பகுதியாக இருந்தால் தொடர் முழுவதையும் வைத்திருங்கள். வேறு பொருளைப் பயன்படுத்த வேண்டாம். மேலே உள்ள வாக்கியத்தை மீண்டும் எழுத வேண்டாம். ஒரு வரிக்கு ஒரு வாக்கியம், எண் இட வேண்டாம். எளிய தமிழில். லேபிள், markdown, மேற்கோள் குறி வேண்டாம்."
|
| 259 |
+
}
|
| 260 |
+
},
|
| 261 |
+
"th": {
|
| 262 |
+
"name": "Thai",
|
| 263 |
+
"book": true,
|
| 264 |
+
"reader": true,
|
| 265 |
+
"evidence": "ship gate: 4/4 tabs pass; 2 taps read correctly",
|
| 266 |
+
"prompts": {
|
| 267 |
+
"meaning": "«{{word}}» ในที่นี้หมายความว่าอะไร ประโยคที่คำนี้ปรากฏ: <<<{{sentence}}>>>\nอธิบายความหมายของ «{{word}}» เองตามที่ประโยคนี้ให้ไว้ ถ้า «{{word}}» เป็นส่วนหนึ่งของวลีที่ตายตัว ซึ่งความหมายรวมไม่ใช่ผลรวมของคำแต่ละคำ ให้อธิบายความหมายของวลีทั้งวลีแทน อย่าสรุปหรือเล่าประโยคซ้ำ ใช้ภาษาไทยง่าย ๆ เขียนเพียงประโยคเดียว ไม่ต้องมีป้ายกำกับ markdown เครื่องหมายคำพูด หรือตัวอย่าง",
|
| 268 |
+
"example": "«{{word}}» ใช้แบบนี้: <<<{{sentence}}>>>\nเขียนประโยคสั้น ๆ ใหม่ของคุณเอง 3 ประโยค ที่ใช้ «{{word}}» ในความหมายเดียวกัน ถ้าเป็นส่วนหนึ่งของวลีที่ตายตัว ให้คงวลีทั้งหมดไว้ อย่าใช้ความหมายอื่น อย่าเขียนประโยคข้างบนซ้ำ บรรทัดละหนึ่งประโยค ไม่ต้องใส่ตัวเลข ใช้ภาษาไทยง่าย ๆ ไม่ต้องมีป้ายกำกับ markdown หรือเครื่องหมายคำพูด",
|
| 269 |
+
"translation": "\"{{sentence}}\" คำว่า {{word}} ในที่นี้หมายความว่าอะไร เขียนคำอธิบายสั้นมากเป็นภาษาไทยง่าย ๆ ไม่ต้องมีป้ายกำกับ markdown เครื่องหมายคำพูด หรือตัวอย่าง ตอบเป็นภาษาไทย",
|
| 270 |
+
"context": "แปลข้อความนี้เป็นภาษาไทยที่เป็นธรรมชาติ: {{passage}} รักษาความหมายและน้ำเสียงของต้นฉบับไว้ ตอบเฉพาะคำแปลภาษาไทย ไม่ต้องมีป้ายกำกับ markdown เครื่องหมายคำพูด หรือหมายเหตุ"
|
| 271 |
+
}
|
| 272 |
+
},
|
| 273 |
+
"tr": {
|
| 274 |
+
"name": "Turkish",
|
| 275 |
+
"book": true,
|
| 276 |
+
"reader": false,
|
| 277 |
+
"evidence": "benchmark, 183 items (older build): 69.3 — weakest",
|
| 278 |
+
"prompts": {
|
| 279 |
+
"meaning": "Burada «{{word}}» ne anlama geliyor? Geçtiği cümle: <<<{{sentence}}>>>\n«{{word}}» kelimesinin kendisini, cümlenin ona verdiği anlamda tanımla. Eğer «{{word}}» bir deyimin parçasıysa - anlamı kelimelerinin toplamı olmayan bir söz öbeği - bunun yerine tüm deyimin ne anlama geldiğini açıkla. Cümleyi özetleme ve yeniden anlatma. Basit Türkçe kullan. Etiket, markdown, tırnak işareti ve örnek kullanma.",
|
| 280 |
+
"example": "«{{word}}» böyle kullanılıyor: <<<{{sentence}}>>>\nAynı anlamda «{{word}}» kullanan 3 yeni kısa cümle yaz. Eğer cümle «{{word}}» kelimesini bir deyim içinde kullanıyorsa - anlamı kelimelerinin toplamı olmayan bir söz öbeği - deyimin tamamını koru. Birleşik kelime deyim değildir; onda sadece «{{word}}» kullan. Başka hiçbir anlam kullanma. Yukarıdaki cümleyi tekrarlama. Basit Türkçe kullan. Etiket, markdown veya tırnak işareti kullanma."
|
| 281 |
+
}
|
| 282 |
+
},
|
| 283 |
+
"zh": {
|
| 284 |
+
"name": "Chinese",
|
| 285 |
+
"book": true,
|
| 286 |
+
"reader": true,
|
| 287 |
+
"evidence": "ship gate: 4/4 tabs pass; 2 taps read correctly",
|
| 288 |
+
"prompts": {
|
| 289 |
+
"meaning": "«{{word}}» 在这里是什么意思?它所在的句子:<<<{{sentence}}>>>\n请解释 «{{word}}» 本身在这个句子里的意思。如果 «{{word}}» 是一个固定说法的一部分——整体意思不等于各个字的意思相加——那就解释整个说法。不要复述或概括这个句子。用简单的中文,只写一句话。不要标签、不要markdown、不要引号、不要举例。",
|
| 290 |
+
"example": "«{{word}}» 是这样用的:<<<{{sentence}}>>>\n请你自己写 3 个新的短句,用 «{{word}}» 表达同样的意思。如果它属于一个固定说法,就保留整个说法。不要用别的意思。不要重复上面的句子。每句一行,不要编号。用简单的中文。不要标签、不要markdown、不要引号。",
|
| 291 |
+
"translation": "\"{{sentence}}\" 其中 {{word}} 是什么意思?用简单的中文写一个很短的解释。不要标签、不要markdown、不要引号、不要举例。请用中文回答。",
|
| 292 |
+
"context": "把这段文字翻译成自然的中文:{{passage}}。保持原文的意思和语气。只给出中文译文。不要标签、不要markdown、不要引号、不要注释。"
|
| 293 |
+
}
|
| 294 |
+
}
|
| 295 |
+
}
|
| 296 |
+
}
|