ชิ้นส่วนหน้าเว็บ (Components)
Terminal cards and chat mock — sanitized examples
ollama psterminal card
# one 27B model resident + embeddings — the golden rule of 48 GB NAME ID SIZE PROCESSOR UNTIL turbo-fable:27b-nvfp4 a1b2c3d4e5f6 23 GB 100% GPU 23 hours from now bge-m3:latest 0f9e8d7c6b5a 1.1 GB 100% GPU 3 hours from now # 23 GB + 1.1 GB resident, ~16 GB headroom, swap 0 (docs/hardware.md)
docker compose psterminal card
NAME SERVICE STATUS PORTS bomllm-litellm-1 litellm Up 26 days 127.0.0.1:4000->4000/tcp bomllm-open-webui-1 open-webui Up 26 days 127.0.0.1:3000->3000/tcp bomllm-postgres-1 postgres Up 26 days 5432/tcp bomllm-qdrant-1 qdrant Up 26 days 6333/tcp bomllm-valkey-1 valkey Up 26 days 6379/tcp bomllm-searxng-1 searxng Up 26 days 127.0.0.1:8888->8080/tcp # public path = Cloudflare Tunnel เท่านั้น (docs/security.md)
6-probe smoketerminal card
# 1. LiteLLM alive + DB connected curl -sf https://llm.example.com/health/liveliness # 200 curl -sf https://llm.example.com/health/readiness # 200, db=connected # 2. Unauth gate holds curl -s -o /dev/null -w '%{http_code}' \ -X POST https://llm.example.com/v1/chat/completions # 401 # 3. Real chat through the whole chain (Thai) curl -sf https://llm.example.com/v1/chat/completions \ -H "Authorization: $SMOKE_KEY" \ -d @smoke-payload.json # 4. WebUI up 5. SearXNG local 6. Mac resident, no swap growth curl -sf -o /dev/null -w '%{http_code}' https://chat.example.com/ # 200 curl -sf 'http://127.0.0.1:8888/search?q=test&format=json' -o /dev/null ssh mac 'ollama ps && vm_stat | grep -i swap'
vm_stat swapterminal card
$ ssh mac 'vm_stat | grep -i swap' swapins: 0. swapouts: 0. # swap 0 = memory pressure green — หนึ่งโมเดล resident ต่อช่วงเวลา # อุบัติเหตุครั้งก่อน: 2 โมเดล resident → 47.7 GB, 3.8 GB swap, # TTFT 28-60 วิ → ไล่โมเดลที่สองออก (keep_alive: 0) ครบ 27 นาที สงบ
LINE / Telegram chat mockchat card
LINE · @icafefx · mock