feat: Check default llm before chat

This commit is contained in:
fit2cloud-chenyw
2025-07-31 17:53:34 +08:00
parent 5ea91ec825
commit 0f8e1c8a19
11 changed files with 137 additions and 29 deletions
+1 -1
View File
@@ -110,7 +110,7 @@ def get_default_config() -> LLMConfig:
select(AiModelDetail).where(AiModelDetail.default_model == True)
).first()
if not db_model:
raise ValueError("The system default model has not been set")
raise Exception("The system default model has not been set")
additional_params = {}
if db_model.config:
+27 -17
View File
@@ -38,6 +38,33 @@ async def check_llm(info: AiModelCreator, trans: Trans):
return StreamingResponse(generate(), media_type="application/x-ndjson")
@router.get("/default")
async def check_default(session: SessionDep, trans: Trans):
db_model = session.exec(
select(AiModelDetail).where(AiModelDetail.default_model == True)
).first()
if not db_model:
raise Exception(trans('i18n_llm.miss_default'))
@router.put("/default/{id}")
async def set_default(session: SessionDep, id: int):
db_model = session.get(AiModelDetail, id)
if not db_model:
raise ValueError(f"AiModelDetail with id {id} not found")
if db_model.default_model:
return
try:
session.exec(
update(AiModelDetail).values(default_model=False)
)
db_model.default_model = True
session.add(db_model)
session.commit()
except Exception as e:
session.rollback()
raise e
@router.get("", response_model=list[AiModelGridItem])
async def query(
session: SessionDep,
@@ -119,22 +146,5 @@ async def delete_model(
session.delete(item)
session.commit()
@router.put("/default/{id}")
async def set_default(session: SessionDep, id: int):
db_model = session.get(AiModelDetail, id)
if not db_model:
raise ValueError(f"AiModelDetail with id {id} not found")
if db_model.default_model:
return
try:
session.exec(
update(AiModelDetail).values(default_model=False)
)
db_model.default_model = True
session.add(db_model)
session.commit()
except Exception as e:
session.rollback()
raise e
+2 -1
View File
@@ -29,6 +29,7 @@
},
"i18n_llm": {
"validate_error": "Validation failed [{msg}]",
"delete_default_error": "Cannot delete default model [{key}]!"
"delete_default_error": "Cannot delete default model [{key}]!",
"miss_default": "The default large language model has not been configured"
}
}
+2 -1
View File
@@ -30,6 +30,7 @@
},
"i18n_llm": {
"validate_error": "校验失败[{msg}]",
"delete_default_error": "无法删除默认模型[{key}]!"
"delete_default_error": "无法删除默认模型[{key}]!",
"miss_default": "尚未配置默认大语言模型"
}
}