fix: AIModel.provider error - add ModelProvider import and use joined query
This commit is contained in:
1 parent
251bbc4123
commit
1d32385f17
1 file changed
+13
-9
@@ -8,7 +8,7 @@ from sqlalchemy import or_, func
|
|||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
from typing import Optional, List
|
from typing import Optional, List
|
||||||
from ...database import get_db
|
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 ...auth import get_current_admin
|
||||||
from ...middleware.log_service import LogService
|
from ...middleware.log_service import LogService
|
||||||
import uuid
|
import uuid
|
||||||
@@ -223,9 +223,11 @@ async def get_agent(
|
|||||||
result["linked_skills"] = []
|
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"] = [
|
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}
|
return {"code": 0, "data": result}
|
||||||
@@ -533,7 +535,9 @@ async def get_available_models(
|
|||||||
db: Session = Depends(get_db),
|
db: Session = Depends(get_db),
|
||||||
):
|
):
|
||||||
"""获取可用于 Agent 的模型列表"""
|
"""获取可用于 Agent 的模型列表"""
|
||||||
models = db.query(AIModel).filter(
|
models = db.query(AIModel, ModelProvider).join(
|
||||||
|
ModelProvider, AIModel.provider_id == ModelProvider.id
|
||||||
|
).filter(
|
||||||
AIModel.is_enabled == True
|
AIModel.is_enabled == True
|
||||||
).order_by(AIModel.name).all()
|
).order_by(AIModel.name).all()
|
||||||
|
|
||||||
@@ -543,11 +547,11 @@ async def get_available_models(
|
|||||||
{
|
{
|
||||||
"id": m.id,
|
"id": m.id,
|
||||||
"name": m.name,
|
"name": m.name,
|
||||||
"provider": m.provider,
|
"provider": p.name,
|
||||||
"model_type": m.model_type,
|
"model_type": p.protocol,
|
||||||
"input_price": float(m.input_price) if m.input_price else 0,
|
"input_price": float(m.price_per_million_tokens) if m.price_per_million_tokens else 0,
|
||||||
"output_price": float(m.output_price) if m.output_price 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
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user