39 lines
1.5 KiB
Django/Jinja
39 lines
1.5 KiB
Django/Jinja
[Unit]
|
|
Description=llama-server (tool-calling) — Mistral-Small-24B-Instruct-2501 Q3_K_M (OpenAI-compatible inference)
|
|
After=network.target nvidia-persistenced.service
|
|
Wants=nvidia-persistenced.service
|
|
|
|
[Service]
|
|
Type=simple
|
|
User={{ llm_service_user }}
|
|
Group={{ llm_service_user }}
|
|
Environment="HOME=/home/{{ llm_service_user }}"
|
|
ExecStart={{ llm_binary_path }} \
|
|
--model {{ llm_toolcall_model_path }} \
|
|
--host {{ llm_bind_address }} \
|
|
--port {{ llm_toolcall_port }} \
|
|
--ctx-size {{ llm_toolcall_ctx_size }} \
|
|
--n-gpu-layers {{ llm_toolcall_gpu_layers }} \
|
|
--parallel {{ llm_toolcall_parallel }} \
|
|
--metrics
|
|
# NOTE: no --chat-template flag — let llama-server auto-detect Mistral-Small's
|
|
# own embedded chat template from GGUF metadata.
|
|
# NOTE: --host is the private LAN IP (10.1.71.130 by default), NOT 0.0.0.0.
|
|
# NOTE: --parallel 1 is deliberate (plan §1/§2) — tool-calling profiles are
|
|
# single-session-at-a-time per Claude Code profile; lower parallelism reduces
|
|
# KV overhead and lowers hallucination surface from context bleed between
|
|
# concurrent slots.
|
|
# IMPORTANT: this endpoint MUST pass the plan §7 validation harness
|
|
# (docs/validation-log.md in this role) before any Claude Code / tool-calling
|
|
# Hermes profile is pointed at it. Mistral-Small shares lineage concerns
|
|
# flagged for Qwen2.5/Qwen3 hallucinated tool_calls — do not assume safety.
|
|
Restart=on-failure
|
|
RestartSec=10
|
|
TimeoutStartSec=600
|
|
StandardOutput=journal
|
|
StandardError=journal
|
|
SyslogIdentifier=llama-server-toolcall
|
|
|
|
[Install]
|
|
WantedBy=multi-user.target
|