diff --git a/README.md b/README.md index ef426f3..5ffcb32 100644 --- a/README.md +++ b/README.md @@ -16,14 +16,14 @@ | 表 | 说明 | |---|---| -| `llm_vendor` | 供应商(协议 + 端点目录 JSON) | -| `llm_account` | 供应商账号(钱包:余额/充值/选端点,api_key AES 加密) | -| `llm_model` | 模型注册(能力分类/挂定价 ppid,name 唯一;2026-09 起不存单价,定价走 ppid) | -| `llm_api_profile` | 适配模板(协议×能力形态去重) | -| `llm_org_policy` | 组织容错策略(主备模型 + 端点偏好) | +| `llm_vendor` | 供应商(端点目录 JSON;2026-09-05 起不存协议字段,请求形态归模型挂的适配模板) | +| `llm_account` | 供应商账号(钱包:余额/充值/选端点,api_key AES 加密;模型可绑定账号 account_id 收窄候选池) | +| `llm_model` | 模型注册(能力分类/挂定价 ppid/sync_mode/query_profile_ids,name 唯一;2026-09 起不存单价,定价走 ppid) | +| `llm_api_profile` | 适配模板(协议×能力形态去重;data/response 模板全 Jinja2,含媒体转换函数) | +| `llm_org_policy` | 组织容错策略(主备模型 + 辅助模型 utility_model_id + 端点偏好) | | `llm_org_quota` | 组织限额限流(池余额 + QPM) | | `llm_user_quota` | 个人限额限流(额度上限 + QPM) | -| `llm_usage` | 用量流水(双维度记账事实表) | +| `llm_usage` | 用量流水(双维度记账事实表;usages 字段存非 token 计价因子 JSON) | ## 调用门禁链 @@ -60,9 +60,24 @@ - **限流用 Redis 分钟窗口原子计数**(db4,与会话 db3 隔离);Redis 故障时限流放行(fail-open), 余额仍由 DB 条件 UPDATE 守住。 - **429 → (账号,端点)对冷却 60s**;账号级冷却用 `*` 通配键。 -- **双维度记账**:一次调用同行记 `cost`(成本侧,账号余额扣)+ `charge`(消费侧,组织池扣); - 充值是 `status=recharge` 行(对账用)。 -- **预授权-结算**:调用前按预估冻结,调用后按实际 token 多退少补。 +- **记账分流(2026-09-04 起)**:模型表不存单价,成本/售价统一走 ppid 定价引擎; + 调用时流水记 `usages`(非 token 计价因子:视频时长/分辨率等),异步出账循环 + (accounting.py,独立进程)经产品层出三方账(客户付/商户营收/供应商成本)。 + 本机构模型流水 `na`;owner 模型跨机构调用流水 `pending` 待出账。 +- **媒体转换铁律(2026-09-05)**:生成类模型适配模板 data 用 + `b64media2url(request, xxx_file)`(上传转公网 URL)、response 用 + `downloadfile2url(request, url)`(生成物落地本地,上游 URL 仅 24 小时); + 同类能力对外契约统一(i2v:image_file 进 → video 出)。 +- **异步模型执行器**:sync_mode=async 时走提交→按 query_profile_ids 轮询→ + 取结果;等待预算默认 600 秒,`_timeout` 可覆盖(上限 900)。 + +## API 文档端点(2026-09-05) + +`/pipeline-llm/api/v1/docs/`(RBAC 授权 any,公开文档照 sage /bricks/docs 先例): +- `index.ui` 按 `_lang` 参数分发 ApiDoc 组件(zh/en/ja/ko 四语言,带白名单回落 zh) +- `api_{zh,en,ja,ko}.md` 四语言文档(chat/completions + models 端点、异步模型参数、 + 媒体转换约定、token 认证、计费说明) +- 依赖宿主 conf/config.json 的 processors 注册 `[".md","md"]`(MarkdownProcessor) ## 文档