MHuiG

「看庭前花开花落,望天上云卷云舒」

# 问答系统

MHuiG

字数：544 字

时长：2 分钟

假定您的 Worker 路由是 `https://example.workers.dev/`。
笔者这里默认您会使用 Telegram。

## 简介

问答系统是指 Telegram 机器人的 QA 系统。

## 面板配置信息

`https://example.workers.dev/space/dash/setting`

打开 `Setting` 面板，新建一个 Project 名为 `TelegrafBot`。

`ADMIN_NAME`: 管理员用户名
`ADMIN_GROUP_ID`: 私有群组 ID
`PUBLIC_GROUP_ID`: 公开群组 ID
`TEST_GROUP_ID`: 测试群组 ID

这里有三个 GROUP ID，分别是私有群，公开群，测试群；ID 是数字。如何获取群组 ID，请参考下文输入命令 `>ChatID`。
测试群是笔者开发测试使用，私有群中会有 Telegram 机器人的报错日志信息。

## 问答系统的配置文件

问答系统的配置文件是 yml 格式
https://github.com/CoPoKo/Space/blob/main/src/Space/TelegrafBot/BotModel/Text/workflows.yml

    - workflow:
        - random: 1
          reply: 然后呢?
        - re: ^？$
          reply: ？？？
        - includes:
            - 来点
            - 涩图
          reply: 让我找找
        - random: 100
          action: EmojiToSticker

`workflow` 被称为工作流，每一个工作流都是一个判断列表，一个工作流中只能有一个 `action` 被触发，触发后跳出执行下一个工作流。

`action` 被称为动作，每一个动作都是一个函数，动作的函数名称是 `action:` 后面的函数名称。

`reply` 是一种特殊的动作，它的动作是 `reply:` 后面的文本。

`re` 是一个正则表达式判断条件。

`includes` 是一个正则表达式列表判断条件，必须全部满足才会触发 `action`。

`random` 是一个随机触发判断条件，赋值 0-100。

    - workflow:
        - admin:
            - re: 在吗
              reply: 主人我在
          else:
            - re: 在吗
              reply: 爪巴

`admin` 是一个管理员判断条件，匹配 `ADMIN_NAME` 配置信息中的用户名，如果匹配则触发 `admin` 工作流，否则触发 `else` 工作流。

    - workflow:
        - cmd: help
          reply: no help
        - cmd: unsplash
          arg:
            k: nature,water,sky,blue,sea
          action: Unsplash

`cmd` 是命令判断条件，匹配 `cmd` 配置信息中的命令。 命令以 `>` 开头。
`arg` 是 `action` 中的默认参数列表。参数以 `-` 开头，或者按照顺序排列可以省略 `-` （但是省略 `-` 会有 bug）。
例如：

    >unsplash

    >unsplash -k cat

    >unsplash dog

## 使用

此处省略一万字，请读者自行探索。

喵喵喵

https://t.me/+fDnU23Jpm3A3YTE9

开放 API 接口

假定您的 Worker 路由是 https://example.workers.dev/。 浏览器访问 https://example.workers.dev/ 这里列举了几个 开放 API 接...

Search

假定您的 Worker 路由是 https://example.workers.dev/。 简介 CoPoKo Space Search 模块是一个搜索功能，包含 Google 可编程搜索和 W...

留言区

CoPoKo
本文目录
<pjax>
</pjax>
<pjax></pjax>
<pjax> Are you Robot?</pjax>