扣子智能体
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.
 
 
 
 
 
 

256 lines
8.8 KiB

include "../base.thrift"
include "common.thrift"
include "message.thrift"
namespace go conversation.run
struct parametersStruct {
1 : string value
2 : string resource_type // "uri"
}
// content type
const string ContentTypeText = "text"
const string ContentTypeImage = "image"
const string ContentTypeAudio = "audio"
const string ContentTypeVideo = "video"
const string ContentTypeLink = "link"
const string ContentTypeMusic = "music"
const string ContentTypeCard = "card"
const string ContentTypeAPP = "app"
const string ContentTypeFile = "file"
const string ContentTypeMix = "mix"
const string ContentTypeMixApi = "object_string"
// event type
const string RunEventMessage = "message"
const string RunEventDone = "done"
const string RunEventError = "error"
struct MixContentModel {
1:list<Item> item_list
2:list<Item> refer_items
}
struct Item {
1: string type
2: string text
3: Image image
4: File file
}
struct ImageDetail {
1:string url
2:i32 width
3:i32 height
}
struct File {
1:string file_key
2:string file_name
3:string file_type
4:i64 file_size
6:string file_url
}
struct Image {
1: string key
2:ImageDetail image_thumb
3:ImageDetail image_ori
}
struct Tool {
1 : i64 plugin_id (api.js_conv='true')
2 : map<string,parametersStruct> parameters
3 : string api_name
4 : i64 tool_id (api.js_conv='true')
}
enum DiffModeIdentifier {
ChatWithA = 1
ChatWithB = 2
}
struct AdditionalContent {
1: required string type
2: optional string text
3: optional string file_url
4: optional i64 file_id (api.js_conv='true')
}
struct AgentRunRequest {
1 : i64 bot_id (api.js_conv='true') , //agent id
2 : required i64 conversation_id (api.js_conv='true') , // session id
5 : required string query ,
7 : map<string,string> extra , // ext pass-through field
9 : map<string,string> custom_variables ,
10: optional bool draft_mode , // Draft bot or online bot
11: optional common.Scene scene , // Explore the scene
12: optional string content_type , // Files files pictures images etc
13: optional i64 regen_message_id (api.js_conv='true') , // Retry message id
14: optional string local_message_id , // The local message_id on the front end is passed back in the extra_info
15: optional string preset_bot , // The bot template used, instead of bot_id bot_version draft_mode parameters, coze home uses preset_bot = "coze_home"
16: optional list<string> insert_history_message_list,
17: optional string device_id,
18: optional i64 space_id (api.js_conv='true'),
19: optional list<message.MsgParticipantInfo> mention_list,
20: optional list<Tool> toolList
21: optional string commit_version
22: optional string sub_scene // Scene granularity further distinguish scenes, currently only used for bot templates = bot_template
23: optional DiffModeIdentifier diff_mode_identifier // Chat configuration in diff mode, draft only single bot
24: optional i64 shortcut_cmd_id (api.js_conv='true')
}
struct RunStreamResponse {
1: required message.ChatMessage message
2: optional bool is_finish
3: required i32 index
4: required string conversation_id
5: required i32 seq_id
}
struct AgentRunResponse {
1: i64 code
2: string msg
}
struct ErrorData {
1: i64 code
2: string msg
}
struct CustomConfig {
1: optional ModelConfig ModelConfig (api.body = "model_config")
2: optional BotConfig BotConfig (api.body = "bot_config")
}
struct ModelConfig{
1: optional string ModelID (api.body="model_id")
}
struct BotConfig{
1: optional string CharacterName (api.body="character_name")
2: optional string Prompt (api.body="propmt")
}
struct ShortcutCommandDetail {
1: required i64 command_id (api.js_conv='true')
2: map<string,string> parameters // Key = parameter name value = value object_string JSON String after object array serialization
}
struct ChatV3Request {
1: required i64 BotID (api.body = "bot_id",api.js_conv='true'), //agent_id
2: optional i64 ConversationID (api.query = "conversation_id", api.js_conv='true'), //conversation_id
3: required string User (api.body = "user_id"), //user_id, data isolation identification, need to ensure unique
4: optional bool Stream (api.body = "stream"), //Whether to stream, currently only supports churn.
5: optional list<EnterMessage> AdditionalMessages (api.body = "additional_messages"), //In this conversation message, only role = user is currently supported.
6: optional map<string,string> CustomVariables (api.body = "custom_variables"), //user-defined variables
8: optional map<string, string> MetaData (api.body = "meta_data")
10:optional CustomConfig CustomConfig (api.body = "custom_config")
11:optional map<string, string> ExtraParams (api.body = "extra_params") // Pass parameters to plugin/workflow etc downstream
12:optional i64 ConnectorID (api.body="connector_id", api.js_conv='true') // Manually specify channel id chat. Currently only supports websdk (= 999)
13:optional ShortcutCommandDetail ShortcutCommand (api.body="shortcut_command") // Specify shortcut instructions
}
struct ChatV3MessageDetail {
1: required string ID (api.body = "id"),
2: required string ConversationID (api.body = "conversation_id"),
3: required string BotID (api.body = "bot_id"),
4: required string Role (api.body = "role"),
5: required string Type (api.body = "type"),
6: required string Content (api.body = "content"),
7: required string ContentType (api.body = "content_type"),
8: optional map<string, string> MetaData (api.body = "meta_data"),
9: required string ChatID (api.body = "chat_id")
10: optional string SectionID (api.body="section_id")
11: optional i64 CreatedAt (api.body = "created_at")
12: optional i64 UpdatedAt (api.body = "updated_at")
13: optional string ReasoningContent (api.body = "reasoning_content")
}
struct EnterMessage {
1: string Role (api.body = "role"), // user / assistant
2: string Content (api.body = "content"), // If it is not text, you need to parse JSON.
3: map<string,string> MetaData (api.body = "meta_data"),
4: string ContentType (api.body = "content_type"), // text, card, object_string
5: optional string Type (api.body = "type")
6: optional string Name (api.body = "name")
}
struct LastError {
1: required i32 Code (api.body = "code"),
2: required string Msg (api.body = "msg"),
}
struct Usage {
1: optional i32 TokenCount (api.body = "token_count"),
2: optional i32 OutputTokens (api.body = "output_count"),
3: optional i32 InputTokens (api.body = "input_count"),
}
struct RequiredAction {
1: string Type (api.body = "type"),
2: SubmitToolOutputs SubmitToolOutputs (api.body = "submit_tool_outputs")
}
struct SubmitToolOutputs {
1: list<InterruptPlugin> ToolCalls (api.body = "tool_calls")
}
struct InterruptPlugin {
1: string id
2: string type
3: InterruptFunction function
4: InterruptRequireInfo require_info
}
struct InterruptFunction {
1: string name
2: string arguments
}
struct InterruptRequireInfo {
1: list<string> infos
}
struct ChatV3ChatDetail {
1: required i64 ID (api.body = "id",api.js_conv='true'),
2: required i64 ConversationID (api.body = "conversation_id",api.js_conv='true'),
3: required i64 BotID (api.body = "bot_id",api.js_conv='true'),
4: optional i32 CreatedAt (api.body = "created_at"),
5: optional i32 CompletedAt (api.body = "completed_at"),
6: optional i32 FailedAt (api.body = "failed_at"),
7: optional map<string, string> MetaData (api.body = "meta_data"),
8: optional LastError LastError (api.body = "last_error"),
9: required string Status (api.body = "status"),
10: optional Usage Usage (api.body = "usage"),
11: optional RequiredAction RequiredAction (api.body = "required_action")
12: optional i64 SectionID (api.body="section_id",api.js_conv='true')
}
// no stream
struct ChatV3Response {
1: optional ChatV3ChatDetail ChatDetail (api.body = "data"),
2: required i32 Code (api.body = "code"),
3: required string Msg (api.body = "msg")
}
struct CancelChatApiRequest {
1: required i64 ChatID (api.body = "chat_id", agw.key = "chat_id",api.js_conv='true')
2: required i64 ConversationID (api.body = "conversation_id", agw.key = "conversation_id",api.js_conv='true')
255: base.Base Base
}
struct CancelChatApiResponse {
1: ChatV3ChatDetail ChatV3ChatDetail (agw.key = "data")
255: base.BaseResp BaseResp
}