coze-studio/idl/conversation/message.thrift

218 lines
8.5 KiB
Thrift
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

include "../base.thrift"
include "common.thrift"
namespace go conversation.message
enum LoadDirection {
Unknown = 0
Prev = 1
Next = 2
}
const string OrderByDesc = "DESC"
const string OrderByAsc = "ASC"
enum MsgParticipantType {
Bot = 1
User = 2
}
// follow copilot 定义的枚举
enum ChatMessageMetaType {
Default_0 = 0; // Compatible value
Replaceable = 1; // 端侧直接替换
Insertable = 2; // 插入引用
DocumentRef = 3; // 文档引用
KnowledgeCard = 4; // 知识库引用卡片
EmbeddedMultimedia = 100; // 嵌入的多媒体信息只是alice给端上用的因为全链路复用这一个字段所以在这儿改了
}
struct ExtraInfo {
1 : string local_message_id,
2 : string input_tokens ,
3 : string output_tokens ,
4 : string token ,
5 : string plugin_status , // "success" or "fail"
6 : string time_cost ,
7 : string workflow_tokens ,
8 : string bot_state ,
9 : string plugin_request ,
10: string tool_name ,
11: string plugin ,
12: string mock_hit_info ,
13: string log_id ,
14: string stream_id ,
15: string message_title ,
16: string stream_plugin_running ,
17: string new_section_id,
18: string remove_query_id,
19: string execute_display_name,
20: string task_type, // 对应定时任务task_type1-预设任务2-用户任务3-Plugin后台任务
21: string refer_format //agent app使用引用格式
22: string call_id,
}
struct MsgParticipantInfo{
1: string id
2: MsgParticipantType type
3: string name
4: string desc
5: string avatar_url
6: string space_id
7: string user_id
8: string user_name
9: bool allow_mention
10: string access_path
11: bool is_fav // 是否被收藏
// 12: shortcut_command.ShortcutStruct shortcuts //快捷指令
13: bool allow_share // 是否允许被分享
}
//struct InterruptFunction {
// 1: string name
// 2: string arguments
//}
//struct InterruptRequireInfo {
// 1: string require_fields
// 2: string name
//}
struct InterruptPlugin {
1: string id
2: string type // 1 function, 2 require_info
// 3: InterruptFunction function = 3;
// 4: InterruptRequireInfo require_info = 4;
}
struct SubmitToolOutputs {
1: list<InterruptPlugin> tool_calls
}
// 和 bot_connector_platform保持同步
struct RequiredAction {
1 : string type
2 :SubmitToolOutputs submit_tool_outputs
}
struct ChatMessageMetaInfo{
1: ChatMessageMetaType type,
2: string info,
}
struct ChatMessage {
1 : string role ,
2 : string type ,
3 : string content ,
4 : string content_type,
5 : string message_id ,
6 : string reply_id ,
7 : string section_id ,
8 : ExtraInfo extra_info ,
9 : string status , // 正常、打断状态 拉消息列表时使用chat运行时没有这个字段
10: optional i32 broken_pos , // 打断位置
11: optional string sender_id,
12: optional list<MsgParticipantInfo> mention_list,
13: i64 content_time,
14: i64 message_index (api.js_conv='true' go.tag="json:\"message_index,string\""),
15: i32 source , // 消息来源0 普通聊天消息1 定时任务2 通知3 异步结果
16: optional ChatMessage reply_message, // 对应回复的query 找不到后端加一个兜底的
17: optional RequiredAction required_action // 打断信息
18: optional list<ChatMessageMetaInfo> meta_infos, // 引用、高亮等文本标记
19: optional map<string,string> card_status // 卡片状态
20: optional string reasoning_content //模型思维链
}
struct GetMessageListRequest {
1: string conversation_id
2: required string cursor // 首次传0/-10-最后一页,-1-未读第一页
3: required i32 count
4: string bot_id
5: optional bool draft_mode
6: optional string preset_bot // 使用的bot模版
7: optional common.Scene scene
8: optional string biz_kind // 同一个bot和uid下面的不同业务情况
9: optional list<string> insert_history_message_list // 存在创建聊天记录前需要插入聊天的情况
10: optional LoadDirection load_direction
11: optional bool must_append // 在已有conversation情况下是否强制append message
12: optional i64 share_id (api.js_conv='true' go.tag="json:\"share_id,string\"") // 分享ID
}
struct GetMessageListResponse {
1: required list<ChatMessage> message_list
2: required string cursor // 下一刷存在时的位置向上翻页与next_cursor翻页方向相反。兼容旧逻辑不加prev前缀
3: required bool hasmore // 下一刷是否存在向上翻页与next_has_more翻页方向相反。兼容旧逻辑不加prev前缀
4: required string conversation_id
5: optional string last_section_id // 会话最新的section_id 只有第一刷返回
6: i64 code
7: string msg
8: optional map<string, MsgParticipantInfo> participant_info_map
9: string next_cursor // 下一刷存在时的位置(向下翻页),
10: bool next_has_more // 下一刷是否存在(向下翻页)
11: i64 read_message_index (api.js_conv='true' go.tag="json:\"read_message_index,string\"")
12: string connector_conversation_id //botconnector对应的id
}
struct DeleteMessageRequest {
1: required i64 conversation_id (api.js_conv='true')
2: required i64 message_id (api.js_conv='true')
3: optional common.Scene scene
4: optional i64 bot_id (api.js_conv='true')
}
struct DeleteMessageResponse {
1: i64 code
2: string msg
}
struct BreakMessageRequest {
1: required i64 conversation_id (api.js_conv='true') //会话id
2: required i64 query_message_id (api.js_conv='true')// 当前问题id
3: optional i64 answer_message_id (api.js_conv='true') // 当前问题下哪一条回复被打断了
4: optional i32 broken_pos // 打断位置
5: optional common.Scene scene
}
struct BreakMessageResponse {
1: i64 code
2: string msg
}
//批量查询
struct ListMessageApiRequest {
1: required i64 conversation_id (api.query = "conversation_id",api.js_conv='true') //会话id
2: optional i64 limit (api.body = "limit") // 限制条数
3: optional string order (api.body = "order") // 排序方式 desc/asc
4: optional i64 chat_id (api.body = "chat_id",api.js_conv='true') //一次对话的id
5: optional i64 before_id (api.body = "before_id",api.js_conv='true') // 向前翻页需要传的ID
6: optional i64 after_id (api.body = "after_id",api.js_conv='true') // 向后返回需要传的ID
255: base.Base Base
}
struct OpenMessageApi {
1: i64 id (api.js_conv='true')// 主键ID
2: i64 bot_id (api.js_conv='true') // agent id
3: string role // user / assistant/tool
4: string content //消息内容
5: i64 conversation_id //会话id
6: map<string,string> meta_data // 自定义字段
7: i64 created_at //创建时间
8: i64 updated_at //更新时间
9: i64 chat_id // 一次对话的id
10: string content_type // content 类型 text/mix
11: string type //消息类型 answer/question/function_call/tool_response
12: string section_id // 会话的section_id
13: optional string reasoning_content //模型思维链
}
struct ListMessageApiResponse {
1: optional list<OpenMessageApi> messages (api.body = "data")
2: optional bool has_more (api.body = "has_more") // 是否还有数据true 有false 没有
3: optional i64 first_id (api.body = "first_id",api.js_conv='true') // 第一条数据的id
4: optional i64 last_id (api.body = "last_id",api.js_conv='true') // 最后一条数据的id
}