refa: resolve tenant model refs consistently (#16744)

This commit is contained in:
buua436
2026-07-09 14:02:08 +08:00
committed by GitHub
parent 794fcc2517
commit 6a77523bf0
51 changed files with 300 additions and 225 deletions

View File

@@ -617,13 +617,14 @@ class CreateDatasetReq(Base):
Validation pipeline:
1. Structural format verification
2. Component non-empty check
3. Value normalization
3. Tenant model id passthrough
4. Value normalization
Args:
v (str): Raw model identifier
Returns:
str: Validated <model_name>@<provider> format
str: Validated <model_name>@<provider> format or tenant_model id
Raises:
PydanticCustomError: For these violations:
@@ -633,11 +634,15 @@ class CreateDatasetReq(Base):
Examples:
Valid: "text-embedding-3-large@openai"
Valid: "2f3c0f9c7b1d11f0a1b2c3d4e5f67890" # tenant_model.id
Invalid: "invalid_model" (no @)
Invalid: "@openai" (empty model_name)
Invalid: "text-embedding-3-large@" (empty provider)
"""
if isinstance(v, str):
if re.fullmatch(r"[0-9a-fA-F]{32}", v):
return v
if "@" not in v:
raise PydanticCustomError("format_invalid", "Embedding model identifier must follow <model_name>@<provider> format")