扣子智能体
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.
 
 
 
 
 
 
coze_studio/idl/marketplace/product_common.thrift

181 lines
7.8 KiB

include "marketplace_common.thrift"
namespace go marketplace.product_common
enum ProductEntityType {
Bot = 1 ,
Plugin = 2 ,
// Workflow = 3 ,
SocialScene = 4,
Project = 6,
WorkflowTemplate = 13, // History workflow, no more in the future (abandoned)
ImageflowTemplate = 15, // Historical image stream template, no more in the future (obsolete)
TemplateCommon = 20, // Template universal identification, only used to bind template-related configurations, not bind products
BotTemplate = 21, // Bot template
WorkflowTemplateV2 = 23, // workflow template
ImageflowTemplateV2 = 25, // Image stream template (this type has been offline and merged into workflow, but historical data will be preserved, and the front end will be treated as workflow display)
ProjectTemplate = 26, // project template
CozeToken = 50, // Coze token products, theoretically there will only be one
MsgCredit = 55, // Subscribe to the traffic package of credit, theoretically there will only be one
SubsMsgCredit = 60, // There is only one subscription product in theory
Common = 99,
Topic = 101 // Special Topics (Compatible with previous designs)
}
enum SortType {
Heat = 1,
Newest = 2,
FavoriteTime = 3, // collection time
Relative = 4, // Correlation, only for search scenarios
}
enum ProductPublishMode {
OpenSource = 1,
ClosedSource = 2,
}
enum ProductListSource {
Recommend = 1, // recommended list page
CustomizedRecommend = 2, // personalized recommendation
}
enum PluginType {
CLoudPlugin = 0 , // default
LocalPlugin = 1 ,
}
enum ProductPaidType {
Free = 0;
Paid = 1;
}
struct CommercialSetting {
1: required ProductPaidType commercial_type (agw.key = "commercial_type", api.body= "commercial_type")
}
enum ProductStatus {
NeverListed = 0, // NeverListed
Listed = 1,
Unlisted = 2,
Banned = 3,
}
struct UserLabel {
1: string label_id (agw.key = "label_id", api.body= "label_id") ,
2: string label_name (agw.key = "label_name", api.body= "label_name"),
3: string icon_uri (agw.key = "icon_uri", api.body= "icon_uri") ,
4: string icon_url (agw.key = "icon_url", api.body= "icon_url") ,
5: string jump_link (agw.key = "jump_link", api.body= "jump_link") ,
}
struct UserInfo {
1: i64 user_id (agw.js_conv="str",api.js_conv="true",agw.cli_conv="str", agw.key = "user_id", api.body= "user_id"),
2: string user_name (agw.key = "user_name", api.body= "user_name") ,
3: string name (agw.key = "name", api.body= "name") ,
4: string avatar_url (agw.key = "avatar_url", api.body= "avatar_url") ,
5: optional UserLabel user_label (agw.key = "user_label", api.body= "user_label") ,
6: optional marketplace_common.FollowType follow_type (agw.key = "follow_type", api.body= "follow_type") ,
}
struct ImageInfo {
1: string uri (agw.key = "uri", api.body= "uri"),
2: string url (agw.key = "url", api.body= "url"),
}
enum ProductDraftStatus {
Default = 0, // default
Pending = 1, // Under review.
Approved = 2, // approved
Rejected = 3, // The review failed.
Abandoned = 4, // Abandoned
}
typedef ProductDraftStatus AuditStatus
struct OpeningDialog { // Bot OpeningDialog
1: string content (agw.key = "content", api.body= "content"),
}
enum InputType {
String = 1,
Integer = 2,
Boolean = 3,
Double = 4,
List = 5,
Object = 6,
}
enum PluginParamTypeFormat {
ImageUrl = 1,
}
enum WorkflowNodeType {
Start = 1 , // start
End = 2 , // end
LLM = 3 , // Large model
Api = 4 , // plugin
Code = 5 , // code
Dataset = 6 , // Knowledge Base
If = 8 , // selector
SubWorkflow = 9 , // Workflow
Variable = 11, // variable
Database = 12, // database
Message = 13, // message
}
enum SocialSceneRoleType {
Host = 1
PresetBot = 2
Custom = 3
}
enum UIPreviewType { // UI preview type, defining alignment UI Builder, currently used in Project
Web = 1, // web page
Client = 2, // mobile end
}
struct ChargeSKUExtra{
1: i64 Quantity (agw.js_conv="str", api.js_conv="true", agw.cli_conv="str", agw.key = "quantity", api.body= "quantity"),
2: bool IsSelfDefine (agw.key = "is_self_define", api.body= "is_self_define")
}
enum FavoriteListSource {
CreatedByMe = 1, // Created by users themselves
}
struct FavoriteEntity {
1 : i64 EntityID (agw.js_conv="str", agw.cli_conv="str", agw.key = "entity_id", api.body="entity_id", api.js_conv="true") ,
2 : ProductEntityType EntityType (agw.key = "entity_type", api.body="entity_type") ,
4 : string Name (agw.key = "name", api.body="name") ,
5 : string IconURL (agw.key = "icon_url", api.body="icon_url") ,
6 : string Description (agw.key = "description", api.body="description") ,
7 : SellerInfo Seller (agw.key = "seller", api.body="seller") , // Abandoned, using UserInfo
8 : i64 SpaceID (agw.js_conv="str", agw.cli_conv="str", agw.key = "space_id", api.body="space_id", api.js_conv="true") , // Use to jump to the bot edit page
9 : bool HasSpacePermission (agw.key = "has_space_permission", api.body="has_space_permission") , // Does the user have permissions to the space where the entity is located?
10: i64 FavoriteAt (agw.js_conv="str", agw.cli_conv="str", agw.key = "favorite_at", api.body="favorite_at", api.js_conv="true"), // collection time
11: optional FavoriteProductExtra ProductExtra (agw.key = "product_extra", api.body="product_extra") ,
12: UserInfo UserInfo (agw.key = "user_info", api.body="user_info") ,
13: optional FavoritePluginExtra PluginExtra (agw.key = "plugin_extra", api.body="plugin_extra") ,
}
struct SellerInfo {
1: i64 UserID (agw.js_conv="str", agw.cli_conv="str", agw.key = "user_id", api.body="user_id", api.js_conv="true"),
2: string UserName (agw.key = "user_name", api.body="user_name") ,
3: string AvatarURL (agw.key = "avatar_url", agw.key="avatar_url", api.body="avatar_url") ,
}
struct FavoriteProductExtra {
1: i64 ProductID (agw.js_conv="str", agw.cli_conv="str", agw.key = "product_id", api.body="product_id", api.js_conv="true"),
2: ProductStatus ProductStatus (agw.key="product_status", api.body="product_status") ,
}
struct FavoritePluginExtra {
1: list<PluginTool> Tools (agw.key="tools", api.body="tools"),
}
struct PluginTool {
1: i64 ID (agw.js_conv="str", agw.cli_conv="str", agw.key = "id", api.body="id", api.js_conv="true"),
2: string Name (agw.key="name", api.body="name"),
3: string Description (agw.key="description", api.body="description"),
}