| #!/usr/bin/env bash |
| set -euo pipefail |
| cd "$(dirname "${BASH_SOURCE[0]}")" |
|
|
| echo "==== OLLAMA MODELS ====" |
| curl -fsS http://127.0.0.1:11435/api/tags | python3 -m json.tool | head -80 |
|
|
| echo |
| echo "==== ROUTER API MODELS ====" |
| curl -fsS http://127.0.0.1:8011/v1/models | python3 -m json.tool |
|
|
| echo |
| echo "==== ROUTER API CHAT ====" |
| curl -fsS http://127.0.0.1:8011/v1/chat/completions \ |
| -H 'Content-Type: application/json' \ |
| -d '{ |
| "model": "qwen3-8b-korean-coding-router", |
| "messages": [ |
| {"role": "user", "content": "/cat linux 8010 포트가 이미 사용 중일 때 ss -lntp와 ps를 포함해서 확인 순서 알려줘"} |
| ], |
| "stream": false |
| }' | python3 -m json.tool |
|
|
| echo |
| echo "==== OPEN WEBUI INTERNAL TESTS ====" |
| docker compose exec -T open-webui python3 - <<'PY' |
| import urllib.request |
| for url in ["http://ollama:11434/api/tags","http://router-api:8011/v1/models"]: |
| try: |
| with urllib.request.urlopen(url, timeout=10) as r: |
| print("[OK]", url, r.read(300).decode("utf-8","replace")[:300]) |
| except Exception as e: |
| print("[FAIL]", url, type(e).__name__, e) |
| raise SystemExit(1) |
| PY |
|
|
| echo |
| echo "FINAL RESULT" |
| echo "================================================================================" |
| echo "status=SUCCESS" |
| echo "decision=DOCKER_OPENWEBUI_OLLAMA_ROUTER_STACK_SMOKE_PASSED" |
| echo "openwebui_url=http://127.0.0.1:3001" |
| echo "ollama_model=qwen3-8b-korean-coding-router:latest" |
| echo "router_model=qwen3-8b-korean-coding-router" |
|
|