> For the complete documentation index, see [llms.txt](https://fucloud.gitbook.io/sysu-introducer/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://fucloud.gitbook.io/sysu-introducer/structure/interact.md).

# 系统交互

模块可以被分为内部模块和外部接口。 其中内部模块包括`Core`和其所有子模块， 负责处理接收到的消息对象， 生成响应处理结果。 外部接口一方面负责将外部接收到的信息封装成消息对象， 另一方面将处理好的结果输出到外部。

此外，本系统中还有一个控制器， 控制器不属于模块化架构中的模块， 它负责对接管理员，直接与系统进行交互。

![系统交互](https://1405676983-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FHsuGv0gxJq9qRu2oKB9e%2Fuploads%2Fgit-blob-a29ec1d2eea03f8222b2f57dc2bd6a25e8b561da%2Finteract.svg?alt=media)

## 属性

消息对象包括如下属性。

* **消息类型:** 枚举类型，由消息发送者决定
* **消息内容:** 字符类型，存储消息中的内容

| 名称  | 枚举        | 备注                        |
| --- | --------- | ------------------------- |
| 观众  | Watcher   | 由直播间爬虫获取的文本               |
| 管理员 | Admin     | 管理员发送的文本，拥有更高的处理逻辑        |
| 指令  | Command   | 管理员发送的指令，数字人会按照预先设定好的逻辑执行 |
| 数字人 | Assistant | 数字人产生的回答文本                |

## 处理逻辑

消息通过外部接口到达系统内部， 实际上是通过 `Core` 进行处理， 当其处理完消息之后，会调用回调函数， 通过外部接口输出处理结果。
