PAL9000 是一个开源的 Golang 写的通用 Bot 程序。基于它可以很容易搭建一套支持各个渠道的机器人,在 Discord,Telegram 和微信公众号里使用它,就像下图这样。
PAL9000 这个名字致敬了“太空奥德赛”里的机器人“HAL9000”。另外PAL 也有伙伴的意思。
这篇文章介绍如何使用 PAL9000 搭建机器人。
安装 PAL9000
PAL9000 使用 Golang 开发,运行下面的命令安装:
go install github.com/pandodao/PAL9000@latest
然后生成配置文件:
PAL9000 config -e > config.yaml
配置文件大概是这个样子:
general:
bot:
bot_id: YOUR_BOT_ID
lang: en # 默认语言
botastic:
app_id: "YOUR_APP_ID"
host: https://botastic-api.pando.im
debug: true # 开启调试模式
adapters:
# ... 这里是各种 adpater
其中,YOUR_BOT_ID
和 YOUR_APP_ID
是 PAL9000 依赖的两个 Botastic 配置,我们马上去获取它们。
连接到 Botastic
访问 https://developers.pando.im/console/botastic ,使用 Twitter 或者钱包登录 Botastic 的管理员面板。
点击“应用程序”右侧的 “+” 按钮,创建一个 App,再点击“机器人”右侧的 “+” 按钮,创建一个 Bot。
分别点击 App 和 Bot,复制他们的 App ID 和 Bot ID,填入上一章配置文件的 YOUR_BOT_ID
和 YOUR_APP_ID
的地方。
Botastic 是一个开源的通用 LLMs 服务。通过它不仅可以使用 OpenAI 的 GPT 系列 LLMs,也可以使用其他模型,同时提供向量存储来拓展 LLMs 记忆的能力。
使用 Botastic 会消耗其中的余额,需要充值。不过刚开始 Botastic 会赠送 0.1 美元的余额测试使用。
连接到 Telegram 和微信公众号
虽然 PAL9000 支持多种不同的界面,但这次仅以 Telegram 和微信为例介绍连接方法。
对于 Telegram,它在配置文件中描述如下:
general:
bot:
bot_id: YOUR_BOT_ID
lang: en # 默认语言
botastic:
app_id: "YOUR_APP_ID"
host: https://botastic-api.pando.im
debug: true # 开启调试模式
adapters:
enabled: # 这里是声明要启用哪些适配器
- test_telegram
test_telegram:
driver: telegram # 使用 telegram 驱动
debug: true
telegram:
token: "TELEGRAM_TOKEN"
其中 TELEGRAM_TOKEN
的获取方法是这样的:
在 Telegram 里搜索 @BotFather
,然后跟它输入 /newbot
创建一个 Telegram 机器人。这个 @BotFather 会问你一系列的问题,设置好这个机器人的名字之类的,最后它会给你一个 Token,就可以填入到配置文件里面了。
接着是连接到微信公众号。
先访问 微信公众号测试号管理后台。
在 “接口配置信息” 填写 PAL9000 所在的服务器 URL(域名或者 IP)。Token 随便填 123456。
注意,微信需要你把 PAL9000 的服务开到 80 或者 443 端口,所以对于没有外网 IP 的情况下,也可以内网穿透比如 cloudflared。
接着用微信扫码“测试号二维码”,让自己的微信关注你的测试号。
然后在 PAL9000 的 config.yaml 里加上配置:
# ...
adapters:
enabled: # 这里是声明要启用哪些适配器
- test_telegram
- test_wx # 启用微信适配器
test_telegram:
driver: telegram # 使用 telegram 驱动
debug: true
telegram:
token: "TELEGRAM_TOKEN"
test_wx:
driver: wechat
wechat:
token: "123456"
address: "WECHAT_ADDRESS"
path: "WECHAT_PATH"
其中,token
那的 “123456” 就是刚才在 “接口配置信息” 填的 token。WECHAT_ADDRESS
和 WECHAT_PATH
则是刚才在 “接口配置信息”填写的 URL。
例如如果你的服务器 URL 填写的是 https://abc.lyric.im/wx_bot
,那么 WECHAT_ADDRESS
和 WECHAT_PATH
分别是 https://abc.lyric.im
和 /wx_bot
。
运行 PAL9000
保存好配置文件 config.yaml,然后在相同目录下运行:
PAL9000 run --config config.yaml
就可以启动 PAL9000 了。这时在 Telegram Bot 里和刚才创建的机器人对话,或者在微信里和自己的测试号对话,正常的话它就会回复你了。