You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

42 lines
2.4 KiB

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