fix
This commit is contained in:
63
docs/check_ollama_model.py
Normal file
63
docs/check_ollama_model.py
Normal file
@@ -0,0 +1,63 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Проверка деталей модели в Ollama: квантизация, размер, контекст.
|
||||
Использование:
|
||||
python docs/check_ollama_model.py
|
||||
OLLAMA_URL=http://192.168.88.15:11434 python docs/check_ollama_model.py
|
||||
OLLAMA_URL=... MODEL=qwen3:14b python docs/check_ollama_model.py
|
||||
"""
|
||||
|
||||
import json
|
||||
import os
|
||||
import urllib.request
|
||||
|
||||
OLLAMA_URL = os.environ.get("OLLAMA_URL", "http://localhost:11434")
|
||||
MODEL = os.environ.get("MODEL", "qwen3:14b-q8_0")
|
||||
|
||||
|
||||
def main() -> None:
|
||||
url = f"{OLLAMA_URL.rstrip('/')}/api/show"
|
||||
body = json.dumps({"model": MODEL}).encode("utf-8")
|
||||
req = urllib.request.Request(url, data=body, method="POST")
|
||||
req.add_header("Content-Type", "application/json")
|
||||
try:
|
||||
with urllib.request.urlopen(req, timeout=10) as resp:
|
||||
data = json.load(resp)
|
||||
except urllib.error.URLError as e:
|
||||
print(f"Ошибка подключения к {OLLAMA_URL}: {e}")
|
||||
raise SystemExit(1)
|
||||
except urllib.error.HTTPError as e:
|
||||
print(f"HTTP {e.code}: {e.reason}")
|
||||
if e.fp:
|
||||
try:
|
||||
body = e.fp.read().decode("utf-8", errors="replace")
|
||||
print(body[:500])
|
||||
except Exception:
|
||||
pass
|
||||
raise SystemExit(1)
|
||||
|
||||
details = data.get("details") or {}
|
||||
info = data.get("model_info") or {}
|
||||
|
||||
print(f"Модель: {MODEL}")
|
||||
print(f"Ollama: {OLLAMA_URL}")
|
||||
print("-" * 40)
|
||||
print(f"Формат: {details.get('format', '—')}")
|
||||
print(f"Квантизация: {details.get('quantization_level', '—')}")
|
||||
print(f"Размер (params): {details.get('parameter_size', '—')}")
|
||||
print(f"Семейство: {details.get('family', '—')}")
|
||||
|
||||
# Контекст из model_info (ключ зависит от семейства: qwen3.context_length и т.д.)
|
||||
for key, val in info.items():
|
||||
if "context_length" in key:
|
||||
print(f"Контекст (токенов): {val}")
|
||||
break
|
||||
else:
|
||||
print("Контекст (токенов): —")
|
||||
|
||||
if data.get("modified_at"):
|
||||
print(f"Изменён: {data['modified_at']}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user