feat(v2): 模型设置(用户可调小模型/大模型/管线,/config + UI)
This commit is contained in:
+15
-8
@@ -155,11 +155,15 @@ class WorkerLoop:
|
||||
def build_worker(cfg: Dict[str, Any], kb: Any = None,
|
||||
generate: Optional[Callable[[str], Awaitable[str]]] = None) -> WorkerLoop:
|
||||
"""cfg 为 config.worker 段。generate 缺省时按 backend 选择:
|
||||
mock(零运行时演示)| llama_server(真实本地模型,惰性连接)。"""
|
||||
mock(零运行时演示)| openai/api(任意 OpenAI 兼容端点,如 Ollama/vLLM)|
|
||||
llama_server(内置本地 llama-server)。"""
|
||||
backend = cfg.get("backend", "llama_server")
|
||||
if generate is None:
|
||||
if backend == "mock":
|
||||
generate = _mock_generate()
|
||||
elif backend in ("openai", "api"):
|
||||
generate = _make_llama_generate(
|
||||
cfg, default_base_url=cfg.get("base_url") or "http://127.0.0.1:11434/v1")
|
||||
else:
|
||||
generate = _make_llama_generate(cfg)
|
||||
verifier = Verifier(code_timeout_s=float(cfg.get("code_timeout_s", 10)))
|
||||
@@ -182,10 +186,13 @@ def _mock_generate() -> Callable[[str], Awaitable[str]]:
|
||||
return _gen
|
||||
|
||||
|
||||
def _make_llama_generate(cfg: Dict[str, Any]) -> Callable[[str], Awaitable[str]]:
|
||||
"""返回调用本地 llama-server(OpenAI 兼容 /v1/chat/completions)的生成器。"""
|
||||
base_url = cfg.get("base_url", f"http://127.0.0.1:{cfg.get('port', 8901)}/v1")
|
||||
model = cfg.get("model", "local")
|
||||
def _make_llama_generate(cfg: Dict[str, Any],
|
||||
default_base_url: Optional[str] = None) -> Callable[[str], Awaitable[str]]:
|
||||
"""返回调用本地 OpenAI 兼容端点(llama-server / Ollama / vLLM)的生成器。"""
|
||||
if default_base_url is None:
|
||||
default_base_url = f"http://127.0.0.1:{cfg.get('port', 8901)}/v1"
|
||||
base_url = cfg.get("base_url") or default_base_url
|
||||
model = cfg.get("model") or "local"
|
||||
temperature = float(cfg.get("temperature", 0.3))
|
||||
timeout_s = float(cfg.get("per_step_timeout_s", 300))
|
||||
|
||||
@@ -201,8 +208,8 @@ def _make_llama_generate(cfg: Dict[str, Any]) -> Callable[[str], Awaitable[str]]
|
||||
resp.raise_for_status()
|
||||
return resp.json()["choices"][0]["message"]["content"]
|
||||
except Exception as e: # noqa: BLE001
|
||||
# 连不上本地模型 -> 优雅降级(不抛 500),提示用户准备运行时
|
||||
return ("(本地降级)无法连接本地 llama-server,未能生成该步骤内容。"
|
||||
f"请先运行 scripts/setup_runtime.py 并启动模型。错误:{type(e).__name__}")
|
||||
# 连不上本地模型 -> 优雅降级(不抛 500),提示用户检查模型端点
|
||||
return ("(本地降级)无法连接本地模型端点,未能生成该步骤内容。"
|
||||
f"请检查模型后端配置或启动服务。错误:{type(e).__name__}")
|
||||
|
||||
return _gen
|
||||
|
||||
Reference in New Issue
Block a user