package console import "yunyan/comm" // 会议记录服务编排 (echomeet orchestration)。 // // 与旧的 echomeet_svc_config(每应用一份、在业务库、自己存凭据)不同: // 编排**不存凭据**,只引用「第三方服务配置」(svc_config) 里配好的服务 id,按 // 作用域 = (app_name, region) 分层:app_name='' 且 region=0 是「全局默认」兜底, // 越具体越优先。凭据、区域覆盖都由 svc_config / svc_region_override 那一套负责。 // // 三类(Kind)各自映射到服务池的服务类别,管理端选服务时按此过滤: // 识别 → svcCatASRFile(8);翻译 → svcCatMT(3);总结 → svcCatLLM(5) + svcCatLLMVision(9)。 // 识别/翻译按 Priority 升序选路,总结按 IsDefault + ClientVisible + 应用级开关。 // // 存 console 共享库(postgres),与 svc_config 同库,便于 join 服务名/解析下发。 // // ⚠️ 回调地址契约(下发时必须遵守):录音文件识别服务的 callback_path 字段存的是**相对路径** // (如 /api/home/echomeet_backcall),不是完整 URL——同一个服务会被所有应用共用,而各应用/部署 // 的对外地址不同,写死完整 URL 只对一个应用有效。 // 完整回调 = 该部署的对外地址(AppRegistry.BaseUrl) + callback_path,**由 console 在下发时拼接** // (console 才有注册表里的 base_url;业务服务未必知道自己的对外地址,尤其多区域部署)。 // 下发解析顺序:(app,region) → (app,0) → ('',region) → ('',0) 全局默认兜底,越具体越优先。 // 编排类别(会议记录三段)。常量已下沉 comm(echomeet 运行时按 kind 消费编排),此处保留包内别名。 const ( echoKindASR = comm.EchoKindASR // 识别(录音文件转写) echoKindMT = comm.EchoKindMT // 翻译 echoKindLLM = comm.EchoKindLLM // 总结(大模型) ) // echoKindSvcCats 各编排类别对应的服务池类别(前端选服务时按此过滤,后端校验 svc_id 归属用)。 var echoKindSvcCats = map[int32][]int32{ echoKindASR: {svcCatASRFile}, echoKindMT: {svcCatMT}, echoKindLLM: {svcCatLLM, svcCatLLMVision}, } // EchoOrchestration / EchoOrchSetting 结构已下沉到 comm/svcpool.go(echomeet 运行时直读消费), // console 侧用 type alias 引用,包内代码零改动。 type EchoOrchestration = comm.EchoOrchestration type EchoOrchSetting = comm.EchoOrchSetting