随着大模型技术的迅猛发展,行业应用日益丰富且专业化。为了有效利用大模型的强大功能,建立与之紧密互动的应用接口至关重要。在此背景下,QQ、微信、钉钉等主流即时通讯工具凭借其广泛的用户覆盖和便捷的通信特性,成为连接用户与大模型的理想媒介。
通过集成智能聊天机器人至这些平台,我们可以将大语言模型的智能化服务无缝融入日常通讯场景,使得海量即时通讯用户能够直接获益于大模型提供的信息检索、决策支持、知识解答等强大功能,切实体验到技术进步带来的便利与效率提升。
以下,我将详细介绍构建基础智能聊天机器人的步骤,并提供一种简明、高效的部署方法。本指南旨在帮助读者快速理解并掌握搭建流程,使得在频繁使用各类智能机器人服务的同时,也能自主创建符合个人或企业需求的定制化聊天机器人。无论旨在提升工作效能、优化客户交互,还是寻求创新应用,理解并掌握这一技能都将有力推动您迈向人工智能应用的前沿。
1 缘起
网上有很多搭建机器人的文章和实践,但总觉得过于复杂,基本都是基于 Windows 的居多,如果想要在远程服务器(包括 NAS )上搭建机器人,就暴露了很大的局限性。所以我就基于 Docker 搭建了一套基于 cqhttp + qsign + nonebot2 的框架,一步步搭建出一套可以高速部署、稳定运行,且适合软件开发的一体化环境。此系列博客《docker安装并跑通跑通QQ机器人实践》记录了整个搭建流程,供大家参考。
2. 目标
2.1 目标一:构建基于 Docker 的跨平台应用程序
本项目将以 Docker 为依托,设计并实现一个由三个独立容器构成的分布式架构。
2.1.1 系统架构图
请参见下图以直观了解整个系统的布局:
2.1.2 模块简介
1)bs-qsign 签名服务器模块
该模块作为 QQ 机器人的核心依赖,负责提供必要的签名服务。没有它,机器人在登录及后续操作时将遭遇登录失败警报,甚至可能触发 QQ 平台的风控机制。bs-qsign 容器对外暴露 18080 端口,用于接收来自 bs-cqhttp 的签名访问连接。
2)bs-nonebot 模块
此模块基于 nonebot 应用框架构建,专为简化 QQ 机器人应用开发而设计。开发者无需深入理解底层通讯协议,只需专注于功能插件的开发,即可快速构建丰富的机器人功能。bs-nonebot 容器对外暴露 15703 端口,用于接收来自 bs-cqhttp 的 WebSocket 反向连接。
3)bs-cqhttp 模块
bs-cqhttp 扮演 QQ 客户端模拟器的角色,实现 QQ 账号的登录、好友管理、消息收发等全套基础功能。在当前框架中,需确保如下配置:
- 将 bs-cqhttp 指向 bs-qsign 提供的签名服务端口:18080;
- 设置 bs-cqhttp 的服务器连接配置,使其通过 WebSocket 反向连接至 bs-nonebot 开放的 15703 端口。
综上,通过整合这三个紧密协作的 Docker 容器,本项目旨在构建一个跨操作系统、易于部署、稳定运行且高度适应软件开发需求的 QQ 机器人解决方案。
2.2 目标二:一键部署容器化应用
为极大简化部署流程,针对每个模块,我均编写了生成镜像及启动容器的Shell脚本。这些脚本不仅预设了端口映射与目录挂载,还确保用户可通过宿主机端口直接访问容器服务,以及利用挂载的宿主机目录轻松调整容器内的配置文件与源代码。
2.2.1 部署脚本示意图
以下是部署脚本功能的可视化表示:
3 知识储备
以下知识虽具有学习必要性,但在初期阶段无需过分深入探究,仅需掌握满足基本应用场景所需的部分即可。随着实践频次的增加,您自然而然会对这些知识愈发熟悉且游刃有余。
3.1 Docker 基础知识及简单操作
安装建议:
docker 官网:
https://docker.com
参考文章:
手搓 Docker Image Creator(DIC)工具(02):预备知识
3.2 Dockerfile 脚本相关知识
Dockerfile 的相关知识网上有很多教程。参考文章:
- 菜鸟教程 - Dockerfile
- 手搓 Docker Image Creator(DIC)工具(02):预备知识
3.3 Shell 脚本基础知识及简单脚本编写
Linux与macOS操作系统凭借其内置的终端环境,对Shell的支持表现卓越,为用户提供了完善的Shell脚本执行与命令行操作环境。
相比之下,Windows系统自带的Shell支持相对有限。为此,我们建议Windows用户安装Git这一广受欢迎且广泛应用的版本控制工具。Git不仅用于管理如Github、Gitee等平台上的代码仓库,其安装包中还附带一个名为Git Bash的终端应用程序,该程序对Shell的支持尤为出色。
在Windows下使用Git Bash,用户将受益于:
- 全面的Unix/Linux命令集:
Git Bash集成了一系列常用的Unix/Linux命令,使得在Windows环境中也能流畅执行跨平台的Shell脚本与命令操作。 - 优异的Shell兼容性:
Git Bash确保了Shell脚本在Windows上的高兼容性执行,减少因操作系统差异引发的移植问题。 - 无缝对接Git功能:
作为Git客户端的一部分,Git Bash无缝整合了Git命令,方便用户在同一个环境中进行版本控制与Shell操作。
综上所述,对于需要在Windows系统中获得良好Shell支持的场景,尤其是涉及使用我所提供的依赖Shell功能的代码,安装并利用Git Bash将显著提升兼容性与使用体验。
官网:https://git-scm.com/
4 成品演示