873 Commits

Author SHA1 Message Date
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
dcb0cd5cba bugfix 2026-06-26 11:06:52 +08:00
13c123c967 refactor: 重命名llmusage字段标题为orgname/username/model 2026-06-25 18:21:32 +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
9d2f8edc51 fix: load_product_category_product SQL移除不存在的sort_order字段 2026-06-23 18:01:56 +08:00
Hermes Agent
64f10e177b refactor: load_product_category_product returns data only, no DB writes
- Returns standardized {categories, products} format
- product_management handles dedup/update logic
- Categories: source_id, name, description, product_type, sort_order
- Products: source_category_id, resource_ref_id, product_code, product_name, etc.
2026-06-23 16:06:09 +08:00
Hermes Agent
a060dd1405 refactor: use resource_ref_id (llm.id) instead of product_code
- product_interface: all functions take resource_ref_id as primary param
- _resolve_llm: lookup by llm.id directly instead of model name
- load_product_category_product: write llm.id as resource_ref_id in product table
- No more code→id mapping needed in resource module
2026-06-23 15:38:34 +08:00
Hermes Agent
8910019528 feat: implement product module standard interface (product_interface.py)
- get_product_display: pricing display text + extra info
- check_product_availability: ppid + pricing data validation
- check_product_consumable: full pre-check (availability + balance + pricing)
- execute_product_service: non-streaming inference (no HTTP request dependency)
- execute_product_service_stream: streaming inference as async generator
- calculate_product_cost: buffered_charging with customer discount
- sync_uapi_request_product: sync inference product wrapper
- async_uapi_request_product: async task submission product wrapper
- Register product_interface dict on ServerEnv in load_llmage()
2026-06-23 15:09:00 +08:00
Hermes Agent
510122a282 refactor: replace import_products_from_llmage with load_product_category_product
- New function: load_product_category_product(parent_category_id)
- Reads llmage catalogs + published models, writes sub-categories + products
  into product_management DB directly
- Removed env registration (called via importlib, not ServerEnv)
2026-06-23 14:47:15 +08:00
Hermes Agent
df41478170 feat: register import_products_from_llmage for product_management import
- Add import_products_from_llmage() function that exports llmage catalogs
  and published models as product categories and products
- Register on ServerEnv so product_management can call it when
  resource_module='llmage'
2026-06-23 13:47:15 +08:00
Hermes Agent
1357eabce7 feat: check ppid has today pricing data before allowing inference 2026-06-22 17:55:29 +08:00
Hermes Agent
6a3cace0e8 fix: 记账成功后自动清理llmusage_accounting_failed记录 2026-06-22 17:02:23 +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
30c429ad0c feat: add i18n translations (zh/en/jp/ko) for all modules 2026-06-19 15:01:28 +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
Hermes Agent
4abd553302 fix: failed_accounting.ui显示优化 + dspy跨库JOIN返回_text字段 - failed_accounting.ui: userid→username, userorgid→orgname, llmid→llm.name - 移除cost/use_date列, InlineForm紧凑布局 - failed_accounting_list.dspy: 跨库JOIN users/organization/llm获取名称 - handled保持原始值, 由UI的code控件显示 2026-06-18 14:15:28 +08:00
Hermes Agent
6f977450c9 refactor: 记账失败记录优化显示 - userid/userorgid/llmid显示名称 - 移除cost/use_date字段 - InlineForm紧凑布局 2026-06-18 13:58:05 +08:00
Hermes Agent
cb99a83364 revert: 恢复tbl.render(params),排查InlineForm数据传递问题 2026-06-18 13:37:40 +08:00
Hermes Agent
716876fd92 fix: failed_accounting查询用event传表单数据 2026-06-18 12:51:27 +08:00
Hermes Agent
74aca298a7 llmage: failed_accounting.ui加原因toolbar按钮弹窗显示失败原因 2026-06-18 12:14:06 +08:00
Hermes Agent
6bcacaf94a fix: 记账失败原因toolbar-params改为URL传参避免xls2crud序列化错误 2026-06-18 12:00:00 +08:00
Hermes Agent
88d2fd2c86 llmage: 记账失败记录-原因改为toolbar按钮弹窗显示 2026-06-18 11:55:08 +08:00
Hermes Agent
1aa28430e0 refactor: appcodes编码改用models codes段定义,清理json alters 2026-06-17 19:09:51 +08:00
Hermes Agent
2e2fa36896 fix: query_apiname双问号修复+isdefaultcatelog改硬编码 2026-06-17 18:42:48 +08:00
Hermes Agent
ac79d6c0d0 fix: get_search_apiname返回value/text双键兼容表单下拉 2026-06-17 18:32:09 +08:00
Hermes Agent
eaf440a6a9 feat: 添加llmage编码字典init/data.json,CRUD alters改用appcodes数据源 2026-06-17 18:04:44 +08:00
Hermes Agent
fe348b070e fix: 简化体验一次和检查计费为配置验证,避免复杂API调用 2026-06-16 18:02:58 +08:00
Hermes Agent
ab83f05d63 fix: 修复check_*.dspy的false/False错误和pricingdata表查询 2026-06-16 17:19:03 +08:00
Hermes Agent
cef9e0bc52 fix: 修正check_*.dspy路径为绝对路径,修复按钮API路径 2026-06-16 16:47:37 +08:00
Hermes Agent
039814b281 fix: 修正check_*.dspy路径为../,修复usages参数JSON编码 2026-06-16 16:41:22 +08:00
Hermes Agent
ea2f08e443 fix: 上线检查改为urlwidget子控件模式,每个检查项独立dspy(bug3) 2026-06-16 16:25:26 +08:00
Hermes Agent
75fe89ac2e fix: 修复llm_launch_check_page.dspy缩进和错误处理 2026-06-16 15:46:16 +08:00
Hermes Agent
5deecc67ce fix: 上线检查改为服务端渲染(.dspy),解决bricks script不支持async问题(bug3) 2026-06-16 14:09:12 +08:00
Hermes Agent
b53eb61fbf fix: 修复记账失败记录查询无响应(bug4/5)+模型上线检查无响应(bug3) 2026-06-16 10:45:27 +08:00
Hermes Agent
fe4e8271bf fix: recover_usages支持ioinfo两种存储格式
ioinfo字段有两种存储方式:
1. JSON内容(流式模型如qwen3-max) - 直接解析
2. 文件路径(异步模型如viduq3-pro) - 读取文件再解析

修改后两种情况都能正确提取usage
2026-06-15 17:16:35 +08:00
Hermes Agent
0d2b39ddd7 feat: add recover_usages button to accounting failed page
- Add recover_usages.dspy: reads ioinfo files, extracts usage from
  last output, writes back to llmusage.usages field
- Add toolbar button in llmusage_accounting_failed/index.ui
- Register new path in load_path.py RBAC config
- Force-add dspy (parent dir in .gitignore for CRUD auto-gen)
2026-06-15 17:01:29 +08:00