PAL9000 是一个开源的 Golang 写的通用 Bot 程序。基于它可以很容易搭建一套支持各个渠道的机器人,在 Discord,Telegram 和微信公众号里使用它,就像下图这样。

An image to describe post

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_IDYOUR_APP_ID 是 PAL9000 依赖的两个 Botastic 配置,我们马上去获取它们。

连接到 Botastic

访问 https://developers.pando.im/console/botastic ,使用 Twitter 或者钱包登录 Botastic 的管理员面板。

点击“应用程序”右侧的 “+” 按钮,创建一个 App,再点击“机器人”右侧的 “+” 按钮,创建一个 Bot。

分别点击 App 和 Bot,复制他们的 App ID 和 Bot ID,填入上一章配置文件的 YOUR_BOT_IDYOUR_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_ADDRESSWECHAT_PATH 则是刚才在 “接口配置信息”填写的 URL。

例如如果你的服务器 URL 填写的是 https://abc.lyric.im/wx_bot,那么 WECHAT_ADDRESSWECHAT_PATH 分别是 https://abc.lyric.im/wx_bot

运行 PAL9000

保存好配置文件 config.yaml,然后在相同目录下运行:

PAL9000 run --config config.yaml

就可以启动 PAL9000 了。这时在 Telegram Bot 里和刚才创建的机器人对话,或者在微信里和自己的测试号对话,正常的话它就会回复你了。