875 Commits

Author SHA1 Message Date
4f0a8a4c2e fix: cwidth:25 cheight:16 card-body-scroll — match old working layout 2026-07-29 17:11:40 +08:00
7aa1efc6d8 revert: back to server-side Jinja2 rendering, Tabular AJAX had 401 session issues
Tabular widget makes client-side HTTP calls to data_url DSPY which
fail with 401 because session cookie not passed in AJAX requests.
Server-side Jinja2 loop avoids this entirely — all model data rendered
in initial page load.
2026-07-29 16:04:07 +08:00
15b4ad38fb fix: {total,data} -> {total,rows} — DataViewer reads d.rows not d.data 2026-07-29 15:29:38 +08:00
960edc2581 fix: DSPY cate.llms->cate['llms'], return {total,data} for DataViewer
DataViewer/PageDataLoader expects {total:N, data:[...]} format.
Bare array causes d.total=undefined → NaN → infinite paging loop.
Also fixes same cate.llms attribute access bug from before.
2026-07-29 15:23:33 +08:00
659af09a89 feat: Tabular seamless infinite scroll instead of page buttons
Tabular handles paging client-side — scroll to bottom auto-loads more.
Record_view renders each model as a card (icon + name + description).
Removed all server-side pagination logic from the template.
2026-07-29 15:13:13 +08:00
10280f60f1 fix: trailing comma when no pagination block rendered 2026-07-29 15:00:38 +08:00
e9dc4208e0 chore: remove .swp, update gitignore 2026-07-29 14:59:28 +08:00
063c0a46bb fix: use relative URL for location.href to stay in workspace 2026-07-29 14:59:17 +08:00
31119554d4 fix: location.href for all nav, no mixed JS/server state, card width:100%
- All filter buttons use location.href with fully server-constructed URLs
  No more mixing {{active_provider}} (stale server var) with dynamic JS state
- SearchBar, category, provider, pagination all use location.href pattern
- Card uses width:100% (fill DynamicColumn slot) + cheight:14 (fixed height)
- Model plaza root is VBox (not VScrollPanel), scroll delegated to cards area
2026-07-29 14:33:09 +08:00
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
78dd2b0788 fix: cate.llms -> cate['llms'] — get_llms_by_catelog_to_customer returns plain dict not DictObject 2026-07-29 11:15:36 +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
68dd92a353 sort: add a.name as final sort column in model listing queries
get_llmage_llm and get_llms_by_catelog had ORDER BY ending
at a.id — model names within same provider/catalog appeared
in arbitrary order. Added a.name as final sort key.
2026-07-28 16:23:41 +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
e246f91e77 fix: asyncinference KeyError status→.get(status) 2026-07-24 14:34:16 +08:00
c099af6bc7 chore: 删除load_test.py 2026-07-24 11:01:48 +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
5e48622e2a bugfix 2026-07-21 14:44:27 +08:00
cf5d48d96c bugfix 2026-07-21 14:43:15 +08:00
7f6501b700 bugfix 2026-07-21 11:11:48 +08:00
00741bbf4f bugfix 2026-07-21 11:11:02 +08:00
6aa2f76c1e fix: list_llms按catelogid排序-改SQL ORDER BY替代sort参数,修复同catelog被拆分成多组 2026-07-21 10:52:05 +08:00
112c86e80b bugfix 2026-07-20 19:34:24 +08:00
7b792c03d4 bugfix 2026-07-20 19:32:48 +08:00
3ff16da646 bugfix 2026-07-20 19:20:57 +08:00
ee68fbefa7 bugfix 2026-07-20 19:19:47 +08:00
84c03a7878 bugfix 2026-07-20 19:18:17 +08:00
933085b7f3 bugfix 2026-07-20 19:13:35 +08:00
142dcbb02e bugfix 2026-07-20 11:29:06 +08:00
5ea0291af7 feat: 添加 kimi-k3 模型的 llm 和 llm_api_map 配置
- 新增 llm 表记录: kimi-k3-llm (月之暗面 Kimi K3)
- 新增 llm_api_map 映射: t2t (纯文本) + vision/tm2t (多模态)
- uapiio 记录已存在,无需新增

完成 kimi-k3 模型的完整数据库配置
2026-07-20 11:19:02 +08:00
e0855b6415 refactor: 将 kimi-k3 多模态内容构建改为纯 Jinja2 模板
- 删除 build_kimi_content() Python 函数
- 在 SQL data 模板中用纯 Jinja2 语法构建 content 数组
- 新增 file_to_b64() 和 file_mime() 辅助函数注册到 ServerEnv
- 保持向后兼容,功能不变
2026-07-20 10:48:22 +08:00
ce17c48022 feat: build_kimi_content 迁入 llimage/utils.py,自含 webpath→base64 转换 2026-07-17 18:12:17 +08:00
c8b7d0cd07 refactor: kimi_t2t data 模板 — build_kimi_content 一行搞定多模态 2026-07-17 17:58:09 +08:00
f1930af597 feat: kimi_t2t 支持多模态 — 图片/视频通过 webpath_to_base64 转 data URI 2026-07-17 17:52:07 +08:00
afced72c3c fix: kimi uapi 补全 uapiio 定义,移除所有占位符 2026-07-17 17:42:07 +08:00
20833b8e90 feat: Kimi K3 API 接入 — 对话补全+文件管理 6 个 uapi 2026-07-17 17:35:18 +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