925f58b025
feat: 添加私域虚拟人素材功能
...
- init.py: 新增6个虚拟人函数(create/list/upload/sync等),注册到ServerEnv
- api_mapping: 新增create_group→CreateAssetGroup映射
- 外部API: 5个rl_virtual_*.dspy端点(创建组合/列表/上传/素材列表/状态)
- 前端API: 4个submit/get dspy端点(UI表单提交和数据获取)
- UI页面: 3个页面(创建组合/上传素材/查看素材)
- index.ui: 左侧导航新增虚拟人素材分区(3个按钮)
- load_path.py: RBAC新增virtual页面和api/%路径
- docs: api_downapp.md新增虚拟人API文档(5个端点)
2026-06-02 15:25:14 +08:00
86d2c4edc4
docs: add curl examples to all external APIs
...
- rl_verify.dspy: vendor param for creating verify session
- rl_upload.dspy: upload asset to vendor_group
- rl_status.dspy: query asset processing status
- rl_assets.dspy: list assets by vendor_group_id
- sync_assets.dspy: sync assets from vendor
- check_validate.dspy: check verify result with apikey/secretkey
2026-05-30 12:24:35 +08:00
9ff6076d5c
feat: add rl_assets.dspy — standard API to list assets by vendor_group_id
...
Standard external API returning {status, data} format.
Requires vendor_group_id param, enforces org_id isolation via get_userorgid().
2026-05-30 12:20:38 +08:00
7c3e77e612
fix: view_assets — use actiontype:urlwidget + target + mode:replace
...
Replace custom JS fetch script with proper bricks-native pattern:
- actiontype: urlwidget, target: app.rl_asset_results, mode: replace
- method: POST in urlwidget options (required for form data)
- Remove duplicate id from dspy response widgets (id belongs to container only)
2026-05-30 10:54:48 +08:00
2440be759d
fix: center all popups (anchor:cc), remove download URL from status query
...
- submit_query_status.dspy: add anchor:cc to all Message/Error widgets,
remove download URL display from status result
- submit_upload.dspy: add anchor:cc to all Error widgets
- Error popups now centered for consistency
2026-05-30 10:46:22 +08:00
29d2ed2609
fix: center auth popup with anchor:cc
2026-05-30 10:32:04 +08:00
6491182249
feat: add view_assets page — browse media by group with bricks widgets
...
- init.py: add rl_list_assets_client() — validates org ownership, syncs
from vendor, returns asset list with status/url/type
- view_assets.ui: dropdown to select vendor_group_id, submit triggers
asset list display
- submit_list_assets.dspy: returns responsive card grid with Image/
VideoPlayer/AudioPlayer widgets, per-asset refresh status + download
- index.ui: add '查看素材' card for customers
- load_path.py: register view_assets.ui under logined RBAC
2026-05-30 10:31:08 +08:00
daf82107fb
feat: add status query flow after upload (frontend专用 dspy)
...
- submit_upload.dspy: frontend form handler returning bricks Message widget
with asset_id, status, and '查询处理状态' button
- submit_query_status.dspy: frontend status query returning Message widget
with current status, retry button when still processing
- upload_asset.ui: use submit_upload.dspy + submited bind (was missing)
- External APIs (rl_upload.dspy, rl_status.dspy) unchanged for downstream systems
2026-05-30 10:22:25 +08:00
2f1974ae8f
feat: upload form shows name for auth groups, file input with media type validation
...
- get_org_groups.dspy: show name if available, fallback to vendor_group_id
- upload_asset.ui: change source_url from text textarea to file input (accept image/audio/video)
- rl_upload.dspy: auto-detect asset_type from file extension, server-side media type validation
2026-05-30 10:15:50 +08:00
a0d4189cb8
fix: 修复所有sor.U()调用, 合并id到更新字典(sor.U只接受2个参数)
2026-05-30 01:21:44 +08:00
f8de29d8f2
fix: 恢复format_exc()调用, 框架已预加载
2026-05-30 00:43:05 +08:00
fadde32ecc
fix: 移除rl_callback中未定义的http_request变量, 直接用params_kw获取GET参数
2026-05-30 00:42:25 +08:00
c9bc2da46b
ui: 认证弹窗正文和按钮改为上下排列,点击打开后关闭弹窗
2026-05-30 00:38:46 +08:00
967d1c728c
fix: 移除所有dspy文件中多余的import语句, 框架已预加载
2026-05-30 00:32:16 +08:00
38cea985f1
debug: rl_callback添加详细日志和异常捕获
2026-05-30 00:28:47 +08:00
93780ac01d
feat: 真人认证增加可选name参数, 记录到rl_org_group供列表展示
...
- rl_verify_user(): 新增name参数, 存入rl_asset_group.name/title
- rl_handle_callback(): 回调时将name从rl_asset_group复制到rl_org_group
- rl_query_groups(): 返回结果增加name字段
- rl_org_group模型: 新增name字段(str/200)
- rl_verify.dspy/submit_create_validate.dspy: 接收name参数
- create_validate.ui: 表单增加认证名称输入框(可选)
- api_downapp.md: 文档同步更新
2026-05-30 00:20:55 +08:00
5fa1040adc
fix: rl_callback支持火山GET回调(bytedToken参数名), 添加调试日志
2026-05-30 00:11:47 +08:00
ccb9430a25
fix: 还原rl_callback.dspy, 供应商回调返回格式由供应商决定
2026-05-29 23:48:04 +08:00
211b628c78
refactor: API响应统一标准格式{status,data}, 前端Form分离
...
- rl_verify.dspy: 返回{status:ok/data:{id,h5_link,byted_token}}
- rl_upload.dspy: 返回{status:ok/data:{id,vendor_asset_id,status}}
- rl_query_groups.dspy: 返回{status:ok/data:{groups:[...]}}
- rl_status.dspy: 返回{status:ok/data:{status,url}}
- rl_callback.dspy: 返回{status:ok/data:{vendor_group_id}}
- 新增submit_create_validate.dspy: 前端专用,返回bricks Message/Error widget
- create_validate.ui: Form指向新dspy + submited事件绑定
- api_downapp.md: 文档同步更新
2026-05-29 23:40:19 +08:00
9ada9a5a77
fix: use 'default' as project name for Volcengine API calls
2026-05-29 19:18:37 +08:00
bd70011c01
feat: rl_verify认证成功后用NewWindow控件在新窗口打开认证链接
2026-05-29 14:39:50 +08:00
da5a67f23b
fix: 删除手写list dspy,让Sage CRUD框架自动生成list端点
...
手写文件遮蔽了框架自动生成的端点,导致:
- get_rl_vendor_config_list 500: org_id不在rl_vendor_config表
- get_rl_org_group_list 403: 手写文件绕过框架RBAC处理
Sage CRUD框架从json/定义自动生成list端点,不需要手写
2026-05-29 11:16:30 +08:00
ac50a223b5
fix: 客户UI改用client API,简化表单字段
...
- create_validate.ui: 去掉callback_url/project_name,只保留vendor下拉,提交到rl_verify.dspy
- rl_verify.dspy: 自动用orgid作为project_name,返回Message widget含h5_link
- upload_asset.ui: 增加vendor下拉,vendor_group_id改为可选下拉(从已认证组合中选)
- 新增get_org_groups.dspy: 返回当前org已认证的vendor_group_id列表
- rl_upload.dspy: 返回Message widget格式
2026-05-29 10:44:19 +08:00
a21eabbb11
refactor(reallife_asset): uapi网关架构重构 + UI全面修复
...
架构变更:
- 废弃volcengine_client.py直连,改为通过Sage uapi网关调用供应商API
- rl_vendor_config表新增upappid和api_mapping(JSON)字段
- 新增_call_vendor()统一路由: vendor→upappid→apiname→UpAppApi.call()
- 支持多供应商灵活映射,各家API数量/逻辑不同通过api_mapping配置
管理端UI:
- vendor_config_manage.ui: Tabular列表展示供应商配置
- vendor_config_edit.ui: 供应商配置编辑页(AK/SK通过upapp/upappkey管理)
- org_group_manage.ui: 机构映射管理页
- 新增api/get_upapp_list.dspy获取上位系统下拉选项
- 新增api/get_status_list.dspy获取状态下拉选项
客户端UI:
- create_validate.ui: 真人认证页面,支持选择供应商创建H5认证
- upload_asset.ui: 上传素材页面,支持URL/base64上传
- index.ui: 新增客户端入口卡片(真人认证、上传素材)
- 所有Form字段使用正确uitype(code/str/text),确保可输入
清理:
- 废弃rl_app_user表,统一使用rl_asset_group+rl_org_group
- 简化API签名,去除冗余apikey/secretkey透传
2026-05-28 18:49:46 +08:00
1d05b7e36b
feat: support base64 file upload in rl_upload, clarify API docs
...
- rl_upload.dspy: use b64media2url to convert base64/local path to
public URL before calling vendor API
- docs/api_downapp.md:
- Clarify dapi Bearer Token auth flow (dapi middleware -> get_user/get_userorgid)
- Add base64 upload example for rl_upload
- Clarify rl_status URL is a temporary signed download link (12h),
asset is permanently stored on volcengine, permanent ref is vendor_asset_id
- Update overview with auth, upload, and key management sections
2026-05-28 17:45:07 +08:00
36be53699d
fix: replace local_group_id with vendor_group_id in all client-facing APIs
...
- rl_upload_user: accept vendor_group_id instead of group_id,
validate directly via rl_org_group(org_id, vendor_group_id)
- rl_query_groups: remove local_group_id from response, only return
vendor_group_id, vendor, status, create_time
- rl_handle_callback: remove local_group_id from return value
- rl_upload.dspy: rename param group_id -> vendor_group_id
- docs/api_downapp.md: update all examples and descriptions
2026-05-28 17:27:26 +08:00
dbf8473b1b
fix: remove downapp_id parameter from all APIs, use Bearer token auth
...
- All APIs now identify caller via Bearer Token, dapi module
automatically provides user_id and org_id
- rl_verify.dspy: use (await get_user()) instead of downapp_id param
- rl_verify_user: rename downapp_id -> user_id param
- rl_upload_user: rename downapp_id -> user_id param
- rl_sync_asset_status_user: rename downapp_id -> user_id param
- Update docs/api_downapp.md: remove all downapp_id references,
add Bearer token auth description, add rl_query_groups and
rl_callback documentation
2026-05-28 17:21:02 +08:00
af65c307f8
feat: add callback handler and group query API for client auth flow
...
- Add rl_handle_callback() to init.py: handles Volcengine H5 auth callback,
queries vendor for result, registers rl_org_group mapping
- Add rl_query_groups() to init.py: client API to query authenticated
group_ids for an org
- Add wwwroot/api/rl_callback.dspy endpoint (no auth required for vendor POST)
- Add wwwroot/api/rl_query_groups.dspy endpoint (login required)
- Remove deprecated rl_app_user_* files (no longer used)
- Update scripts/load_path.py: rl_callback -> any role, rl_query_groups -> logined
2026-05-28 16:57:04 +08:00
2cd0974909
refactor: vendor config and org-group mapping
2026-05-28 16:44:00 +08:00
530f337704
feat: add downapp user API interfaces and ops management table
...
- New table rl_app_user for application tracking
- APIs: rl_apply, rl_verify, rl_upload, rl_status, rl_check_app_status
- Ops CRUD for managing applications and keys
- Multi-vendor support reserved via vendor field
2026-05-28 16:25:02 +08:00
78036b9640
fix: .dspy文件按开发规范重写
...
- 移除所有import语句(json/DBPools/datetime均为ahserver预加载全局)
- ret=json.dumps(result) 改为 return result
- 提前return简化if/else嵌套逻辑
- 12个.dspy文件全部修正
2026-05-28 11:17:30 +08:00
0e5696f5da
feat: 真人人像素材管理模块初始版本
...
- 支持火山方舟(Volcengine Ark)真人人像素材API
- AK/SK HMAC-SHA256签名(纯stdlib实现)
- 素材组合(Asset Group)管理: 创建认证、查询、删除
- 素材资产(Asset)管理: 上传、状态同步、删除
- 多供应商可扩展架构
- 完整CRUD + 前端UI + uapi SQL配置
- 12个API端点 + 6个前端页面
- 数据库表: rl_asset_group, rl_asset
2026-05-28 08:55:09 +08:00