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.
 
 
 
 
 
 

271 lines
11 KiB

syntax = "proto3";
option go_package = ".;pb";
import "echomeet/echomeet_db.proto";
//获取会议记录模板
message EchomeetGetTemplatesReq{
string language = 1; //@go_tags(`json:"language"`) 语言
}
message EchomeetGetTemplatesResp{
repeated DBEchoMeetTemplate templates = 1; //@go_tags(`json:"templates"`) //会议记录模板列表
}
//添加模版
message EchomeetAddTemplateReq{
DBEchoMeetTemplate template = 1; //@go_tags(`json:"template"`) //会议记录模板
}
message EchomeetAddTemplateResp{
DBEchoMeetTemplate template = 1; //@go_tags(`json:"template"`) //会议记录模板
}
//更新模版
message EchomeetUpdateTemplateReq{
DBEchoMeetTemplate template = 1; //@go_tags(`json:"template"`) //会议记录模板
}
message EchomeetUpdateTemplateResp{
DBEchoMeetTemplate template = 1; //@go_tags(`json:"template"`) //会议记录模板
}
//删除模版
message EchomeetDeleteTemplateReq{
repeated uint64 ids = 1; //@go_tags(`json:"ids"`) //会议记录模板id列表
}
message EchomeetDeleteTemplateResp{
repeated uint64 ids = 1; //@go_tags(`json:"ids"`) //删除的会议记录模板id列表
}
//请求历史记录
message EchomeetGetAllRecordsReq{
}
message EchomeetGetAllRecordsResp{
repeated DBEchoMeetRecord records = 1; //@go_tags(`json:"records"`) //会议记录列表
}
//请求历史记录
message EchomeetGetRecordsReq{
repeated uint64 ids = 1; //@go_tags(`json:"ids"`) //会议记录id
}
message EchomeetGetRecordsResp{
repeated DBEchoMeetRecord records = 1; //@go_tags(`json:"records"`) //会议记录列表
}
//请求历史记录
message EchomeetGetRecordReq{
uint64 id = 1; //@go_tags(`json:"id"`) //会议记录id
}
message EchomeetGetRecordResp{
DBEchoMeetRecord record = 1; //@go_tags(`json:"record"`) //会议记录
}
//上传历史记录
message EchomeetPutRecordsReq{
repeated DBEchoMeetRecord records = 1; //@go_tags(`json:"records"`) //会议记录列表
repeated string delids = 2; //@go_tags(`json:"delids"`) //删除的会议记录id列表
}
message EchomeetPutRecordsResp{
}
message EchomeetAddRecordReq{
string title = 1; //@go_tags(`json:"title"`) //标题
string rtype = 2; //@go_tags(`json:"rtype"`) //类型
string filepath = 3; //@go_tags(`json:"filepath"`) //音频文件路径
repeated ContextStruct original = 4; //@go_tags(`gorm:"original" json:"original"`) 听写内容
int32 seconds = 5; //@go_tags(`json:"seconds"`) //时长
int64 size = 6; //@go_tags(`json:"size"`) //文件大小
string remark = 7; //@go_tags(`json:"remark"`) //用户备注(参与AI总结)
repeated string imageurls = 8; //@go_tags(`json:"imageurls"`) //注释图片url列表(作为多模态内容参与AI总结)
}
message EchomeetAddRecordResp{
DBEchoMeetRecord record = 1; //@go_tags(`json:"record"`) //会议记录
}
//上传下载记录
message EchomeetUpRecordReq{
uint64 id = 1; //@go_tags(`json:"id"`) //会议记录id
string audiourl = 2; //@go_tags(`json:"audiourl"`) //音频url
}
//上传下载记录响应
message EchomeetUpRecordResp{
DBEchoMeetRecord record = 1; //@go_tags(`json:"record"`) //会议记录
}
message EchomeetStartTaskReq{
uint64 id = 1; //@go_tags(`json:"id"`) //会议记录id
string formlanguage = 2; //@go_tags(`json:"formlanguage"`) //语言
string tolanguage = 3; //@go_tags(`json:"tolanguage"`) //目标语言
bool isdistinguishspeaker = 4; //@go_tags(`json:"isdistinguishspeaker"`) //是否区分说话人
uint64 templateid = 5; //@go_tags(`json:"templateid"`) //会议记录模版索引id
string tid = 6; //@go_tags(`json:"tid"`) //会议记录模板tid
string summary_svc_id = 8; //@go_tags(`json:"summary_svc_id"`) //客户端指定的总结大模型服务id(须在可选列表内且后台开关允许,否则用默认);识别/翻译由后台编排选路,客户端不可指定
}
message EchomeetStartTaskResp{
}
// 回调数据的根结构
message EchomeetCallbackReq {
int32 code = 1; // 状态码(20000000=成功)
string message = 2; // 状态描述(Success/失败原因)
string id = 3; // 任务ID
RecognitionResult result = 4; // 识别结果
AudioInfo audio_info = 5; // 音频信息
string callback_data = 6; // 自定义回调数据(你日志中的liwei1dap)
}
message EchomeetCallbackResp{
}
//重新总结请求
message EchomeetSummaryReq {
uint64 id = 1; //@go_tags(`json:"id"`) //会议记录id
uint64 templateid = 5; //@go_tags(`json:"templateid"`) //会议记录模板id
string tid = 6; //@go_tags(`json:"tid"`) //会议记录模板tid
string tolanguage = 7; //@go_tags(`json:"tolanguage"`) 语言
string summary_svc_id = 9; //@go_tags(`json:"summary_svc_id"`) //客户端指定的总结大模型服务id,留空沿用记录已有/后台默认
}
message EchomeetSummaryResp{
}
//获取客户端可选的总结大模型服务列表(识别/翻译由后台编排选路,不下发)
message EchomeetGetSummaryServicesReq{
}
//可选总结服务项
message EchomeetSummaryServiceItem{
string svc_id = 1; //@go_tags(`json:"svc_id"`) //服务id(starttask/summary 的 summary_svc_id 传它)
string name = 2; //@go_tags(`json:"name"`) //服务显示名
bool is_default = 3; //@go_tags(`json:"is_default"`) //是否后台默认模型
}
message EchomeetGetSummaryServicesResp{
bool client_choice = 1; //@go_tags(`json:"client_choice"`) //后台是否允许客户端指定总结模型;false 时 services 仅含默认项、传 summary_svc_id 会被忽略
repeated EchomeetSummaryServiceItem services = 2; //@go_tags(`json:"services"`) //可选服务列表
}
//获取会议记录能力清单:支持的语言 + 可选总结大模型。全部来自后台配置(第三方服务的 languages 字段
//+「会议记录服务」编排),服务端下发,客户端不写死。getsummaryservices 是本接口的子集,保留兼容。
message EchomeetGetCapabilitiesReq{
}
message EchomeetGetCapabilitiesResp{
repeated string transcribe_languages = 1; //@go_tags(`json:"transcribe_languages"`) //录音识别支持的语言(BCP-47):后台在用的识别服务 languages 并集,按优先级顺序去重
bool transcribe_any_language = 2; //@go_tags(`json:"transcribe_any_language"`) //true=存在未限定语言的识别服务,实际不受上面的列表约束
repeated string translate_languages = 3; //@go_tags(`json:"translate_languages"`) //翻译支持的目标语言(BCP-47),口径同上
bool translate_any_language = 4; //@go_tags(`json:"translate_any_language"`) //true=存在未限定语言的翻译服务
bool client_choice = 5; //@go_tags(`json:"client_choice"`) //后台是否允许客户端指定总结模型;false 时 summary_services 仅含默认项、传 summary_svc_id 会被忽略
repeated EchomeetSummaryServiceItem summary_services = 6; //@go_tags(`json:"summary_services"`) //可选总结大模型列表
}
//已阅会议记录
message EchomeetReadRecordReq{
uint64 id = 1; //@go_tags(`json:"id"`) //会议记录id
}
message EchomeetReadRecordResp{
}
//修改会议记录
message EchomeetModifyRecordsReq{
uint64 id = 1; //@go_tags(`json:"id"`) //会议记录id
string title = 2; //@go_tags(`json:"title"`) //标题
string address = 3; //@go_tags(`json:"address"`) //地址
string personnel = 4; //@go_tags(`json:"personnel"`) //人员
string translate = 5; //@go_tags(`json:"translate"`) //内容
string summary = 6; //@go_tags(`json:"summary"`) //总结
}
message EchomeetModifyRecordsResp{
DBEchoMeetRecord record = 1; //@go_tags(`json:"record"`) //会议记录
}
//删除会议记录
message EchomeetDelRecordsReq{
repeated uint64 ids = 1; //@go_tags(`json:"ids"`) //会议记录id列表
}
message EchomeetDelRecordsResp{
repeated uint64 ids = 1; //@go_tags(`json:"ids"`) //删除的会议记录id列表
}
// 阿里云录音文件转写回调
message EchomeetAliCallbackReq {
int32 StatusCode = 1; // 状态码 21050000=运行中 21050001=成功 21050002=失败
string TaskId = 2; // 任务ID
string StatusText = 3; // 状态描述
string RequestId = 4; // 请求ID
EchomeetAliCallbackResult Result = 5; // 转写结果
}
message EchomeetAliCallbackResult {
repeated EchomeetAliSentence Sentences = 1; // 句子列表
}
message EchomeetAliSentence {
string Text = 1; // 转写文本
int64 BeginTime = 2; // 开始时间(ms)
int64 EndTime = 3; // 结束时间(ms)
string SpeakerId = 4; // 说话人ID
int32 ChannelId = 5; // 通道ID
}
message EchomeetAliCallbackResp {
}
// ============================== 会议纪要分享 ==============================
//
// 分享链接形如 https://share.ymaikj.com/share/{serverHost}/{brand}/{id}/{ticket}
//
// ⚠️ 2026-09-23 之前客户端把**用户的登录 JWT**直接拼进这个 URL,谁拿到链接就拿到了
// 整个账号。现在改成服务端签发的分享票据:只含一条记录、只读、有有效期。
message EchomeetCreateShareLinkReq{
uint64 id = 1; //@go_tags(`json:"id"`) 会议记录id
int32 expiredays = 2; //@go_tags(`json:"expiredays"`) 有效天数,<=0 用默认(7),上限 30
}
message EchomeetCreateShareLinkResp{
string ticket = 1; //@go_tags(`json:"ticket"`) 分享票据,拼进落地页 URL 的最后一段
int64 expiretime = 2; //@go_tags(`json:"expiretime"`) 到期时间 unix 秒
}
// 落地页按票据取只读内容。**免登录**,须在 gateway 的 WhiteList 里。
message EchomeetGetSharedRecordReq{
string ticket = 1; //@go_tags(`json:"ticket"`) 分享票据
}
// 只回落地页要展示的字段。刻意不含 uid / filepath / taskid / logid / *_svc_id:
// 这是一个任何人凭链接就能打开的接口,多回一个字段就是多泄一份内部信息。
message EchomeetGetSharedRecordResp{
uint64 id = 1; //@go_tags(`json:"id"`) 会议记录id
string title = 2; //@go_tags(`json:"title"`) 标题
int64 creationtime = 3; //@go_tags(`json:"creationtime"`) 创建时间 unix 秒
int32 seconds = 4; //@go_tags(`json:"seconds"`) 时长 秒
string audiourl = 5; //@go_tags(`json:"audiourl"`) 音频url
string original = 6; //@go_tags(`json:"original"`) 听写内容
string translate = 7; //@go_tags(`json:"translate"`) 翻译
string overview = 8; //@go_tags(`json:"overview"`) 短总结
string summary = 9; //@go_tags(`json:"summary"`) 总结
string formlanguage = 10; //@go_tags(`json:"formlanguage"`) 源语言
string tolanguage = 11; //@go_tags(`json:"tolanguage"`) 目标语言
int64 expiretime = 12; //@go_tags(`json:"expiretime"`) 本链接到期时间 unix 秒
}