feat(v2): T7 网关扩展 + T9 token 计量与账单(/chat v2,/chat/legacy,/runs,/review,/metrics)
This commit is contained in:
+17
-2
@@ -154,9 +154,14 @@ class WorkerLoop:
|
||||
|
||||
def build_worker(cfg: Dict[str, Any], kb: Any = None,
|
||||
generate: Optional[Callable[[str], Awaitable[str]]] = None) -> WorkerLoop:
|
||||
"""cfg 为 config.worker 段。generate 缺省时用 llama-server 端点客户端(惰性)。"""
|
||||
"""cfg 为 config.worker 段。generate 缺省时按 backend 选择:
|
||||
mock(零运行时演示)| llama_server(真实本地模型,惰性连接)。"""
|
||||
backend = cfg.get("backend", "llama_server")
|
||||
if generate is None:
|
||||
generate = _make_llama_generate(cfg)
|
||||
if backend == "mock":
|
||||
generate = _mock_generate()
|
||||
else:
|
||||
generate = _make_llama_generate(cfg)
|
||||
verifier = Verifier(code_timeout_s=float(cfg.get("code_timeout_s", 10)))
|
||||
return WorkerLoop(
|
||||
generate=generate,
|
||||
@@ -167,6 +172,16 @@ def build_worker(cfg: Dict[str, Any], kb: Any = None,
|
||||
)
|
||||
|
||||
|
||||
def _mock_generate() -> Callable[[str], Awaitable[str]]:
|
||||
"""零运行时 mock 生成器:返回一段确定性文本(演示/测试,不连真实模型)。"""
|
||||
|
||||
async def _gen(prompt: str) -> str:
|
||||
return ("(mock worker)以下是对当前步骤的实现说明:"
|
||||
"步骤已完成,内容足够长且非占位,可供接地验证通过。")
|
||||
|
||||
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")
|
||||
|
||||
Reference in New Issue
Block a user