llmage/wwwroot/api/llmcatelog_update.dspy
yumoqing 1b74b5bf10 feat: add llm catalog (type) management module
- Add CRUD API for llmcatelog (list/create/update/delete)
- Add llmcatelog.ui as main entry for catalog management
- Add llmcatelog_list.ui as DataViewer interface
- Add index.ui as module navigation page
- Update json/llmcatelog.json with editable section
2026-05-17 00:46:31 +08:00

32 lines
1.5 KiB
Python

#!/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()
name = params_kw.get('name', '').strip()
description = params_kw.get('description', '').strip()
if not id:
result['options'] = {'title': '错误', 'message': '记录ID不能为空', 'type': 'error'}
elif not name:
result['options'] = {'title': '错误', 'message': '类型名不能为空', 'type': 'error'}
else:
async with DBPools().sqlorContext(dbname) as sor:
# 检查名称是否已被其他记录使用
check_sql = "select id from llmcatelog where name=${name}$ and id != ${id}$"
exists = await sor.sqlExe(check_sql, {'name': name, 'id': id})
if exists:
result['options'] = {'title': '提示', 'message': f'类型名「{name}」已被其他记录使用', 'type': 'warning'}
else:
update_sql = "update llmcatelog set name=${name}$, description=${description}$ where id=${id}$"
await sor.sqlExe(update_sql, {'name': name, 'description': description, 'id': id})
result = {'widgettype': 'Message', 'options': {'title': '成功', 'message': f'类型「{name}」已更新', 'type': 'info'}}
except Exception as e:
result['options'] = {'title': '错误', 'message': str(e), 'type': 'error'}
return json.dumps(result, ensure_ascii=False)