链载Ai

标题: 字节跳动扣子Coze 开源coze Studio (2) [打印本页]

作者: 链载Ai    时间: 昨天 19:03
标题: 字节跳动扣子Coze 开源coze Studio (2)
前文:字节跳动扣子Coze 开源coze Studio讲到了Coze Studio 开源的后端部分,今天深入到底层源码级别进一步分析其中的道理。

领域模型

Coze Studio后端遵循**领域驱动设计(DDD)**的原则,将业务逻辑组织到清晰定义的领域边界中。本文档深入探讨了核心领域实体的结构、它们之间的关系以及它们如何协同工作以支持应用程序的功能。


领域模型代表了Coze Studio中的核心业务概念、规则和关系。它被组织成不同的有界上下文,代表应用程序功能的不同方面。

领域组织

Coze Studio的领域模型具有清晰的关注点分离:

每个领域遵循一致的结构:

核心领域实体

应用领域

App实体代表一个可以在Coze Studio中构建、配置和发布的应用程序。应用连接到各种资源,如连接器和工作流。

typeAPPstruct{  ID   int64  SpaceIDint64  IconURI *string  Name  *string  Desc  *string  OwnerIDint64
ConnectorIDs []int64 Version *string VersionDesc *string PublishRecordID *int64 PublishStatus *PublishStatus PublishExtraInfo *PublishRecordExtraInfo
CreatedAtMS int64 UpdatedAtMS int64 PublishedAtMS *int64}
PublishStatus枚举表示应用在发布工作流中的当前状态:
typePublishStatusint
const( PublishStatusOfPacking PublishStatus =0 PublishStatusOfPackFailed PublishStatus =1 PublishStatusOfAuditing PublishStatus =2 PublishStatusOfAuditNotPass PublishStatus =3 PublishStatusOfConnectorPublishing PublishStatus =4 PublishStatusOfPublishDone PublishStatus =5)

工作流领域

Workflow实体代表一个流程图式的结构,定义了机器人如何处理信息并响应用户输入。工作流是Coze Studio中的核心概念,定义了机器人的智能和行为。

typeWorkflowstruct{  ID   int64  CommitIDstring
*vo.Meta *vo.CanvasInfo *vo.DraftMeta *vo.VersionMeta}
工作流使用多个值对象:
typeMetastruct{ // 不可变字段  SpaceID  int64  CreatorID int64  CreatedAt  time.Time  ContentType ContentType  Tag     *Tag  AppID    *int64  SourceID  *int64  AuthorID  int64
// 可变字段 Name string Desc string IconURI string IconURL string Mode Mode UpdatedAt *time.Time UpdaterID *int64 DeletedAt *time.Time HasPublished bool LatestPublishedVersion *string}
工作流有两个主要阶段:
typeStageuint8
const( StageDraft Stage =1 StagePublished Stage =2)

对话领域

Conversation实体模拟用户和机器人之间的互动。对话由多条消息组成,为持续对话提供上下文。

typeConversation = conversation.Conversation
typeCreateMetastruct{ AgentID int64 `json:"agent_id"` UserID int64 `json:"user_id"` ConnectorIDint64 `json:"connector_id"` Scene common.Scene`json:"scene"` Ext string `json:"ext"`

对话领域进一步分为子领域:

  1. conversation
    :管理对话上下文和元数据
  2. message
    :处理对话中的单个消息
  3. agentrun
    :管理对消息的代理逻辑执行

领域关系

Coze Studio的核心领域是相互关联的,形成一个紧密的系统。以下图表展示了这些关系:

值对象和聚合

值对象

Coze Studio中的值对象代表不可变的概念,没有自己的身份。这些包括:

聚合

聚合是作为单个单元处理的领域对象集群。Coze Studio中的主要聚合包括:

  1. 应用聚合






欢迎光临 链载Ai (https://www.lianzai.com/) Powered by Discuz! X3.5