Commit Graph

  • 5688842f8c docs(readme): 统一超时预算段(2026-09-16用户裁定单点收敛)——payload._timeout=总预算语义,端点deadline约束重试,端点配置timeout不再掐断attempt,三层对齐铁律+验证特征串 main yumoqing 2026-09-16 18:30:40 +08:00
  • 680afb7f9d feat(timeout): 统一超时预算单点治理(2026-09-16用户裁定:超时逻辑禁散落各产线各角色)——payload._timeout语义升级为一次调用总预算落ctx.budget,_post_upstream按deadline约束重试(总时长≈预算,客户端=预算+60恒覆盖上游,消灭3x预算放大→客户端先断连→模糊TimeoutError→分类器误判永久错误的事故链);attempt超时=剩余预算(合法长生成一次用满,373s实测样本),端点配置timeout(百炼120)不再掐断attempt——供应商参数不知道调用方需求,正是09-05提取/09-14develop/09-16QC三次事故共同根因,仅在直连未传_timeout时与_TOTAL_TIMEOUT取大兜底;预算耗尽(<15s)不再发起必然超时的attempt,抛结构化错误 yumoqing 2026-09-16 17:58:13 +08:00
  • 28c7726ff9 fix(accounting): note列CONCAT前LEFT(200)限长——失败重试轮note已写~185字符(出账异常长文案),出账成功再CONCAT'|accounted:'+orderid直接1406溢出→异常路径回写failed→'修好定价也永远出不了账'死循环(2026-09-16 qwen-image-3.0-pro 39笔实测:钱包已扣+客户账已记但流水状态置failed,重跑靠幂等守卫才安全) yumoqing 2026-09-16 14:21:10 +08:00
  • e7a5d43bd4 docs: 充值登记语义补注——真实充值在供应商侧,平台只做登记,msg带前后值 yumoqing 2026-09-15 17:26:01 +08:00
  • 0335083b71 fix(wallet): 充值登记显示层——msg带回余额/累计充值前后值(登记即见随之改变)+弹窗改VScrollPanel填充防按钮溢出不可点+弹窗放大 yumoqing 2026-09-15 17:23:12 +08:00
  • 123e4aaa74 docs: README钱包节补「充值登记」入口(账号列表工具栏→弹窗→recharge_account) yumoqing 2026-09-15 16:37:22 +08:00
  • a23a0193ab feat(wallet): 供应商账号列表「充值登记」工具栏——选中账号行→弹窗输金额→balance+=充值(复用recharge_account:流水+total_recharge+治理缓存刷新),充值后列表自动刷新,机构隔离同待办弹窗 yumoqing 2026-09-15 16:33:07 +08:00
  • cc2e9c5a50 docs: README端点选择章节改新约定——端点纯连接点可互换(主机根+region+timeout,protocol标签废止),profile.path承载完整相对路径(含版本段),endpoint_ids空=全部,inference删全URL覆盖分支,根治t2t间歇404 yumoqing 2026-09-12 15:21:34 +08:00
  • 3ea03bedc4 refactor(gateway): 端点与模型解绑——删_pick_candidate协议过滤(端点=纯连接点对全模型可互换),endpoint_ids空=全部端点;inference删3处path全URL覆盖分支(模型profile禁把端点写进path);init.normalize_endpoints端点归一主机根+同主机去重+timeout取max。根治t2t间歇404(无profile被轮询到api/v1原生端点拼chat/completions)。2026-09-12用户定夺:模型和端点不能强绑定 yumoqing 2026-09-12 12:35:04 +08:00
  • 0f0757d12b fix(models): llm_usage.project_id标题去内嵌单引号——json2ddl渲染comment不转义,含'0'的title生成CREATE TABLE直接1064语法错(测试机create_tables.py实抓,错误=1即此);哨兵值语义不变 yumoqing 2026-09-11 15:42:04 +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可配,按.后缀动态匹配)+详情弹窗内直接充值 yumoqing 2026-09-11 15:29:40 +08:00
  • 69fe362dde feat(trace): 调用原文追踪「查看IO」前端闭环+按项目费用页(2026-09-10定夺落地) yumoqing 2026-09-11 14:58:21 +08:00
  • 427cd7cbc1 feat(usage): usages全量不截断为计费唯一事实源(m0021删token冗余列)+llm_call_trace上下行原文追踪+project_id按项目统计费用(2026-09-10) yumoqing 2026-09-11 12:51:31 +08:00
  • d086c4f7d2 feat(govern): 能力降级规则i2i→t2i/r2v→t2v(2026-09-08用户定夺,与r2v→t2v同例)——selection加CAP_DEGRADE事实源+degrade_expand,models_catalog候选池含降级源模型,网关备链/owner容错链同能力铁律放行合法降级源,auto_select提示词补降级规则;单向降级反向永远非法 yumoqing 2026-09-08 17:20:39 +08:00
  • fba76a0cdc fix(inference): 同步路径注入prompt便利变量——两路径模板命名空间一致(2026-09-08实测根因) yumoqing 2026-09-08 13:38:02 +08:00
  • eb6ca2f4bb feat(inference): 同步生成执行路径——交互形态第三种(2026-09-08用户定夺:stream/async之外,客户提交后模型即时给出产物) yumoqing 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自动选型) yumoqing 2026-09-07 18:38:25 +08:00
  • 681b4c46b7 chore(scripts): 存档删除5个老MiniMax模型脚本(M2/M2.1/M2.1-highspeed/M2.5/M2.5-highspeed,用户定夺老模型删除;走模块守卫函数+产品映射一并清+共享模板保留,已备份可回滚) yumoqing 2026-09-07 18:05:55 +08:00
  • 9cb6b5abdf chore(scripts): 存档MiniMax定价落库(M3分档五折/M2.7/M2.7-highspeed,不配缓存写入因子-无usage证据)与4模型下线脚本(上游下架,disabled+产品下架,幂等) yumoqing 2026-09-07 17:57:49 +08:00
  • bfaa8c70c8 docs(readme): 记账derived计费双保险(usage原文落库+hour/prompt_tokens_details归一)与定价YAML铁律(备选模式维度不入YAML) yumoqing 2026-09-07 17:32:49 +08:00
  • bf6c752a50 chore(scripts): 存档2026-09-07价目表定价重建脚本(14:08四表被清空后按用户价目表重建9模型定价+改名text-embedding-flash+happyhorse三模型共享ppid+悬空ppid清理,幂等,引擎试算全过) yumoqing 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根因) yumoqing 2026-09-07 16:57:43 +08:00
  • 08cf9272cd feat(selection): 任务自适应自动选型auto_select_model+models_catalog(本机构+owner机构候选,utility语义匹配,owner硬校验双保险);治理链govern_resolve加模型归属校验——他机构模型剔除顺延替代,显式指定越权模型报可行动错误(2026-09-07用户需求) yumoqing 2026-09-07 16:47:21 +08:00
  • c9806aed6b docs(readme): 宿主接入清单入口名更新为规范名 load_pipeline_llm(旧名 load_llm 为别名) yumoqing 2026-09-07 14:59:26 +08:00
  • 23ebc7fc17 refactor: load_llm 规范化为 load_pipeline_llm(load_<模块名>约定)+保留旧名别名(accounting_worker 零改动) yumoqing 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用户定夺) yumoqing 2026-09-07 13:24:31 +08:00
  • 34ef256fe6 feat(llm): 供应商账号改为供应商CRUD子表(llm_account_by_vendor)——弹窗进入只显示/处理选定供应商账号;账号归属服务端守卫(vendor_id不可改/跨供应商禁删);删独立账号列表页(index.ui卡片同步移除) yumoqing 2026-09-06 21:51:05 +08:00
  • c16bdb4a28 docs(readme): llm_api_profile复用键改协议×能力×形态指纹 yumoqing 2026-09-06 19:51:58 +08:00
  • 8e32cb85f3 feat(llm): 会话agent可选模型收窄为对话能力t2t/i2t/m2t+能力字典加m2t(2026-09-06用户定夺) yumoqing 2026-09-06 19:32:22 +08:00
  • 671d320d59 feat(llm): status统一枚举SUCCEEDED/FAILED/PENDING/RUNNING+非SUCCEEDED记账状态NULL;llm_api_profile加method独立列(2026-09-06用户定夺) yumoqing 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 yumoqing 2026-09-06 10:23:01 +08:00
  • c3cf1a3a4f feat(llm): 能力字典加r2v(参考生视频)/i2i(图生图)——种子+models.dspy端点注释两处同步 yumoqing 2026-09-06 09:30:12 +08:00
  • 852814678a fix(llm): _join_url拼接去重base_url已有路径前缀(模板path带/api/v1+端点/api/v1双前缀404) yumoqing 2026-09-05 23:28:16 +08:00
  • 9f0691f0b7 fix(llm): 协议匹配端点存在时只选匹配项(排除未标注)——防同账号多端点按序选到compatible-mode再404(自查发现) yumoqing 2026-09-05 23:11:56 +08:00
  • 51d1e4ccdd fix(llm): _pick_candidate协议感知选端点(404根因)——按模型profile.protocol过滤端点标签,不匹配报真实可行动错误;无标签端点视为通用(向后兼容) yumoqing 2026-09-05 23:08:17 +08:00
  • 7b6b74646d docs(readme): 记账三态语义(created/accounted/failed)+出账前置(产品映射+ppid)+worker依赖appbase yumoqing 2026-09-05 18:53:51 +08:00
  • 0a5974e935 refactor(usage): accounting_status三态语义(created待记账/accounted成功/failed失败,用户定夺)——去na/pending分流,所有成功调用统一created进出账队列,自用vs跨机构由产品层is_self_use分流,成本账不遗漏 yumoqing 2026-09-05 18:13:50 +08:00
  • 5ec2ca8fa4 docs(readme): 同步2026-09-05全部变更——供应商去协议/记账分流usages/媒体转换铁律/异步执行器/API文档端点 yumoqing 2026-09-05 16:10:47 +08:00
  • 1ccb58c5a7 feat(rbac): API文档端点授权any(照sage /bricks/docs先例)——外部开发者调API前可匿名查文档;docs目录+index.ui+四语言md yumoqing 2026-09-05 16:00:23 +08:00
  • 2ee4b7893c feat(docs): /v1/docs端点——四语言API文档(中英日韩)+index.ui按_lang分发ApiDoc(照sage docs同款逻辑) yumoqing 2026-09-05 15:43:20 +08:00
  • 8da377fc81 feat(inference): 媒体文件转换双函数接入模板命名空间(对齐uapi铁律)——data模板b64media2url上传转公网URL/response模板downloadfile2url生成物落地;同类接口参数统一xxx_file契约;异步结果经response模板渲染出media字段 yumoqing 2026-09-05 15:19:27 +08:00
  • 7576ffd6f8 feat(gateway): 模型account_id生效——候选账号池收窄为模型绑定账号(视频模型用百炼账号,防供应商级轮转串号) yumoqing 2026-09-05 13:11:57 +08:00
  • c819faef2d feat(async): 异步模型执行器(提交→轮询query_profile_ids→取结果)+usages用量因子记账;供应商去protocol字段(模式归模型适配模板);修_model_chain漏取profile_id等字段致适配模板从未加载的存量bug yumoqing 2026-09-05 13:07:08 +08:00
  • beef2d81a2 feat(capability): 能力枚举补i2v图生视频——字典种子+模型列表注释;修复LLM提取时图生视频被迫塞进t2v的静默错分类 yumoqing 2026-09-05 10:55:13 +08:00
  • 5e9dee1eb7 docs(readme): llm_model说明同步——2026-09起不存单价,定价走ppid yumoqing 2026-09-05 10:48:52 +08:00
  • f9b5b60c68 fix(inference): 超时根因双修——报错用repr(TimeoutError空str)+重试print进应用日志;chat_inference支持_timeout单次超时覆盖(上限900秒,长文档提取用) yumoqing 2026-09-05 10:24:44 +08:00
  • f965e4b4d6 refactor(llm_model): 删除价格/成本四字段(price/cost input/output)——定价统一走ppid定价平台,记账改路后为死库存;结算cost恒0,展示/列表/迁移同步清理 yumoqing 2026-09-04 21:02:58 +08:00
  • 6feacaf51c feat(inference): 接purpose透传——_resolve_call/chat_inference支持用途标记,辅助任务(分类/选择/摘要)走辅助模型链,_purpose转发上游前剥离 yumoqing 2026-09-04 19:32:34 +08:00
  • 9fb020b11e fix(inference): 401真根因——headers模板的api_key占位符被脱敏工具替换成字面***致渲染出***当key;改拼接构造占位符 yumoqing 2026-09-04 18:28:02 +08:00
  • 31a5c73225 fix(inference): 模板渲染兜底修正——原生jinja2.Environment无renders方法(独立脚本环境崩溃);诊断改print(模块logger未接应用日志管道) yumoqing 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不改代码 yumoqing 2026-09-04 18:21:10 +08:00
  • e0c1dc751d fix(llm): _row_to_dict根因修复——sqlor行是DictObject(dict子类),数据在dict本体,vars()取到空实例__dict__致治理链模型字段全空(策略首次激活时暴露);init.py用量查询同修 yumoqing 2026-09-04 17:25:29 +08:00
  • 611008cb38 feat(llm): 统一推理API(v1/chat/completions+v1/models按能力分类照llmage)+模型选择收敛层selection(下拉/引用解析唯一入口)+旧表迁移脚本;agent调用经llm_bridge HTTP自调用收敛至此 yumoqing 2026-09-04 17:03:48 +08:00
  • d5dd9f4be2 feat(llm): profile表补path/headers自含字段;model表补query_profile_ids后续步骤模板链(异步模型提交→查询→[下载]);CRUD接helper+placeholder说明 yumoqing 2026-09-04 14:00:15 +08:00
  • 4b6b4a2c95 fix(llm): 供应商CRUD editable接api薄封装(原指向生成目录直写库,端点归一化未生效) yumoqing 2026-09-03 17:41:26 +08:00
  • 3c3d6a35d3 feat(llm): 端点目录支持一行一URL输入(归一化+中文校验提示);账号APIKEY可配置(加密存储/掩码守卫/空=不改)+机构自动注入+endpoint_ids逗号兼容;CRUD接模块helper薄封装 yumoqing 2026-09-03 17:36:57 +08:00
  • 82470ae7ab feat(vendor): 所属机构改logined_userorgid自动注入——表单不再手输;org_id移出编辑表单;endpoints字段加格式示例placeholder yumoqing 2026-09-03 16:21:31 +08:00
  • dd19641175 fix: endpoint_pref字典parentid缩短为llm_ep_pref——组合键超appcodes_kv.id 32字符限制 yumoqing 2026-09-01 17:31:24 +08:00
  • f08a906323 Merge branch 'main' of git.opencomputing.cn:yumoqing/pipeline-llm yumoqing 2026-09-01 17:27:39 +08:00
  • 660ad21365 feat(pipeline-llm): 模型治理模块v1.0.0 — 供应商/端点目录/账号钱包/模型注册/组织容错策略/限额限流/双维度记账 yumoqing 2026-09-01 17:27:17 +08:00
  • 93b6e09e0f Initial commit yumoqing 2026-09-01 17:21:14 +08:00