885 Commits

Author SHA1 Message Date
0dd5a67a2a bugfix 2026-07-01 13:18:37 +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
3e386ed86f debug: backend_accounting 加 info 级别日志追踪记账循环
- info 替代 debug 确保启动日志必定输出
- 每轮循环后打印 got N records
- exception 消息加前缀便于搜索

用于排查 receive 1166 条记录但循环不处理的根因
2026-06-30 11:53:33 +08:00
f6d4462ed8 fix: 后台任务引用保持+异常处理
- 保存asyncio.create_task引用防止GC回收
- query_task_status添加try/except和CancelledError处理
- 确保连接在任务异常时正确释放
2026-06-27 12:54:10 +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
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