17 Commits

Author SHA1 Message Date
5688842f8c docs(readme): 统一超时预算段(2026-09-16用户裁定单点收敛)——payload._timeout=总预算语义,端点deadline约束重试,端点配置timeout不再掐断attempt,三层对齐铁律+验证特征串 2026-09-16 18:30:40 +08:00
e7a5d43bd4 docs: 充值登记语义补注——真实充值在供应商侧,平台只做登记,msg带前后值 2026-09-15 17:26:01 +08:00
123e4aaa74 docs: README钱包节补「充值登记」入口(账号列表工具栏→弹窗→recharge_account) 2026-09-15 16:37:22 +08:00
cc2e9c5a50 docs: README端点选择章节改新约定——端点纯连接点可互换(主机根+region+timeout,protocol标签废止),profile.path承载完整相对路径(含版本段),endpoint_ids空=全部,inference删全URL覆盖分支,根治t2t间歇404 2026-09-12 15:21:34 +08:00
6d0ecc5d21 feat(wallet): 账号钱包门禁+会话粘性轮询+出账后扣减+余额不足待办(2026-09-11用户定夺)——①门禁:balance<阈值(params缺省5元)从轮询集剔除,全剔除报可行动错误;②粘性:同会话同模型固定账号(Redis llm_sticky TTL1h滑动续期)省上游缓存钱,粘性失效自动重选,session_id经payload._session_id透传;③轮询:跨会话INCR取模替代余额加权;④扣减:产品记账成功后按流水account_id扣调用账号钱包(supplier_cost),与cost回填同事务原子,cost≠0幂等跳过防重置重跑重复扣,允许透支为负;⑤待办:状态派生provider(充值到账自动消失天然单发)给属主机构operator角色(params可配,按.后缀动态匹配)+详情弹窗内直接充值 2026-09-11 15:29:40 +08:00
69fe362dde feat(trace): 调用原文追踪「查看IO」前端闭环+按项目费用页(2026-09-10定夺落地)
- json/llm_call_trace_list.json: noedit只读列表;exclouded隐藏id/req_path/resp_path/org_id;
  url/note加宽;kind/method内联枚举(含gen同步生成,此前草稿引用的get_llm_kind_options.dspy不存在);
  删color_mapping(bricks全库0消费的死配置);toolbar查看IO+binds urlwidget→PopupWindow(85%)
  url不带?id=${id}$——生成期ArgsConvert会eval成<built-in function id>垃圾串,
  行数据id经_add_event_data自动并入params(dapi/llmage生产同款)
- api/llm_call_trace_io.dspy: 薄代理(get_user门禁+get_userorgid机构隔离)→env.llm_call_trace_io;
  修草稿4处实锤bug:get_user未await/user.get当dict/sor块外使用/返回PopupWindow套娃
- init.py: llm_call_trace_io读表+同批次+llm_usage上下文(块内读全拷dict)→读文件
  (trace.trace_root realpath前缀校验防穿越)→TabPanel三tab(摘要Html+pre escape防注入/
  请求/响应CodeEditor readonly mode=null);单侧150K截断提示盘上路径;env注册
- api/llm_project_cost_query.dspy: 改{total,rows}契约接Tabular data_url(PageDataLoader);
  wwwroot/llm_project_cost/index.ui: InlineForm(date_from/date_to/status)+Tabular;
  script内getWidgetById起点bricks.app(弹窗DOM挂body下,app.root搜不到)
- card_popup.dspy: titles加llm_call_trace;新增page_targets白名单挂按项目费用页;
  index.ui挂两张卡片(调用原文追踪/按项目费用)
- accounting.py: _maybe_cleanup_traces每日一次接cleanup_expired(trace.py铁律3
  文档承诺worker每日调但循环没接,补齐);放抢锁前(清理幂等多进程同日无害)
- scripts/load_path.py: 注释说明/**通配已覆盖新页面(rbac check_roles_path前缀匹配)
- models/mysql.ddl/README/design-spec: 9张表同步(kind补gen枚举;3.9节;F19/F20)
- scripts/test_llm_call_trace_io.py: stub harness 22断言全过(隔离/穿越/转义/截断/每日门控)
- .gitignore: wwwroot/llm_call_trace/生成目录不入库
2026-09-11 14:58:21 +08:00
427cd7cbc1 feat(usage): usages全量不截断为计费唯一事实源(m0021删token冗余列)+llm_call_trace上下行原文追踪+project_id按项目统计费用(2026-09-10) 2026-09-11 14:17:40 +08:00
bfaa8c70c8 docs(readme): 记账derived计费双保险(usage原文落库+hour/prompt_tokens_details归一)与定价YAML铁律(备选模式维度不入YAML) 2026-09-07 17:32:49 +08:00
c9806aed6b docs(readme): 宿主接入清单入口名更新为规范名 load_pipeline_llm(旧名 load_llm 为别名) 2026-09-07 14:59:26 +08:00
bd732bf35f feat(ui): 模型治理卡片全部弹窗化(card_popup白名单)+模型注册弹窗加自动配置(auto_config_popup:API/定价链接或正文→内部助手全链)与上线检查(online_check_popup:选模型→真实调用+记账检查+状态复核→告知结果);删下方llm_content展示容器(2026-09-07用户定夺) 2026-09-07 13:24:31 +08:00
c16bdb4a28 docs(readme): llm_api_profile复用键改协议×能力×形态指纹 2026-09-06 19:51:58 +08:00
8e32cb85f3 feat(llm): 会话agent可选模型收窄为对话能力t2t/i2t/m2t+能力字典加m2t(2026-09-06用户定夺)
- selection.CHAT_CAPS=('t2t','i2t','m2t') 作为会话形态能力白名单唯一事实源
- model_options/resolve_model_name 加 capabilities 参数('chat'哨兵),
  IN 列表展开占位符(sqlor传list会崩),capability 空串按 t2t 归一(COALESCE+NULLIF)
- chat_inference 同步门禁从「只认 t2t」放宽到 CHAT_CAPS——
  实测根因:测试库 6 个机构策略主模型全是 qwen3.8-max(i2t),
  16:28 已产生 FAILED「capability mismatch: i2t != t2t」,会话agent选它必挂
- m2t 入字典四处同步:种子 init/data.json + 端点注释 models.dspy
  + design-spec §6 能力表(+ 提取提示词在 pipeline-platform)
2026-09-06 19:32:59 +08:00
671d320d59 feat(llm): status统一枚举SUCCEEDED/FAILED/PENDING/RUNNING+非SUCCEEDED记账状态NULL;llm_api_profile加method独立列(2026-09-06用户定夺)
- llm_usage.status 各家归一枚举(其他=recharge对账行);accounting_status仅SUCCEEDED行写created,其余NULL不冒充待记账
- govern_settle失败行不再挂created;充值行不写accounting_status
- 出账循环拾取条件 status='SUCCEEDED';面板/概览统计同步改
- llm_api_profile.method GET/POST独立列(默认POST),运行时读列决定动词;查询步骤存量兼容回退解析request_template.$.method
- 字典llm_usage_status更新五枚举;README同步
2026-09-06 17:15:40 +08:00
7b6b74646d docs(readme): 记账三态语义(created/accounted/failed)+出账前置(产品映射+ppid)+worker依赖appbase 2026-09-05 18:53:51 +08:00
5ec2ca8fa4 docs(readme): 同步2026-09-05全部变更——供应商去协议/记账分流usages/媒体转换铁律/异步执行器/API文档端点 2026-09-05 16:10:47 +08:00
5e9dee1eb7 docs(readme): llm_model说明同步——2026-09起不存单价,定价走ppid 2026-09-05 10:48:52 +08:00
660ad21365 feat(pipeline-llm): 模型治理模块v1.0.0 — 供应商/端点目录/账号钱包/模型注册/组织容错策略/限额限流/双维度记账
- 8张llm_前缀表(手写幂等DDL): vendor/account/model/api_profile/org_policy/org_quota/user_quota/usage
- gateway.py 门禁链: 限流→限额→策略选模型(主备容错)→账号×端点轮转(偏好过滤+余额加权+冷却避让)→预授权-结算
- api_key AES单层加密(非RC4,盐不对称不可解); 限流Redis分钟窗口(db4) fail-open
- 双维度记账: 一次调用同行记cost(账号侧)+charge(组织池侧); 充值=recharge行
- CRUD+index.ui 8卡片导航+总览; appcodes字典5组; 设计规范+30测试用例
- 策略即开关: 机构无策略→__LEGACY__走旧llm表(向后兼容零改动)
2026-09-01 17:27:17 +08:00