❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!
🥦 微信公众号|搜一搜:蚝油菜花 🥦
大家好,我是蚝油菜花,今天跟大家分享一下 AstrBot 这个开源的多消息平台聊天机器人及开发框架。
🚀 快速阅读
AstrBot 是一个多平台聊天机器人及开发框架,支持多种大语言模型和消息平台。
- 核心功能:支持 OpenAI GPT、Google Gemini、Llama 等大语言模型,以及 QQ、Telegram、微信等消息平台。
- 技术原理:基于异步通信架构、事件驱动机制和流水线处理,确保高效稳定的系统性能。
AstrBot 是什么
AstrBot 是一个开源的多平台聊天机器人及开发框架,支持多种大语言模型(如 OpenAI GPT、Google Gemini、Llama 等)和多种消息平台(如 QQ、Telegram、微信等)。它具备多轮对话、语音转文字、网页搜索等功能,提供代码执行器和可视化管理面板,方便用户配置和扩展。
AstrBot 基于模块化设计,支持插件开发,能一键部署到多种环境(如 Docker、Windows、Replit 等),具有高稳定性和可扩展性。
AstrBot 的主要功能
- 多语言模型支持:支持 OpenAI GPT、Google Gemini、Llama、DeepSeek、ChatGLM 等多种大语言模型,且支持基于 Ollama 和 LLMTuner 接入本地部署的大模型。
- 多平台接入:支持 QQ(OneBot)、QQ频道、微信(Gewechat、企业微信)、Telegram 等消息平台,后续将支持钉钉、飞书、Discord 等。
- Agent 功能:原生支持代码执行器、自然语言待办事项、网页搜索等功能,能对接 Dify 平台,实现智能助手和知识库的接入。
- 插件扩展:提供深度优化的插件机制,支持开发者基于插件扩展功能,降低开发门槛。
- 可视化管理:提供可视化面板,支持配置修改、插件管理、日志查看等功能,集成 WebChat,在面板上与机器人直接对话。
- 多模态交互:支持图片理解和语音转文字(Whisper),具备多轮对话和人格情境功能。
AstrBot 的技术原理
- 异步通信架构:基于异步编程模型,高效处理多平台的消息交互,提升系统响应速度和并发处理能力。
- 事件驱动机制:基于事件总线设计,将消息接收、处理和发送解耦,让各个模块独立运行,提高系统的灵活性和可扩展性。
- 流水线处理:消息处理采用流水线模式,将消息解析、预处理、模型调用、后处理等步骤按顺序执行,便于功能扩展和维护。
- 插件系统:基于插件机制,开发者能轻松扩展机器人功能。插件支持独立开发和部署,不影响主程序运行。
- 多语言模型接入:支持多种大语言模型的接入,基于标准化的接口与不同模型进行通信,实现灵活的模型切换和扩展。
如何使用 Docker 部署 AstrBot
环境准备
在开始部署 AstrBot 之前,请确保您的环境中已经安装了 Docker。如果尚未安装,请参考Docker 文档
进行安装。
如果您在中国大陆,可能无法正常拉取 Docker 镜像。建议使用国内镜像源,或者在 Docker 设置中配置代理。可以参考国内可用 Docker 镜像源汇总
。
- Docker 文档:https://docs.docker.com/get-docker/
- 国内可用 Docker 镜像源汇总:https://www.coderjia.cn/archives/dba3f94c-a021-468a-8ac6-e840f85867ea
通过 Docker Compose 部署
1. 克隆 AstrBot 仓库
首先,使用以下命令将 AstrBot 仓库克隆到本地:
git clone https://github.com/Soulter/AstrBot
cd AstrBot
2. 运行 Docker Compose
接下来,使用 docker compose
命令启动 AstrBot:
sudo docker compose up -d
- 注意:在 Windows 系统上不需要使用
sudo
。
3. 配置沙箱代码执行器(可选)
默认情况下,docker-compose.yml
文件没有映射宿主机的 docker.sock
文件,因此无法使用沙箱代码执行器。如果您需要使用沙箱代码执行器,可以在 docker-compose.yml
文件中添加以下内容:
volumes:
- /var/run/docker.sock:/var/run/docker.sock
通过 Docker 部署
1. 创建目录并运行容器
如果您不想使用 Docker Compose,可以直接通过 Docker 命令来部署 AstrBot。首先,创建一个目录用于存储数据:
mkdir astrbot
然后,使用以下命令启动 AstrBot 容器:
sudo docker run -itd -p 6180-6200:6180-6200 -p 11451:11451 -v $PWD/data:/AstrBot/data --name astrbot soulter/astrbot:latest
- 注意:在 Windows 系统上不需要使用
sudo
。
2. 查看日志
通过以下命令查看 AstrBot 的日志输出:
sudo docker logs -f astrbot
3. 配置沙箱代码执行器(可选)
如果您需要使用沙箱代码执行器,可以在启动容器时添加以下参数:
sudo docker run -itd -p 6180-6200:6180-6200 -p 11451:11451 -v $PWD/data:/AstrBot/data -v /var/run/docker.sock:/var/run/docker.sock --name astrbot soulter/astrbot:latest
🎉 大功告成!
如果一切顺利,您会在日志中看到类似以下的输出:
🌈 管理面板已启动,可访问
接下来,您可以打开浏览器,访问日志中提供的链接来访问 AstrBot 的管理面板。默认的用户名和密码都是 astrbot
。
- 提示:由于 Docker 隔离了网络环境,因此不能使用
localhost
访问管理面板。请使用您的服务器 IP 地址或域名进行访问。
如何运行 AstrBot 管理面板
1. 管理面板概述
AstrBot 管理面板是一个功能强大的工具,提供了管理插件、查看日志、可视化配置和查看统计信息等功能。通过管理面板,用户可以方便地管理和监控 AstrBot 的运行状态。下图展示了管理面板的界面,其中显示了占用内存为 1GB,这是因为在该时刻 AstrBot 加载了一个自部署的微调大语言模型。
2. 访问管理面板
2.1 本地访问
当启动 AstrBot 之后,你可以通过浏览器访问 http://localhost:6185
来访问管理面板。
2.2 云服务器访问
如果你正在云服务器上部署 AstrBot,需要将 localhost
替换为你的服务器 IP 地址。例如,如果你的服务器 IP 地址是 192.168.1.100
,则访问地址为 http://192.168.1.100:6185
。
3. 登录
默认的用户名和密码均为 astrbot
。首次登录后,建议修改默认的用户名和密码以增强安全性。
4. 可视化配置
在管理面板中,你可以通过可视化配置来管理 AstrBot 的插件。点击左栏的 配置
即可进入配置页面。
顶部的两个按钮可以切换 可视化编辑配置
和 代码编辑配置
两种模式。
- 可视化编辑配置:通过图形界面进行配置,修改完成后需要点击右下角的
保存
按钮来保存配置。 - 代码编辑配置:直接编辑配置文件,编辑完成后首先点击
应用此配置
,此时配置将应用到可视化配置中,然后再点击右下角的保存
按钮来保存配置。
- 警告:在
代码编辑配置
中编辑配置文件时,如果你不点击应用此配置
,那么你的修改将不会生效。
5. 插件管理
在管理面板中,你可以通过左栏的 插件
来查看已安装的插件。点击右下角的添加按钮,可以安装新的插件。
6. 更新管理面板
AstrBot 在启动时会自动检查管理面板是否需要更新。如果需要更新,第一条日志(黄色)会提示你进行更新。
6.1 手动更新
你可以使用 /dashboard_update
命令手动更新管理面板。该命令是管理员指令,只有管理员用户可以执行。
6.2 手动替换更新
如果你需要手动替换管理面板文件,可以在AstrBot GitHub Releases
下载 dist.zip
,然后解压到 data/dist
目录下。
- AstrBot GitHub Releases:https://github.com/Soulter/AstrBot/releases/
7. 常见问题
7.1 无法访问管理面板
如果你无法访问管理面板,可能是由于以下原因:
- 确保 AstrBot 已正确启动。
- 检查是否使用了正确的 IP 地址和端口。
- 如果在云服务器上部署,确保服务器防火墙已允许 6185 端口的访问。
7.2 更新后管理面板无法正常工作
如果你在更新管理面板后遇到问题,建议尝试以下步骤:
- 检查日志文件,查看是否有错误信息。
- 确保
data/dist
目录下的文件已正确解压。 - 重新启动 AstrBot,确保更新生效。
通过以上步骤,你可以轻松管理和配置 AstrBot,确保其稳定运行并充分发挥其功能。
资源
- GitHub 仓库:https://github.com/Soulter/AstrBot
❤️ 如果你也关注 AI 的发展现状,且对 AI 应用开发感兴趣,我会每日分享大模型与 AI 领域的开源项目和应用,提供运行实例和实用教程,帮助你快速上手AI技术!
🥦 微信公众号|搜一搜:蚝油菜花 🥦