Files
sentclaw/backend/app/services/model.py
T
2026-04-07 16:05:05 +08:00

52 lines
1.4 KiB
Python

from ..models import Model
class ModelService:
@staticmethod
def create_model(data):
model = Model(
provider=data["provider"],
name=data["name"],
model_id=data["model_id"],
api_key=data.get("api_key"),
base_url=data.get("base_url"),
is_default=data.get("is_default", False),
is_active=data.get("is_active", True),
)
if model.is_default:
Model.query.filter_by(is_default=True).update({"is_default": False})
model.save()
return model
@staticmethod
def update_model(model, data):
if "name" in data:
model.name = data["name"]
if "api_key" in data:
model.api_key = data["api_key"]
if "base_url" in data:
model.base_url = data["base_url"]
if "is_default" in data and data["is_default"]:
Model.query.filter(Model.id != model.id, Model.is_default == True).update(
{"is_default": False}
)
model.is_default = True
if "is_active" in data:
model.is_active = data["is_active"]
model.save()
return model
@staticmethod
def delete_model(model_id):
model = Model.query.get(model_id)
if model.is_default:
raise ValueError("默认模型不能删除")
model.delete()