fba76a0cdc
fix(inference): 同步路径注入prompt便利变量——两路径模板命名空间一致(2026-09-08实测根因)
...
提取生成器为DashScope生成类模型产的request_template用{{ prompt }}(messages末条
文本),此前只异步路径_build_async_body注入;同步生成路径复用_build_upstream_body
时StrictUndefined渲染崩"Object of type Undefined"(qwen-image-plus实测0.1s失败)。
2026-09-08 13:38:02 +08:00
eb6ca2f4bb
feat(inference): 同步生成执行路径——交互形态第三种(2026-09-08用户定夺:stream/async之外,客户提交后模型即时给出产物)
...
- _sync_generation_inference:一次POST即时拿产物,复用异步路径的response模板渲染
+downloadfile2url落地+usages记账;模板失效按DashScope实测形态搜索产物
(output.choices[0].message.content[0].{image|video|audio})
- _post_upstream抽公共(require_choices参数:chat语义/生成语义);上游业务错误如实抛
- chat_inference同步分流三分支:CHAT_CAPS→chat;生成类(t2i/i2i/t2v/i2v/r2v/tts/asr)
→同步生成;其余(embedding/rerank)如实报错禁静默
- 协议字典加dashscope_sync种子(同步生成,不带X-DashScope-Async头)
- 根治qwen-image-plus:文档MultiModalConversation.call(stream=False)被误配async
+异步头→密钥不支持异步403;sync路径原先只认chat,t2i无执行路径
2026-09-08 13:33:26 +08:00
5a1a567720
fix(gateway): 同能力备链铁律——显式指定模型不可用时禁止跨能力静默顺延(2026-09-07 qwen-image-plus实测:指定t2i模型无key账号→旧逻辑补t2t备链→静默返回deepseek文字还报ok:true,要图得文当成功);_model_chain指定模型只补同能力备链+owner容错链同能力过滤,无同能力替代则报可行动错误(违反禁止静默回退铁律,且毒害invoke_model自动选型)
2026-09-07 18:38:25 +08:00
681b4c46b7
chore(scripts): 存档删除5个老MiniMax模型脚本(M2/M2.1/M2.1-highspeed/M2.5/M2.5-highspeed,用户定夺老模型删除;走模块守卫函数+产品映射一并清+共享模板保留,已备份可回滚)
2026-09-07 18:05:55 +08:00
9cb6b5abdf
chore(scripts): 存档MiniMax定价落库(M3分档五折/M2.7/M2.7-highspeed,不配缓存写入因子-无usage证据)与4模型下线脚本(上游下架,disabled+产品下架,幂等)
2026-09-07 17:57:49 +08:00
bfaa8c70c8
docs(readme): 记账derived计费双保险(usage原文落库+hour/prompt_tokens_details归一)与定价YAML铁律(备选模式维度不入YAML)
2026-09-07 17:32:49 +08:00
bf6c752a50
chore(scripts): 存档2026-09-07价目表定价重建脚本(14:08四表被清空后按用户价目表重建9模型定价+改名text-embedding-flash+happyhorse三模型共享ppid+悬空ppid清理,幂等,引擎试算全过)
2026-09-07 17:21:41 +08:00
e9e57cf825
fix(记账): 同步调用usage原文落usages+出账补prompt_tokens_details/hour维度——根治derived缓存变量求值失败(uncache_tokens=0输入不计费)与忙闲时分档计价缺失(2026-09-07实测qwen3.8-max记账failed根因)
2026-09-07 16:57:43 +08:00
08cf9272cd
feat(selection): 任务自适应自动选型auto_select_model+models_catalog(本机构+owner机构候选,utility语义匹配,owner硬校验双保险);治理链govern_resolve加模型归属校验——他机构模型剔除顺延替代,显式指定越权模型报可行动错误(2026-09-07用户需求)
2026-09-07 16:47:21 +08:00
c9806aed6b
docs(readme): 宿主接入清单入口名更新为规范名 load_pipeline_llm(旧名 load_llm 为别名)
2026-09-07 14:59:26 +08:00
23ebc7fc17
refactor: load_llm 规范化为 load_pipeline_llm(load_<模块名>约定)+保留旧名别名(accounting_worker 零改动)
2026-09-07 13:57:42 +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
34ef256fe6
feat(llm): 供应商账号改为供应商CRUD子表(llm_account_by_vendor)——弹窗进入只显示/处理选定供应商账号;账号归属服务端守卫(vendor_id不可改/跨供应商禁删);删独立账号列表页(index.ui卡片同步移除)
2026-09-06 21:51:05 +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
825dd2e130
feat(llm): 运行时媒体别名归一升级为三数组契约——xxx_file/xxx_url→xxx_files,media数组按type分组进image_files/video_files/audio_files
2026-09-06 10:23:01 +08:00
c3cf1a3a4f
feat(llm): 能力字典加r2v(参考生视频)/i2i(图生图)——种子+models.dspy端点注释两处同步
2026-09-06 09:30:12 +08:00
852814678a
fix(llm): _join_url拼接去重base_url已有路径前缀(模板path带/api/v1+端点/api/v1双前缀404)
2026-09-05 23:28:16 +08:00
9f0691f0b7
fix(llm): 协议匹配端点存在时只选匹配项(排除未标注)——防同账号多端点按序选到compatible-mode再404(自查发现)
2026-09-05 23:11:56 +08:00
51d1e4ccdd
fix(llm): _pick_candidate协议感知选端点(404根因)——按模型profile.protocol过滤端点标签,不匹配报真实可行动错误;无标签端点视为通用(向后兼容)
2026-09-05 23:08:17 +08:00
7b6b74646d
docs(readme): 记账三态语义(created/accounted/failed)+出账前置(产品映射+ppid)+worker依赖appbase
2026-09-05 18:53:51 +08:00
0a5974e935
refactor(usage): accounting_status三态语义(created待记账/accounted成功/failed失败,用户定夺)——去na/pending分流,所有成功调用统一created进出账队列,自用vs跨机构由产品层is_self_use分流,成本账不遗漏
2026-09-05 18:13:50 +08:00
5ec2ca8fa4
docs(readme): 同步2026-09-05全部变更——供应商去协议/记账分流usages/媒体转换铁律/异步执行器/API文档端点
2026-09-05 16:10:47 +08:00
1ccb58c5a7
feat(rbac): API文档端点授权any(照sage /bricks/docs先例)——外部开发者调API前可匿名查文档;docs目录+index.ui+四语言md
2026-09-05 16:00:23 +08:00
2ee4b7893c
feat(docs): /v1/docs端点——四语言API文档(中英日韩)+index.ui按_lang分发ApiDoc(照sage docs同款逻辑)
2026-09-05 15:43:20 +08:00
8da377fc81
feat(inference): 媒体文件转换双函数接入模板命名空间(对齐uapi铁律)——data模板b64media2url上传转公网URL/response模板downloadfile2url生成物落地;同类接口参数统一xxx_file契约;异步结果经response模板渲染出media字段
2026-09-05 15:19:27 +08:00
7576ffd6f8
feat(gateway): 模型account_id生效——候选账号池收窄为模型绑定账号(视频模型用百炼账号,防供应商级轮转串号)
2026-09-05 13:11:57 +08:00
c819faef2d
feat(async): 异步模型执行器(提交→轮询query_profile_ids→取结果)+usages用量因子记账;供应商去protocol字段(模式归模型适配模板);修_model_chain漏取profile_id等字段致适配模板从未加载的存量bug
2026-09-05 13:07:08 +08:00
beef2d81a2
feat(capability): 能力枚举补i2v图生视频——字典种子+模型列表注释;修复LLM提取时图生视频被迫塞进t2v的静默错分类
2026-09-05 10:55:13 +08:00
5e9dee1eb7
docs(readme): llm_model说明同步——2026-09起不存单价,定价走ppid
2026-09-05 10:48:52 +08:00
f9b5b60c68
fix(inference): 超时根因双修——报错用repr(TimeoutError空str)+重试print进应用日志;chat_inference支持_timeout单次超时覆盖(上限900秒,长文档提取用)
2026-09-05 10:24:44 +08:00
f965e4b4d6
refactor(llm_model): 删除价格/成本四字段(price/cost input/output)——定价统一走ppid定价平台,记账改路后为死库存;结算cost恒0,展示/列表/迁移同步清理
2026-09-04 21:02:58 +08:00
6feacaf51c
feat(inference): 接purpose透传——_resolve_call/chat_inference支持用途标记,辅助任务(分类/选择/摘要)走辅助模型链,_purpose转发上游前剥离
2026-09-04 19:32:34 +08:00
9fb020b11e
fix(inference): 401真根因——headers模板的api_key占位符被脱敏工具替换成字面***致渲染出***当key;改拼接构造占位符
2026-09-04 18:28:02 +08:00
31a5c73225
fix(inference): 模板渲染兜底修正——原生jinja2.Environment无renders方法(独立脚本环境崩溃);诊断改print(模块logger未接应用日志管道)
2026-09-04 18:26:17 +08:00
26d083bdd2
refactor(inference): 组包借鉴uapi模板渲染——path/headers/body全Jinja2(tmpl_engine.renders+json.loads),api_key走模板命名空间注入;废弃土制字符串替换(401根因方向);内置openai-chat缺省模板,新形态只加profile不改代码
2026-09-04 18:21:10 +08:00
e0c1dc751d
fix(llm): _row_to_dict根因修复——sqlor行是DictObject(dict子类),数据在dict本体,vars()取到空实例__dict__致治理链模型字段全空(策略首次激活时暴露);init.py用量查询同修
2026-09-04 17:25:29 +08:00
611008cb38
feat(llm): 统一推理API(v1/chat/completions+v1/models按能力分类照llmage)+模型选择收敛层selection(下拉/引用解析唯一入口)+旧表迁移脚本;agent调用经llm_bridge HTTP自调用收敛至此
2026-09-04 17:03:48 +08:00
d5dd9f4be2
feat(llm): profile表补path/headers自含字段;model表补query_profile_ids后续步骤模板链(异步模型提交→查询→[下载]);CRUD接helper+placeholder说明
2026-09-04 14:00:15 +08:00
4b6b4a2c95
fix(llm): 供应商CRUD editable接api薄封装(原指向生成目录直写库,端点归一化未生效)
2026-09-03 17:41:26 +08:00
3c3d6a35d3
feat(llm): 端点目录支持一行一URL输入(归一化+中文校验提示);账号APIKEY可配置(加密存储/掩码守卫/空=不改)+机构自动注入+endpoint_ids逗号兼容;CRUD接模块helper薄封装
2026-09-03 17:36:57 +08:00
82470ae7ab
feat(vendor): 所属机构改logined_userorgid自动注入——表单不再手输;org_id移出编辑表单;endpoints字段加格式示例placeholder
2026-09-03 16:21:31 +08:00
dd19641175
fix: endpoint_pref字典parentid缩短为llm_ep_pref——组合键超appcodes_kv.id 32字符限制
2026-09-01 17:31:24 +08:00
f08a906323
Merge branch 'main' of git.opencomputing.cn:yumoqing/pipeline-llm
...
# Conflicts:
# README.md
2026-09-01 17:27:39 +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
93b6e09e0f
Initial commit
2026-09-01 17:21:14 +08:00