coze-studio/idl/playground/playground.thrift

515 lines
20 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 "../bot_common/bot_common.thrift"
include "shortcut_command.thrift"
include "prompt_resource.thrift"
namespace go ocean.cloud.playground
struct UpdateDraftBotInfoAgwResponse {
1: required UpdateDraftBotInfoAgwData data,
253: required i64 code,
254: required string msg,
255: required base.BaseResp BaseResp (api.none="true")
}
struct UpdateDraftBotInfoAgwData {
1: optional bool has_change // 是否有变更
2: bool check_not_pass // true机审校验不通过
3: optional Branch branch // 当前是在哪个分支
4: optional bool same_with_online
5: optional string check_not_pass_msg // 机审校验不通过文案
}
// 分支
enum Branch {
Undefined = 0
PersonalDraft = 1 // 草稿
Base = 2 // space草稿
Publish = 3 // 线上版本,diff场景下使用
}
struct UpdateDraftBotInfoAgwRequest {
1: optional bot_common.BotInfoForUpdate bot_info
2: optional i64 base_commit_version (api.js_conv='true',agw.js_conv="str")
255: base.Base Base (api.none="true")
}
struct GetDraftBotInfoAgwRequest {
1: required i64 bot_id (api.js_conv='true',agw.js_conv="str") // 草稿bot_id
2: optional string version // 查历史记录历史版本的id对应 bot_draft_history的id
3: optional string commit_version // 查询指定commit_version版本预发布使用貌似和version是同一个东西但是获取逻辑有区别
255: base.Base Base (api.none="true")
}
struct GetDraftBotInfoAgwResponse {
1: required GetDraftBotInfoAgwData data,
253: required i64 code,
254: required string msg,
255: required base.BaseResp BaseResp (api.none="true")
}
struct GetDraftBotInfoAgwData {
1: required bot_common.BotInfo bot_info // 核心bot数据
2: optional BotOptionData bot_option_data // bot选项信息
3: optional bool has_unpublished_change // 是否有未发布的变更
4: optional BotMarketStatus bot_market_status // bot上架后的商品状态
5: optional bool in_collaboration // bot是否处于多人协作模式
6: optional bool same_with_online // commit内容是否和线上内容一致
7: optional bool editable // for前端权限相关当前用户是否可编辑此bot
8: optional bool deletable // for前端权限相关当前用户是否可删除此bot
9: optional UserInfo publisher // 是最新发布版本时传发布人
10: bool has_publish // 是否已发布
11: i64 space_id (api.js_conv='true',agw.js_conv="str") // 空间id
12: list<BotConnectorInfo> connectors // 发布的业务线详情
13: optional Branch branch // 获取的是什么分支的内容
14: optional string commit_version // 如果branch=PersonalDraft则为checkout/rebase的版本号如果branch=base则为提交的版本
15: optional string committer_name // for前端最近一次的提交人
16: optional string commit_time // for前端提交时间
17: optional string publish_time // for前端发布时间
18: optional BotCollaboratorStatus collaborator_status // 多人协作相关操作权限
19: optional AuditInfo latest_audit_info // 最近一次审核详情
20: optional string app_id // 抖音分身的bot会有appId
}
struct BotOptionData {
1: optional map<i64,ModelDetail> model_detail_map // 模型详情
2: optional map<i64,PluginDetal> plugin_detail_map // 插件详情
3: optional map<i64,PluginAPIDetal> plugin_api_detail_map // 插件API详情
4: optional map<i64,WorkflowDetail> workflow_detail_map // workflow详情
5: optional map<string,KnowledgeDetail> knowledge_detail_map // knowledge详情
6: optional list<shortcut_command.ShortcutCommand> shortcut_command_list // 快捷指令list
}
struct ModelDetail {
1: optional string name // 模型展示名(对用户)
2: optional string model_name // 模型名(对内部)
3: optional i64 model_id (agw.js_conv="str" api.js_conv="true") // 模型ID
4: optional i64 model_family // 模型类别
5: optional string model_icon_url // IconURL
}
struct PluginDetal {
1: optional i64 id (agw.js_conv="str" api.js_conv="true")
2: optional string name
3: optional string description
4: optional string icon_url
5: optional i64 plugin_type (agw.js_conv="str" api.js_conv="true")
6: optional i64 plugin_status (agw.js_conv="str" api.js_conv="true")
7: optional bool is_official
}
struct PluginAPIDetal {
1: optional i64 id (agw.js_conv="str" api.js_conv="true")
2: optional string name
3: optional string description
4: optional list<PluginParameter> parameters
5: optional i64 plugin_id (agw.js_conv="str" api.js_conv="true")
}
struct PluginParameter {
1: optional string name
2: optional string description
3: optional bool is_required
4: optional string type
5: optional list<PluginParameter> sub_parameters
6: optional string sub_type // 如果Type是数组则有subtype
7: optional i64 assist_type
}
struct WorkflowDetail {
1: optional i64 id (agw.js_conv="str" api.js_conv="true")
2: optional string name
3: optional string description
4: optional string icon_url
5: optional i64 status
6: optional i64 type // 类型1:官方模版
7: optional i64 plugin_id (agw.js_conv="str" api.js_conv="true") // workfklow对应的插件id
8: optional bool is_official
9: optional PluginAPIDetal api_detail
}
struct KnowledgeDetail {
1: optional string id
2: optional string name
3: optional string icon_url
4: DataSetType format_type
}
enum DataSetType {
Text = 0 // 文本
Table = 1 // 表格
Image = 2 // 图片
}
enum BotMarketStatus {
Offline = 0 // 下架
Online = 1 // 上架
}
struct UserInfo {
1: i64 user_id (api.js_conv='true',agw.js_conv="str") // 用户id
2: string name // 用户名称
3: string icon_url // 用户图标
}
struct BotConnectorInfo {
1: string id
2: string name
3: string icon
4: ConnectorDynamicStatus connector_status
5: optional string share_link
}
enum ConnectorDynamicStatus {
Normal = 0
Offline = 1
TokenDisconnect = 2
}
struct BotCollaboratorStatus {
1: bool commitable // 当前用户是否可以提交
2: bool operateable // 当前用户是否可运维
3: bool manageable // 当前用户是否可管理协作者
}
struct AuditInfo {
1: optional AuditStatus audit_status
2: optional string publish_id
3: optional string commit_version
}
struct AuditResult {
1: AuditStatus AuditStatus ,
2: string AuditMessage,
}
enum AuditStatus {
Auditing = 0, // 审核中
Success = 1, // 审核通过
Failed = 2, // 审核失败
}
// Onboarding json结构
struct OnboardingContent {
1: optional string prologue // 开场白C端使用场景只有1个后台场景可能为多个
2: optional list<string> suggested_questions // 建议问题
3: optional bot_common.SuggestedQuestionsShowMode suggested_questions_show_mode
}
enum ScopeType {
All = 0 // 企业下所有的(企业下生效)
Self = 1 // 我加入的(企业&个人都生效不传默认Self
}
struct GetSpaceListV2Request {
1: optional string search_word // 搜索词
2: optional i64 enterprise_id (api.js_conv='true',agw.js_conv="str") // 企业id
3: optional i64 organization_id (api.js_conv='true',agw.js_conv="str") // 组织id
4: optional ScopeType scope_type // 范围类型
5: optional i32 page // 分页信息
6: optional i32 size // 分页大小 -- page 和 size不传则认为不分页
255: optional base.Base Base (api.none="true")
}
enum SpaceType {
Personal = 1 // 个人
Team = 2 // 小组
}
enum SpaceMode {
Normal = 0
DevMode = 1
}
enum SpaceTag {
Professional = 1 // 专业版
}
enum SpaceRoleType {
Default = 0 // 默认
Owner = 1 // owner
Admin = 2 // 管理员
Member = 3 // 普通成员
}
// 申请管理列表
enum SpaceApplyStatus {
All = 0 // 所有
Joined = 1 // 已加入
Confirming = 2 // 确认中
Rejected = 3 // 已拒绝
}
struct AppIDInfo{
1: string id
2: string name
3: string icon
}
struct ConnectorInfo{
1: string id
2: string name
3: string icon
}
struct BotSpaceV2 {
1: i64 id (api.js_conv='true',agw.js_conv="str") // 空间id新建为0
2: list<AppIDInfo> app_ids // 发布平台
3: string name // 空间名称
4: string description // 空间描述
5: string icon_url // 图标url
6: SpaceType space_type // 空间类型
7: list<ConnectorInfo> connectors // 发布平台
8: bool hide_operation // 是否隐藏新建,复制删除按钮
9: i32 role_type // 在team中的角色 1-owner 2-admin 3-member
10: optional SpaceMode space_mode // 空间模式
11: bool display_local_plugin // 是否显示端侧插件创建入口
12: SpaceRoleType space_role_type // 角色类型,枚举
13: optional SpaceTag space_tag // 空间标签
14: optional i64 enterprise_id (api.js_conv='true',agw.js_conv="str") // 企业id
15: optional i64 organization_id (api.js_conv='true',agw.js_conv="str") // 组织id
16: optional i64 owner_user_id (api.js_conv='true',agw.js_conv="str") // 空间owner uid
17: optional string owner_name // 空间owner昵称
18: optional string owner_user_name // 空间owner用户名
19: optional string owner_icon_url // 空间owner图像
20: optional SpaceApplyStatus space_apply_status // 当前访问用户加入空间状态
21: optional i64 total_member_num // 空间成员总数,只有组织空间才查询
}
struct SpaceInfo {
1: list<BotSpaceV2> bot_space_list // 用户加入空间列表
2: bool has_personal_space // 是否有个人空间
3: i32 team_space_num // 个人创建team空间数量
4: i32 max_team_space_num // 个人最大能创建的空间数量
5: list<BotSpaceV2> recently_used_space_list // 最近使用空间列表
6: optional i32 total // 分页时生效
7: optional bool has_more // 分页时生效
}
struct GetSpaceListV2Response {
1: SpaceInfo data
253: required i64 code
254: required string msg
255: required base.BaseResp BaseResp
}
struct GetImagexShortUrlResponse{
1 : GetImagexShortUrlData data
253: required i64 code
254: required string msg
255: required base.BaseResp BaseResp (api.none="true")
}
struct GetImagexShortUrlData {
1: map<string,UrlInfo> url_info //审核状态key urivalue url 和 审核状态
}
struct UrlInfo {
1: string url
2: bool review_status
}
enum GetImageScene {
Onboarding = 0
BackgroundImage = 1
}
struct GetImagexShortUrlRequest{
1: list<string> uris
2: GetImageScene scene
255: base.Base Base (api.none="true"),
}
struct UserBasicInfo {
1: required i64 UserId (api.js_conv='true',agw.js_conv="str", api.body="user_id")
3: required string Username (api.body="user_name") // 昵称
4: required string UserAvatar (api.body="user_avatar") // 头像
5: optional string UserUniqueName (api.body="user_unique_name") // 用户名
6: optional bot_common.UserLabel UserLabel (api.body="user_label") // 用户标签
7: optional i64 CreateTime (api.body="create_time") // 用户创建时间
}
struct MGetUserBasicInfoRequest {
1 : required list<string> UserIds (agw.js_conv="str", api.js_conv="true", api.body="user_ids")
2 : optional bool NeedUserStatus (api.body="need_user_status")
3 : optional bool NeedEnterpriseIdentity (api.body="need_enterprise_identity") // 是否需要企业认证信息前端通过AGW调用时默认为true
4 : optional bool NeedVolcanoUserName (api.body="need_volcano_user_name") // 是否需要火山用户名
255: optional base.Base Base (api.none="true")
}
struct MGetUserBasicInfoResponse {
1 : optional map<string, UserBasicInfo> UserBasicInfoMap (api.body="id_user_info_map")
253: i64 code
254: string msg
255: optional base.BaseResp BaseResp (api.none="true")
}
struct GetBotPopupInfoRequest {
1: required list<BotPopupType> bot_popup_types
2: required i64 bot_id (agw.js_conv="str" api.js_conv="true")
255: base.Base Base (api.none="true")
}
struct GetBotPopupInfoResponse {
1: required BotPopupInfoData data
253: required i64 code
254: required string msg
255: required base.BaseResp BaseResp (api.none="true")
}
struct BotPopupInfoData {
1: required map<BotPopupType,i64> bot_popup_count_info
}
enum BotPopupType {
AutoGenBeforePublish = 1
}
struct UpdateBotPopupInfoResponse {
253: required i64 code
254: required string msg
255: required base.BaseResp BaseResp (api.none="true")
}
struct UpdateBotPopupInfoRequest {
1: required BotPopupType bot_popup_type
2: required i64 bot_id (agw.js_conv="str" api.js_conv="true")
255: base.Base Base (api.none="true")
}
struct ReportUserBehaviorRequest {
1: required i64 ResourceID (api.body = "resource_id",api.js_conv="true")
2: required SpaceResourceType ResourceType (api.body="resource_type")
3: required BehaviorType BehaviorType (api.body="behavior_type")
4: optional i64 SpaceID (agw.js_conv="str",api.js_conv="true",api.body="space_id",agw.key="space_id") // 本需求必传
255: base.Base Base (api.none="true")
}
struct ReportUserBehaviorResponse {
253: required i64 code
254: required string msg
255: required base.BaseResp BaseResp
}
enum SpaceResourceType {
DraftBot = 1
Project = 2
Space = 3
DouyinAvatarBot = 4
}
enum BehaviorType {
Visit = 1
Edit = 2
}
struct FileInfo {
1 : string url
2 : string uri
}
enum GetFileUrlsScene {
shorcutIcon = 1
}
struct GetFileUrlsRequest {
1 : GetFileUrlsScene scene
255: base.Base Base
}
struct GetFileUrlsResponse {
1 : list<FileInfo> file_list
253: i64 code
254: string msg
255: base.BaseResp BaseResp
}
struct UploadFileOpenRequest {
1: required string ContentType (api.header = "Content-Type", agw.source = "header", agw.key = "Content-Type"), // 文件类型
2: required binary Data (api.raw_body = ""), // 二进制数据
255: base.Base Base
}
struct UploadFileOpenResponse {
1: optional File File (api.body = "data")
253: required i64 code
254: required string msg
255: base.BaseResp BaseResp
}
struct File{
1: string URI (api.body = "uri"), // 文件URI
2: i64 Bytes (api.body = "bytes"), // 文件字节数
3: i64 CreatedAt (agw.key = "created_at"), // 上传时间戳单位s
4: string FileName (api.body = "file_name"), // 文件名
5: string URL (api.body = "url")
}
struct GetBotOnlineInfoReq {
1 : required i64 bot_id (api.js_conv="true") // botId
2: optional string connector_id // 先保留,不暴露且不使用该字段
3 : optional string version // bot版本不传则获取最新版本
}
// resp
struct GetBotOnlineInfoResp {
1: required i32 code
2: required string msg
3: required bot_common.OpenAPIBotInfo data
}
service PlaygroundService {
UpdateDraftBotInfoAgwResponse UpdateDraftBotInfoAgw(1:UpdateDraftBotInfoAgwRequest request)(api.post='/api/playground_api/draftbot/update_draft_bot_info', api.category="draftbot",agw.preserve_base="true")
GetDraftBotInfoAgwResponse GetDraftBotInfoAgw(1:GetDraftBotInfoAgwRequest request)(api.post='/api/playground_api/draftbot/get_draft_bot_info', api.category="draftbot",agw.preserve_base="true")
GetImagexShortUrlResponse GetImagexShortUrl (1:GetImagexShortUrlRequest request)(api.post='/api/playground_api/get_imagex_url', api.category="file",agw.preserve_base="true")
// public popup_info
GetBotPopupInfoResponse GetBotPopupInfo (1:GetBotPopupInfoRequest request)(api.post='/api/playground_api/operate/get_bot_popup_info', api.category="account",agw.preserve_base="true")
UpdateBotPopupInfoResponse UpdateBotPopupInfo (1:UpdateBotPopupInfoRequest request)(api.post='/api/playground_api/operate/update_bot_popup_info', api.category="account",agw.preserve_base="true")
ReportUserBehaviorResponse ReportUserBehavior(1:ReportUserBehaviorRequest request)(api.post='/api/playground_api/report_user_behavior', api.category="playground_api",agw.preserve_base="true")
// 创建快捷指令
shortcut_command.CreateUpdateShortcutCommandResponse CreateUpdateShortcutCommand(1: shortcut_command.CreateUpdateShortcutCommandRequest req)(api.post='/api/playground_api/create_update_shortcut_command', api.category="playground_api", agw.preserve_base="true")
GetFileUrlsResponse GetFileUrls(1: GetFileUrlsRequest req)(api.post='/api/playground_api/get_file_list', api.category="playground_api", agw.preserve_base="true")
// prompt resource
prompt_resource.GetOfficialPromptResourceListResponse GetOfficialPromptResourceList(1:prompt_resource.GetOfficialPromptResourceListRequest request)(api.post='/api/playground_api/get_official_prompt_list', api.category="prompt_resource",agw.preserve_base="true")
prompt_resource.GetPromptResourceInfoResponse GetPromptResourceInfo(1:prompt_resource.GetPromptResourceInfoRequest request)(api.get='/api/playground_api/get_prompt_resource_info', api.category="prompt_resource",agw.preserve_base="true")
prompt_resource.UpsertPromptResourceResponse UpsertPromptResource(1:prompt_resource.UpsertPromptResourceRequest request)(api.post='/api/playground_api/upsert_prompt_resource', api.category="prompt_resource",agw.preserve_base="true")
prompt_resource.DeletePromptResourceResponse DeletePromptResource(1:prompt_resource.DeletePromptResourceRequest request)(api.post='/api/playground_api/delete_prompt_resource', api.category="prompt_resource",agw.preserve_base="true")
GetSpaceListV2Response GetSpaceListV2(1:GetSpaceListV2Request request)(api.post='/api/playground_api/space/list', api.category="space",agw.preserve_base="true")
MGetUserBasicInfoResponse MGetUserBasicInfo(1: MGetUserBasicInfoRequest request) (api.post='/api/playground_api/mget_user_info', api.category="playground_api",agw.preserve_base="true")
//openapi
GetBotOnlineInfoResp GetBotOnlineInfo(1: GetBotOnlineInfoReq request)(api.get='/v1/bot/get_online_info', api.category="bot", api.tag="openapi", api.gen_path="personal_api")
// File 相关 OpenAPI
UploadFileOpenResponse UploadFileOpen(1: UploadFileOpenRequest request)(api.post = "/v1/files/upload", api.category="file", api.tag="openapi", agw.preserve_base="true")
}