340 Commits

Author SHA1 Message Date
3ae70d2c92 fix: providerid 下拉从 suppliers 表而非 organization 获取 2026-07-10 09:21:32 +08:00
a61e60deff cleanup: 删除冗余status端点(realesrgan/synth),统一走query_apiname 2026-07-08 15:20:39 +08:00
6c030b0a01 cleanup: 移除media端点中的空if transno块 2026-07-08 13:49:36 +08:00
b8de8db76f fix: 14个media端点移除冗余uuid生成,统一走inference+getID() 2026-07-08 13:42:38 +08:00
fe82251e2e feat: /v1/media/{apiname} 14端点(KTV GPU服务) 2026-07-07 21:28:05 +08:00
8556564455 chore: remove llm_metrics and user_llm_policy from git tracking
These are generated CRUD files, not source code.
2026-07-07 18:02:57 +08:00
6759a84ea1 fix: int(params_kw._is_mobile or 0) 防止NoneType 2026-07-06 16:59:21 +08:00
fd95eadfe6 fix: v1/pricing端点也加model过滤,避免同ppid下串模型价格 2026-07-06 15:57:25 +08:00
c0097b7735 fix: Filler→VBox定价区,同show_llms_cards 2026-07-06 15:46:25 +08:00
b5a63d412c fix: 1)get_pricing_display加model过滤避免混入其他模型价格 2)卡片布局分开描述VScrollPanel+定价VBox确保定价始终可见 2026-07-06 15:44:44 +08:00
109d081a3f fix: wrap description+pricing in VScrollPanel so long descriptions don't push pricing off-screen
- show_llms_cards.ui: card-body-scroll VScrollPanel wraps Text(desc) + Filler(pricing)
- show_llms_cards_by_provider.ui: same fix
2026-07-06 15:08:51 +08:00
af2f562208 feat: 新增 /v1/pipeline/submit 端点 + 更新KTV Pipeline API文档为14个原子化模型 2026-07-06 11:42:46 +08:00
ad7d9086ce fix: CRUD endpoint return format - remove json.dumps, use widgettype format 2026-07-03 14:50:40 +08:00
a5b72244ae fix: llm_update returns widgettype format so Form dispatches submited and popup closes 2026-07-03 13:06:12 +08:00
9200d9f20a bugfix 2026-07-03 10:45:36 +08:00
e27137055c fix: 体验一次→打开llm_dialog实战推理;检查计费→真正调用llm_query_price算价 2026-07-02 14:54:50 +08:00
57fb8c3c8f fix: llm_launch_check_api returns JSON instead of plain text — urldata actiontype expects valid JSON 2026-07-02 14:22:52 +08:00
354f556099 feat: 新增 llm_metrics 和 user_llm_policy 两张表
llm_metrics: 从 llmusage 抽取的轻量指标表
- userid, llmid, use_date, input/output/total tokens
- amount, responsed_seconds, finish_seconds

user_llm_policy: 用户模型策略(customer.admin 管理)
- 每个用户每个模型可单独设限
- daily/monthly_call_limit, spending_alert/ceiling, max_concurrency
- 缺省空=不限
- orgid+userid+llmid 唯一约束

菜单新增: 用户模型策略、模型使用指标
2026-07-02 13:16:18 +08:00
76673bf251 fix: catelog tab target should be app.llm_dialog_root (self container), not app.sage_main_content (main area) 2026-07-02 12:08:15 +08:00
f85913a235 fix: catelog tabs use urlwidget bind instead of invalid actiontype:link — Button does not handle actiontype in opts, only in binds 2026-07-02 11:23:17 +08:00
99b292fd17 Revert "feat: 复制API功能-工具栏按钮+弹窗选源/目标+后台复制"
This reverts commit d57b8dbc73f3ee1797586e84fafe83793e112859.
2026-07-01 15:28:22 +08:00
d57b8dbc73 feat: 复制API功能-工具栏按钮+弹窗选源/目标+后台复制 2026-07-01 15:02:33 +08:00
27f3ee9c78 feat: llm.name唯一索引; v1端点全部改用name查找llm 2026-07-01 13:48:05 +08:00
6890af7638 fix: 清理所有 dspy 文件的 import 语句
删除已在 ahserver/ServerEnv 预加载的模块:
  json, datetime, getID, debug, curDateString, timestampstr,
  get_sor_context, time, DictObject, partial, FileStorage, os

删除模块内部 import:
  from llmage.utils import get_llmusage_by_id, read_ioinfo_content

同步将 get_llmusage_by_id, read_ioinfo_content 加入 load_llmage() 导出,
dspy 中通过 ServerEnv 全局调用。
2026-06-30 17:38:37 +08:00
59587a8c31 bugfix 2026-06-30 16:10:20 +08:00
dd304972b5 fix: 所有v1端点补充params_kw.llmcatelogid,确保llmclient正确路由 2026-06-30 16:00:26 +08:00
dd78e647da bugfix 2026-06-30 15:56:47 +08:00
0fccc895ce 优化 llmusage_list.dspy:简化查询逻辑,提升性能 2026-06-26 18:57:41 +08:00
d58b86a704 优化 llmusage CRUD 查询性能
- 新建 api/llmusage_list.dspy 替代自动生成的 get_llmusage.dspy
- 排除 usages/ioinfo 大 TEXT 字段过滤,避免 LIKE 全表扫描
- 分离 count/data 查询,避免 sqlPaging 子查询包装
- 更新 json/llmusage.json get_data_url 指向新脚本
- 更新 scripts/load_path.py 注册新路径
2026-06-26 18:48:28 +08:00
3d1032c73b 优化文本输出排版:添加左右5px内边距 2026-06-26 18:42:26 +08:00
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
a6efef56e9 perf: 记账失败列表优化
- 去掉跨库JOIN,改用内存批量ID映射
- 不查failed_reason大TEXT字段
- handled状态直接后台转文本,前端不依赖data映射
2026-06-26 17:08:58 +08:00
329260435c bugfix 2026-06-26 17:02:39 +08:00
75126d5b1f bugfix 2026-06-26 17:00:02 +08:00
ysh
c613e8c85d fix: 记账失败列表显示模型/用户/机构名称而非ID
- 为 llmid/userid/userorgid 的 alters 添加 uitype: code
- Tabular 现在使用 textField 显示可读名称
- 同步更新 CRUD 源配置 json/llmusage_accounting_failed.json
2026-06-26 16:32:27 +08:00
c2c0f93001 llmage: hide usages/ioinfo columns, add toolbar buttons with popup windows 2026-06-26 11:30:05 +08:00
a32249375d perf: 优化llmusage查询-移除大文本字段+添加userorgid索引 2026-06-25 18:04:02 +08:00
9b84e4c664 fix: 更新记账失败记录CRUD配置添加alters字段映射 2026-06-25 15:28:59 +08:00
89ad8ddbc9 fix: 记账失败记录直接显示名称字段
将llmid/userid/userorgid字段改为直接指向llmid_text/userid_text/userorgid_text,
绕过alters映射问题,确保表格正确显示模型名、用户名、机构名
2026-06-25 14:38:12 +08:00
7e62b34b72 fix: 记账失败记录字段添加uitype:code以显示名称
为llmid/userid/userorgid字段添加uitype:'code',使alter配置生效,
正确显示模型名称、用户名、机构名称而非ID
2026-06-25 14:30:28 +08:00
b174247328 fix: 记账失败记录显示模型/用户/机构名称而非ID
移除llmid/userid/userorgid字段的uitype:'str',让alters中的textField配置生效,
使表格显示llm.model、users.username、organization.orgname而非原始ID
2026-06-25 14:21:58 +08:00
e08445b56b 优化记账失败记录页面
- Title2添加border-bottom样式,使标题更明显
- 查询SQL从select *改为指定字段,减少数据传输量
2026-06-25 14:17:27 +08:00
Hermes Agent
9b9e2a22d6 refactor: use Tabular built-in search_form for failed_accounting filter - Remove standalone InlineForm + custom toggle scripts - Use search_form config (framework handles create/hide/toggle/submit) - Toolbar button name 'filter' triggers built-in toggle_search_form() 2026-06-22 13:50:04 +08:00
Hermes Agent
e99e7774f2 fix: 记账失败记录三个问题修复
1) show_failed_reason.dspy: 增加llm表JOIN,弹窗显示llmID/model/ppid/用户/机构/金额等详情+失败原因
2) failed_accounting_list.dspy: page参数-Infinity崩溃,加try/except+最小值校验
3) failed_accounting.ui: alters去掉params/dataurl(dspy已JOIN返回_text字段,dataurl会覆盖)
2026-06-22 11:56:58 +08:00
Hermes Agent
211b9d7663 fix: failed_accounting查询按钮无响应 — target解析根因修复
根因: InlineForm binds的target='failed_table',getWidgetById从
InlineForm向下搜索(querySelector),但failed_table是兄弟控件
(同为VBox子控件),向下搜索永远找不到→buildEventHandler返回
null→script根本不执行→无报错无请求。

修复: target改为'app.failed_table'(根→向下搜索),与sidebar
菜单模式一致。多次修改未果的根因都在这里。
2026-06-22 11:32:33 +08:00
Hermes Agent
e2e3eab580 bugfix 2026-06-22 11:02:23 +08:00
Hermes Agent
71ccf230e9 fix: 按钮使用id属性替代name,确保binds能正确绑定事件 2026-06-18 16:35:44 +08:00
Hermes Agent
2efb1268b7 refactor: 模型上线检查UI改为VScrollPanel+HBox按钮布局
- UI: 检查结果区域改为VScrollPanel(filler),两个按钮用HBox并排
- check_pricing_program.dspy: 优先显示display_text字段,回退到name字段
2026-06-18 16:26:51 +08:00
Hermes Agent
5ab8171552 refactor: failed_accounting.ui布局优化 - 移除外层HBox包装,InlineForm直接作为VBox子控件 - 重试记账按钮移至Tabular toolbar 2026-06-18 14:21:10 +08:00
Hermes Agent
c0c9973e23 fix: failed_accounting_list.dspy JOIN条件修正 - users表主键是id不是userid - filter模糊搜索改用JOIN后的表别名(u.username, l.name) 2026-06-18 14:19:14 +08:00