抱歉,您的浏览器无法访问本站
本页面需要浏览器支持(启用)JavaScript
了解详情 >

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

简介

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

面板配置信息

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

打开 Setting 面板,新建一个 Project 名为 TelegrafBot
配置信息

ADMIN_ID: 管理员用户 ID [https://t.me/userinfobot]
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 配置信息中的命令。 命令以 > 开头。
argaction 中的默认参数列表。参数以 - 开头,或者按照顺序排列可以省略 - (但是省略 - 会有 bug)。
例如:

>unsplash
>unsplash -k cat
>unsplash dog

使用

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

留言区

Are You A Robot?