Skip to content

Commit 15a9c86

Browse files
committed
feat(Model Configuration): Supported Authorized Space
1 parent 2e1b6fb commit 15a9c86

2 files changed

Lines changed: 23 additions & 8 deletions

File tree

backend/apps/system/api/aimodel.py

Lines changed: 22 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -90,13 +90,28 @@ async def query(
9090
session: SessionDep,
9191
keyword: Union[str, None] = Query(default=None, max_length=255, description=f"{PLACEHOLDER_PREFIX}keyword")
9292
):
93-
statement = select(AiModelDetail.id,
94-
AiModelDetail.name,
95-
AiModelDetail.model_type,
96-
AiModelDetail.base_model,
97-
AiModelDetail.supplier,
98-
AiModelDetail.protocol,
99-
AiModelDetail.default_model)
93+
# 子查询:统计每个 model 绑定的 workspace 数量
94+
count_sub = (
95+
select(
96+
AiModelWorkspaceMapping.ai_model_id,
97+
func.count().label("ws_mapping_count")
98+
)
99+
.group_by(AiModelWorkspaceMapping.ai_model_id)
100+
.subquery()
101+
)
102+
statement = (
103+
select(
104+
AiModelDetail.id,
105+
AiModelDetail.name,
106+
AiModelDetail.model_type,
107+
AiModelDetail.base_model,
108+
AiModelDetail.supplier,
109+
AiModelDetail.protocol,
110+
AiModelDetail.default_model,
111+
func.coalesce(count_sub.c.ws_mapping_count, 0).label("ws_mapping_count"),
112+
)
113+
.outerjoin(count_sub, AiModelDetail.id == count_sub.c.ai_model_id)
114+
)
100115
if keyword is not None:
101116
statement = statement.where(AiModelDetail.name.like(f"%{keyword}%"))
102117
statement = statement.order_by(AiModelDetail.default_model.desc(), AiModelDetail.name, AiModelDetail.create_time)

backend/apps/system/schemas/ai_model_schema.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ class AiModelItem(BaseModel):
1414
default_model: bool = Field(default=False, description=f"{PLACEHOLDER_PREFIX}default_model")
1515

1616
class AiModelGridItem(AiModelItem, BaseCreatorDTO):
17-
pass
17+
ws_mapping_count: int = Field(default=0, description="workspace mapping count")
1818

1919
class AiModelConfigItem(BaseModel):
2020
key: str = Field(description=f"{PLACEHOLDER_PREFIX}arg_name")

0 commit comments

Comments
 (0)