tommytracx commited on
Commit
2a84032
·
verified ·
1 Parent(s): 45f3b9d

Restore two-context interactive topology

Browse files

Exact source: ttracx/thoxroute@49d114b14ba5f1a43fcb93d2f5a2b86a2e6e5e0c

Files changed (3) hide show
  1. Dockerfile +1 -1
  2. README.md +4 -2
  3. app.py +1 -1
Dockerfile CHANGED
@@ -23,7 +23,7 @@ ENV HF_HOME=/home/mambauser/.cache/huggingface \
23
  THOX_FAST_MODEL_REPO=Qwen/Qwen2.5-0.5B-Instruct-GGUF \
24
  THOX_FAST_MODEL_REVISION=9217f5db79a29953eb74d5343926648285ec7e67 \
25
  THOX_FAST_MODEL_FILE=qwen2.5-0.5b-instruct-q4_k_m.gguf \
26
- THOX_FAST_POOL_SIZE=1 \
27
  THOX_FAST_QUEUE_TIMEOUT_S=6 \
28
  THOX_FAST_MAX_OUTPUT_TOKENS=16 \
29
  THOX_STREAM_HEARTBEAT_S=2 \
 
23
  THOX_FAST_MODEL_REPO=Qwen/Qwen2.5-0.5B-Instruct-GGUF \
24
  THOX_FAST_MODEL_REVISION=9217f5db79a29953eb74d5343926648285ec7e67 \
25
  THOX_FAST_MODEL_FILE=qwen2.5-0.5b-instruct-q4_k_m.gguf \
26
+ THOX_FAST_POOL_SIZE=2 \
27
  THOX_FAST_QUEUE_TIMEOUT_S=6 \
28
  THOX_FAST_MAX_OUTPUT_TOKENS=16 \
29
  THOX_STREAM_HEARTBEAT_S=2 \
README.md CHANGED
@@ -16,8 +16,10 @@ This Space exposes one OpenAI-compatible endpoint:
16
  a six-second queue ceiling;
17
  - `thox-rust-coder`: lazily loaded 25B/3B-active Rust-specialist target.
18
 
19
- `GET /healthz` is ready only after the interactive context is loaded and has
20
- completed a one-token startup warmup. Streaming sends a role chunk before model
 
 
21
  evaluation so upstream time-to-first-byte watchdogs do not abandon healthy CPU
22
  work; two-second SSE comments keep the stream live during synchronous prompt
23
  evaluation. The interactive provider itself caps every request at 16 output
 
16
  a six-second queue ceiling;
17
  - `thox-rust-coder`: lazily loaded 25B/3B-active Rust-specialist target.
18
 
19
+ `GET /healthz` is ready only after both interactive contexts are loaded and have
20
+ completed a one-token startup warmup. Each receives half the container CPU
21
+ quota; this topology avoids the severe oversubscription regression observed
22
+ with one eight-thread llama context. Streaming sends a role chunk before model
23
  evaluation so upstream time-to-first-byte watchdogs do not abandon healthy CPU
24
  work; two-second SSE comments keep the stream live during synchronous prompt
25
  evaluation. The interactive provider itself caps every request at 16 output
app.py CHANGED
@@ -43,7 +43,7 @@ CODER_MODEL_FILE = os.environ.get(
43
  "THOX_CODER_MODEL_FILE", "Qwen3-Coder-REAP-25B-A3B-Rust-Q4_K_M.gguf"
44
  )
45
  N_CTX = int(os.environ.get("THOX_N_CTX", "4096"))
46
- FAST_POOL_SIZE = max(1, min(int(os.environ.get("THOX_FAST_POOL_SIZE", "1")), 2))
47
  FAST_QUEUE_TIMEOUT_S = max(
48
  0.1, min(float(os.environ.get("THOX_FAST_QUEUE_TIMEOUT_S", "6")), 10.0)
49
  )
 
43
  "THOX_CODER_MODEL_FILE", "Qwen3-Coder-REAP-25B-A3B-Rust-Q4_K_M.gguf"
44
  )
45
  N_CTX = int(os.environ.get("THOX_N_CTX", "4096"))
46
+ FAST_POOL_SIZE = max(1, min(int(os.environ.get("THOX_FAST_POOL_SIZE", "2")), 2))
47
  FAST_QUEUE_TIMEOUT_S = max(
48
  0.1, min(float(os.environ.get("THOX_FAST_QUEUE_TIMEOUT_S", "6")), 10.0)
49
  )