#!/usr/bin/env python3 import json result = {'widgettype': 'Message', 'options': {'title': 'Error', 'message': 'Invalid', 'type': 'error'}} try: dbname = get_module_dbname('llmage') id = params_kw.get('id', '').strip() if not id: result['options'] = {'title': '错误', 'message': '记录ID不能为空', 'type': 'error'} else: async with DBPools().sqlorContext(dbname) as sor: # 检查是否有模型关联此类型 check_sql = "select count(*) as cnt from llm_api_map where llmcatelogid=${id}$" rel_count = await sor.sqlExe(check_sql, {'id': id}) cnt = rel_count[0]['cnt'] if rel_count else 0 if cnt > 0: result['options'] = {'title': '提示', 'message': f'该类型下还有 {cnt} 个模型关联,无法删除', 'type': 'warning'} else: # 获取类型名用于提示 name_sql = "select name from llmcatelog where id=${id}$" name_rows = await sor.sqlExe(name_sql, {'id': id}) type_name = name_rows[0]['name'] if name_rows else id delete_sql = "delete from llmcatelog where id=${id}$" await sor.sqlExe(delete_sql, {'id': id}) result = {'widgettype': 'Message', 'options': {'title': '成功', 'message': f'类型「{type_name}」已删除', 'type': 'info'}} except Exception as e: result['options'] = {'title': '错误', 'message': str(e), 'type': 'error'} return json.dumps(result, ensure_ascii=False)