llmage/wwwroot/llmusage_usages_display.dspy
yumoqing 6c2ccda2c7 修复llmusage展示脚本500错误并优化CRUD性能
- 将llmusage_ioinfo_display.ui和llmusage_usages_display.ui从Jinja模板改为.dspy脚本
- 在utils.py中添加get_llmusage_by_id和read_ioinfo_content两个函数
- 重写get_llmusage.dspy,避免sqlPaging子查询包装,分离count和data查询
- 为llmusage表添加use_time索引提升排序性能
- 更新load_path.py和json/llmusage.json引用新的.dspy文件
2026-06-26 17:55:52 +08:00

53 lines
1.4 KiB
Plaintext

import json
from llmage.utils import get_llmusage_by_id
usage_id = params_kw.get('id')
if not usage_id:
return {"widgettype": "Message", "options": {"message": "缺少 id 参数", "type": "error"}}
record = await get_llmusage_by_id(usage_id)
if not record:
return {"widgettype": "Message", "options": {"message": "未找到记录", "type": "error"}}
llmid = record.get('llmid', '')
usages_raw = record.get('usages', '')
try:
usages_obj = json.loads(usages_raw) if isinstance(usages_raw, str) else usages_raw
except (json.JSONDecodeError, TypeError):
usages_obj = usages_raw
usages_text = json.dumps(usages_obj, ensure_ascii=False, indent=2) if usages_obj else "无使用信息"
return {
"widgettype": "VScrollPanel",
"options": {
"width": "100%",
"height": "100%"
},
"subwidgets": [
{
"widgettype": "VBox",
"options": {
"width": "100%",
"padding": "16px",
"spacing": 12
},
"subwidgets": [
{
"widgettype": "Title4",
"options": {
"text": f"Model: {llmid}"
}
},
{
"widgettype": "Text",
"options": {
"text": usages_text
}
}
]
}
]
}