Fix: replace tenant_llm apis (#16131)

Replace tenant_llm apis with provider-instance apis.
This commit is contained in:
Lynn
2026-06-18 16:38:32 +08:00
committed by GitHub
parent 72db9044e2
commit 47bd9dd049
8 changed files with 244 additions and 379 deletions

View File

@@ -199,6 +199,50 @@ def _retrieval_worker(
return run_retrieval_request(client, payload)
def _parse_model_id(model_id: str):
"""Parse model_id into (model_name, model_instance, model_provider).
Accepted formats:
- model_name@instance@provider -> (model_name, instance, provider)
- model_name@provider -> (model_name, "default", provider)
- model_name -> (model_name, "default", "")
"""
parts = model_id.split("@")
if len(parts) >= 3:
return parts[0], parts[1], parts[-1]
elif len(parts) == 2:
return parts[0], "default", parts[1]
else:
return model_id, "default", ""
# Mapping from legacy CLI arg keys to API model_type values
_MODEL_TYPE_MAP = {
"llm_id": "chat",
"embd_id": "embedding",
"img2txt_id": "vision",
"asr_id": "asr",
"tts_id": "tts",
}
def _set_default_models_from_args(client: HttpClient, args: argparse.Namespace) -> None:
"""Set tenant default models from CLI arguments using the new PATCH /models/default API."""
model_specs = [
(args.tenant_llm_id, "llm_id"),
(args.tenant_embd_id, "embd_id"),
(args.tenant_img2txt_id, "img2txt_id"),
(args.tenant_asr_id, "asr_id"),
(args.tenant_tts_id, "tts_id"),
]
for model_id, type_key in model_specs:
if not model_id:
continue
model_name, model_instance, model_provider = _parse_model_id(model_id)
model_type = _MODEL_TYPE_MAP[type_key]
auth.set_default_model(client, model_provider, model_instance, model_name, model_type)
def _ensure_auth(client: HttpClient, args: argparse.Namespace) -> None:
if args.api_key:
client.api_key = args.api_key
@@ -232,19 +276,7 @@ def _ensure_auth(client: HttpClient, args: argparse.Namespace) -> None:
if args.set_tenant_info:
if not args.tenant_llm_id or not args.tenant_embd_id:
raise AuthError("Missing --tenant-llm-id or --tenant-embd-id for tenant setup")
tenant = auth.get_tenant_info(client)
tenant_id = tenant.get("tenant_id")
if not tenant_id:
raise AuthError("Tenant info missing tenant_id")
payload = {
"tenant_id": tenant_id,
"llm_id": args.tenant_llm_id,
"embd_id": args.tenant_embd_id,
"img2txt_id": args.tenant_img2txt_id or "",
"asr_id": args.tenant_asr_id or "",
"tts_id": args.tenant_tts_id,
}
auth.set_tenant_info(client, payload)
_set_default_models_from_args(client, args)
api_key = auth.create_api_token(client, login_token, args.token_name)
client.api_key = api_key