fix: AIModel.provider error - add ModelProvider import and use joined query

This commit is contained in:
qyyfw committed 2026-07-03 17:54:55 +08:00
1 parent 251bbc4123
commit 1d32385f17
1 file changed
+13 -9
+13 -9
View File
@@ -8,7 +8,7 @@ from sqlalchemy import or_, func
from pydantic import BaseModel
from typing import Optional, List
from ...database import get_db
from ...models import MarketApp, EvolutionSkill, AIModel, User
from ...models import MarketApp, EvolutionSkill, AIModel, User, ModelProvider
from ...auth import get_current_admin
from ...middleware.log_service import LogService
import uuid
@@ -223,9 +223,11 @@ async def get_agent(
result["linked_skills"] = []
# 获取可用模型列表
models = db.query(AIModel).filter(AIModel.is_enabled == True).all()
models = db.query(AIModel, ModelProvider).join(
ModelProvider, AIModel.provider_id == ModelProvider.id
).filter(AIModel.is_enabled == True).all()
result["available_models"] = [
{"id": m.id, "name": m.name, "provider": m.provider} for m in models
{"id": m.id, "name": m.name, "provider": p.name} for m, p in models
]
return {"code": 0, "data": result}
@@ -533,7 +535,9 @@ async def get_available_models(
db: Session = Depends(get_db),
):
"""获取可用于 Agent 的模型列表"""
models = db.query(AIModel).filter(
models = db.query(AIModel, ModelProvider).join(
ModelProvider, AIModel.provider_id == ModelProvider.id
).filter(
AIModel.is_enabled == True
).order_by(AIModel.name).all()
@@ -543,11 +547,11 @@ async def get_available_models(
{
"id": m.id,
"name": m.name,
"provider": m.provider,
"model_type": m.model_type,
"input_price": float(m.input_price) if m.input_price else 0,
"output_price": float(m.output_price) if m.output_price else 0,
"provider": p.name,
"model_type": p.protocol,
"input_price": float(m.price_per_million_tokens) if m.price_per_million_tokens else 0,
"output_price": float(m.price_per_million_tokens) if m.price_per_million_tokens else 0,
}
for m in models
for m, p in models
]
}