a1a6a583e3
fix: buttons update RefreshWidget directly, VScrollPanel root, cwidth 22
...
- All filter buttons now script-update rw.opts.url + rw.show_widget()
instead of urlwidget target navigation (which silently failed)
- Root wrapped in VScrollPanel so scroll position preserved
- Card cwidth 25→22 for better column fit
- Page buttons also use RefreshWidget update pattern
2026-07-29 13:53:23 +08:00
8a3d30c0c6
fix: pricing as string, fixed cwidth 25, pagination (20/page)
...
- Handle llm.pricing_display when it's a string (not array)
- Card cwidth 15→25 to fill DynamicColumn properly
- Added page/page_size pagination with prev/next buttons
- page param forwarded through model_plaza→plaza_model_cards
2026-07-29 13:37:58 +08:00
7148656f99
fix: dedupe providers, SearchBar input, urlwidget internal nav
...
- Removed iconid from get_llmproviders GROUP BY (caused duplicates)
- Replaced KeyinText with SearchBar (built-in input+search+clear)
- Switched navigation from window.location.assign to urlwidget
targeting sage_main_content (stays in workspace, no full reload)
2026-07-29 13:22:53 +08:00
cb53b9aeeb
fix: -@ target -> window.location.assign, Input -> KeyinText
...
-@ is not a valid CSS selector, Bricks parses it as '#@' and fails.
Switched all filter button binds to actiontype:script with window.location.assign().
Replaced nonexistent Input widget with KeyinText for search.
2026-07-29 12:31:40 +08:00
32000e8757
ui: plaza card layout — fixed VBox, title 2ch, filler scroll with desc+price
...
Each card is a cwidth:15 cheight:12 VBox:
- Title row: cheight:2 (icon + name)
- VScrollPanel css:filler: description (height:auto) + pricing (css:filler)
2026-07-29 12:00:04 +08:00
0cb307407c
bugfix
2026-07-29 11:50:00 +08:00
bc23679c1b
bugfix
2026-07-29 11:43:26 +08:00
1c25542e72
feat: cockpit-style model plaza with search, category tabs, provider sidebar
...
New layout:
- Search bar (top) with fuzzy name/description match
- Category tabs (wrapping, single-select)
- Provider sidebar (left, single-select)
- Card grid (right, sorted by name, refreshed on filter change)
- Both category/provider unselected = all published models
Added get_plaza_models() for flat filtered model listing.
Supports combined filtering: provider + category + search.
2026-07-28 17:55:17 +08:00
a2937d3cff
fix: strip line number corruption from 12 media DSPY files
...
The ad5d8c0 commit had line number prefixes (1|, 2|, ...) baked into
file content. Also fixed cache call bugs:
- params_kw.model or 'qwen3-max' -> params_kw.model
- 'ktv_pipeline' hardcoded -> catelogid variable
- extra tab before params_kw.llmcatelogid
- missing f-string braces in debug()
2026-07-27 10:22:34 +08:00
a4aa40faf5
fix: llm上线检查定价数据显示实际内容而非记录数
...
改用 pricing.pricing.get_pricing_display() 获取格式化定价明细,
替换原来的 select count(*) 只显示记录条数
2026-07-24 23:44:00 +08:00
287e6c5a40
fix: 修复6个v1 DSPY缓存替换造成的缩进错误
2026-07-24 16:56:50 +08:00
2d49ff9968
feat: 上线检查计费测试显示完整价格字段明细
2026-07-24 16:48:45 +08:00
ad5d8c00c5
perf: 18个v1 DSPY全改用llmid缓存,去3表JOIN+DB连接
2026-07-24 11:01:40 +08:00
ef1e228f19
perf: llmid缓存(启动预热+内存查),v1/chat/completions去3表JOIN
2026-07-23 18:26:52 +08:00
7f6501b700
bugfix
2026-07-21 11:11:48 +08:00
00741bbf4f
bugfix
2026-07-21 11:11:02 +08:00
3d47867bd3
revert(llmage): undo unauthorized model_plaza modification
2026-07-17 16:35:24 +08:00
d82a8b554f
feat(llmage): add pricing query tab to model plaza
2026-07-17 16:10:24 +08:00
929dd017f9
fix(llmage): model_pricing returns widget tree, simplified UI
2026-07-17 16:09:12 +08:00
233b5db481
feat(llmage): model pricing query page — select model, display pricing table
2026-07-17 16:08:08 +08:00
6ab53eca2b
fix: llm_create.dspy 补充 ownerid 自动注入(logined_userorgid 对自定义端点不生效)
2026-07-14 18:22:11 +08:00
3a2da1e636
fix: retry accounting button - add credentials:include to fetch call
2026-07-14 14:18:02 +08:00
f0d3550b63
fix: use get_sor_context(rbac) to query suppliers in sage db
2026-07-10 09:26:21 +08:00
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