feat: 지서버 직결 + wol-gate 폴백 (하이브리드 연결)
지서버 트래픽이 전부 wol-gate(TrueNAS) 프록시를 거치고 있었다. 게이트는 자는 타깃에 HTTP 200 + "깨우는 중" HTML을 반환하는데, ollama 클라이언트가 그 HTML을 JSON.parse해서 "Unexpected token '<'"로 죽었다. endpoint를 지서버 직결(192.168.0.8:11434)로 두고, wake_url을 새로 받아 게이트는 직결이 안 될 때만 쓴다. - _isAwake(host): 200이어도 본문이 HTML이면 잠든 것으로 판정 - 깨어있으면 즉시 통과(fast path). 기존 코드는 매 호출마다 /api/tags를 찍고 무조건 5초를 기다린 뒤 재확인했다. - 게이트를 초인종이 아니라 폴백 경로로 사용. 직결과 게이트를 같은 주기로 확인해 둘 중 되는 쪽으로 이번 호출을 넘긴다. 08-09 00:52 지서버는 살아있고 게이트는 정상 프록시 중인데 직결만 타임아웃인 상황이 실제로 관찰됐고, 직결만 폴링하면 작동하는 경로를 두고 90초를 버린 뒤 실패한다. - getModelCtx()도 _activeHost를 따라가게 수정. 폴백 중에 num_ctx 계산용 /api/show만 따로 실패하는 것을 막는다. wake_url이 없는 provider(클로서버 등)는 기존 동작 그대로다. 검증: 직결을 죽은 주소로 바꿔 강제 재현 → 게이트 경유로 정상 응답(33초), 로그에 routing via wol-gate 기록. 원복 후 직결 fast path 9초. 실제로 잠든 지서버에 채팅 → 23초 만에 기상 후 응답. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
+14
-8
@@ -17,15 +17,16 @@
|
||||
}
|
||||
},
|
||||
"llm": {
|
||||
"provider": "ollama",
|
||||
"provider": "ollama_local",
|
||||
"providers": {
|
||||
"ollama": {
|
||||
"endpoint": "http://localhost:11434",
|
||||
"model": "gemma4:31b-cloud"
|
||||
"model": "gemma4:26b"
|
||||
},
|
||||
"lm_studio": {
|
||||
"endpoint": "http://host.docker.internal:1234",
|
||||
"model": ""
|
||||
"endpoint": "http://192.168.0.7:1234",
|
||||
"model": "qwen/qwen3.6-35b-a3b",
|
||||
"disable_thinking": true
|
||||
},
|
||||
"llama_cpp": {
|
||||
"endpoint": "http://host.docker.internal:8080",
|
||||
@@ -43,6 +44,11 @@
|
||||
"api_key": "vault:llm.google.api_key",
|
||||
"model": "gemini-3.5-flash-lite"
|
||||
},
|
||||
"ollama_local": {
|
||||
"endpoint": "http://192.168.0.8:11434",
|
||||
"model": "gemma4:26b",
|
||||
"wake_url": "http://192.168.0.240:8100"
|
||||
},
|
||||
"anthropic": {
|
||||
"api_key": "",
|
||||
"model": "claude-sonnet-4-6"
|
||||
@@ -50,12 +56,12 @@
|
||||
}
|
||||
},
|
||||
"models": {
|
||||
"primary": "gemma4:31b-cloud",
|
||||
"primary": "gemma4:26b",
|
||||
"fallback": "kimi-k2.6:cloud",
|
||||
"roles": {
|
||||
"manager": "gemma4:31b-cloud",
|
||||
"executor": "gemma4:31b-cloud",
|
||||
"verifier": "gemma4:31b-cloud",
|
||||
"manager": "gemma4:26b",
|
||||
"executor": "gemma4:26b",
|
||||
"verifier": "gemma4:26b",
|
||||
"background_task": ""
|
||||
},
|
||||
"profiles": {
|
||||
|
||||
Reference in New Issue
Block a user