nanobot保姆级教程:从Docker拉取镜像到Chainlit界面提问全流程详解

你是不是也想拥有一个属于自己的AI助手,但又觉得那些动辄几十万行代码的开源项目太复杂,部署起来让人望而却步?今天,我要给你介绍一个“小而美”的解决方案——nanobot。

想象一下,你只需要一个Docker命令,就能拉取一个预置了强大模型和友好界面的完整AI环境。几分钟后,你就能在一个类似ChatGPT的网页界面里,向一个4B参数的大模型提问,让它帮你查看服务器状态、写代码,甚至还能把它接入QQ,变成一个随时待命的聊天机器人。

这一切,只需要一个不到4000行代码的轻量级项目就能实现。听起来是不是很心动?别急,这篇教程就是为你准备的。我会手把手带你走完全流程,从零开始,直到你能熟练使用nanobot进行对话和扩展。我们开始吧。

1. 认识nanobot:你的超轻量级AI伙伴

在开始动手之前,我们先花几分钟了解一下nanobot到底是什么,以及它能为你做什么。

1.1 nanobot是什么?

简单来说,nanobot是一个开源的、超轻量级的个人AI助手框架。它的设计理念非常明确:极简、易用、功能核心

它最吸引人的特点就是“小”。它的核心代理功能代码只有大约3500行(你可以随时运行命令验证)。相比之下,一些知名的同类项目代码量可能是它的上百倍。代码量小意味着什么?意味着它更干净,依赖更少,出问题的概率更低,你理解和定制它的门槛也大大降低。

1.2 这个镜像里有什么?

我们今天要使用的,是一个已经为你打包好的Docker镜像。你不需要自己去安装Python环境、配置CUDA、下载模型权重,这些繁琐的步骤都已经完成了。这个镜像里主要包含三部分核心内容:

  1. nanobot框架本身:就是那个约3500行代码的轻量级AI助手核心。
  2. Qwen2.5-4B-Instruct模型:这是由阿里通义千问团队开源的一个40亿参数的大语言模型。它被内置的vLLM高性能推理引擎所部署,这意味着它的推理速度很快。“Instruct”版本表示它经过指令微调,特别擅长理解和完成你给它的各种任务。
  3. Chainlit交互界面:这是一个专门为基于大语言模型的应用设计的UI框架。它提供了类似ChatGPT的网页聊天界面,让你可以通过浏览器和nanobot自然对话。

简单理解,这个镜像就是一个“开箱即用”的AI助手服务器。你拉取、运行它,就相当于启动了一个私有的、功能完整的ChatGPT服务。

1.3 你能用它来做什么?

  • 个人知识问答:像使用ChatGPT一样,向它提问任何问题。
  • 编程助手:让它帮你写代码片段、解释代码逻辑、调试错误。
  • 系统运维:正如教程示例,你可以让它执行nvidia-smi等命令(在安全许可内)来查看服务器状态。
  • 内容创作:辅助写作、翻译、总结文档。
  • 扩展为聊天机器人:教程后半部分会教你如何将其接入QQ,变成一个24小时在线的群聊或私聊机器人。

好了,背景介绍完毕。我知道你已经迫不及待想看到它运行起来了。接下来,我们就进入实战环节。

2. 第一步:获取并运行nanobot镜像

这是最基础的一步,我们需要在服务器或本地电脑上启动nanobot服务。

2.1 前提准备

确保你的运行环境满足以下条件:

  • 操作系统:Linux(如Ubuntu、CentOS)或macOS。Windows用户建议使用WSL2。
  • Docker:已经安装并启动Docker服务。如果还没安装,请先搜索“如何安装Docker”完成安装。
  • 硬件:由于需要运行4B参数的大模型,建议至少有8GB以上的可用内存。如果能有GPU(NVIDIA显卡)则推理速度会快很多,纯CPU也能运行但会慢一些。
  • 网络:能够顺畅访问Docker镜像仓库。

2.2 一行命令启动服务

打开你的终端(命令行工具),执行下面这条命令:

docker run -d --name my_nanobot \
  -p 8000:8000 \
  -p 7860:7860 \
  --restart unless-stopped \
  csdnmirrors/nanobot:latest

我来解释一下这个命令在做什么:

  • docker run:告诉Docker要运行一个新的容器。
  • -d:让容器在“后台”运行,这样你关闭终端窗口服务也不会停。
  • --name my_nanobot:给这个容器起个名字,方便后续管理,这里叫my_nanobot
  • -p 8000:8000:进行端口映射。将容器内部的8000端口(nanobot的API服务端口)映射到你主机的8000端口。
  • -p 7860:7860:同样,将容器内部的7860端口(Chainlit网页界面端口)映射到你主机的7860端口。
  • --restart unless-stopped:设置重启策略。除非你手动停止容器,否则如果容器意外退出,Docker会自动重启它,非常适合用来部署服务。
  • csdnmirrors/nanobot:latest:这是我们要拉取和运行的镜像地址。csdnmirrors/是镜像仓库,nanobot是镜像名,latest是标签(代表最新版本)。

执行命令后,Docker会自动从网络下载镜像,然后启动容器。第一次运行需要下载镜像,会花一些时间,请耐心等待。当你看到终端输出一串长长的容器ID时,就表示启动命令提交成功了。

2.3 确认服务部署成功

容器启动后,内部的nanobot服务会自动开始加载模型。我们需要确认模型是否加载成功。

  1. 首先,进入正在运行的容器内部:

    docker exec -it my_nanobot bash
    

    这条命令会打开一个容器的bash终端。

  2. 查看模型服务的日志:

    cat /root/workspace/llm.log
    

    你需要关注日志的末尾部分。当你看到类似下面的输出时,就表示模型已经成功加载并准备好了:

    ...
    INFO 07-28 12:34:56 llm_engine.py:73] Initializing an LLM engine with config: model="/root/workspace/Qwen2.5-4B-Instruct", ...
    INFO 07-28 12:35:10 llm_engine.py:220] # GPU blocks: 1245, # CPU blocks: 256
    INFO 07-28 12:35:10 llm_engine.py:222] KV cache usage: 0.0%
    INFO 07-28 12:35:10 server.py:127] Starting LLM server on http://0.0.0.0:8000 ...
    

    关键信息是 Starting LLM server on http://0.0.0.0:8000,这说明模型服务已经在8000端口就绪。

    如果日志还在不断滚动显示加载进度,请稍等片刻。4B模型在CPU上加载可能需要几分钟,在有GPU的环境下会快很多。

  3. 确认无误后,可以按 Ctrl+D 或输入 exit 退出容器的bash终端。

3. 第二步:使用Chainlit界面与nanobot对话

服务跑起来了,我们怎么用呢?最直观的方式就是通过网页界面。

3.1 访问Chainlit聊天界面

在你的电脑浏览器中,打开一个新的标签页,输入以下地址:

http://你的服务器IP地址:7860

如果你是在自己的电脑上运行Docker(比如用本地Linux或macOS),那么“你的服务器IP地址”就是 localhost127.0.0.1。所以地址是:

http://localhost:7860

如果一切正常,你将看到一个简洁、现代的聊天界面。这基本上就是你的私有ChatGPT了!

3.2 开始你的第一次提问

在界面底部的输入框里,你可以直接输入问题。让我们按照教程的示例,测试一个实用功能。

输入使用nvidia-smi看一下显卡配置

然后点击发送或按回车。nanobot在后台会尝试执行这个命令,并将结果返回给你。

你会看到

  • 界面中会先显示你的问题。
  • 稍等片刻(时间取决于命令执行和模型生成速度),nanobot的回复会显示出来。
  • 回复内容应该包含nvidia-smi命令输出的详细信息,比如显卡型号、驱动版本、GPU利用率、显存占用等。这证明了nanobot不仅能够理解你的自然语言指令,还能在安全许可范围内执行系统命令并反馈结果。

3.3 尝试更多对话

现在,你可以尽情尝试了:

  • 技术问题:“用Python写一个快速排序算法。”
  • 系统操作:“当前目录下有哪些文件?”
  • 知识问答:“解释一下什么是Transformer模型。”
  • 创意写作:“帮我写一首关于春天的短诗。”

你会发现,基于Qwen2.5-4B-Instruct模型的nanobot,在代码、技术问题上的表现相当不错,日常对话和创作也完全够用。

4. 第三步:功能扩展——将nanobot接入QQ机器人

让AI助手待在网页里还不够酷?那我们把它变成一个QQ群里的“小伙伴”吧!这样你和你的群友都能随时随地@它来提问。

重要前提:这部分操作需要在容器内部进行,并且需要你有一个QQ开放平台的开发者账号(个人即可申请)。

4.1 准备工作:获取QQ机器人凭证

  1. 访问QQ开放平台:打开浏览器,访问 https://q.qq.com/,点击右上角“登录”并使用你的QQ号登录。
  2. 进入开发者中心:登录后,在顶部导航栏找到并进入“开发者中心”。
  3. 创建应用:在开发者中心,点击“创建应用”,选择“机器人”类型。
  4. 填写信息:按照指引填写应用名称、描述等信息,并创建成功。
  5. 获取关键信息:创建成功后,在应用的管理页面,你需要找到并记录下两个关键信息:
    • AppID:你的机器人的唯一标识。
    • AppSecret:相当于机器人的密码,用于API鉴权,务必保密

记下这两个字符串,我们下一步就要用到它们。

4.2 配置nanobot支持QQ通道

现在,我们需要告诉nanobot你的QQ机器人信息。

  1. 首先,进入nanobot容器内部(如果已经退出):

    docker exec -it my_nanobot bash
    
  2. 使用 vim 编辑器修改nanobot的配置文件:

    vim /root/.nanobot/config.json
    

    (如果你不熟悉vim,也可以使用 cat 查看后,用 echo 命令重写,但vim更直观。vim基本操作:按 i 进入编辑模式,修改后按 Esc 退出编辑,输入 :wq 保存并退出。)

  3. 在配置文件中,找到 channels 配置部分。你需要把它修改成类似下面的结构。请将 YOUR_APP_IDYOUR_APP_SECRET 替换成你刚才记下的真实信息

    {
      "channels": {
        "qq": {
          "enabled": true,
          "appId": "你的真实AppID",
          "secret": "你的真实AppSecret",
          "allowFrom": []
        }
      }
    }
    
    • "enabled": true:开启QQ通道。
    • "allowFrom": []:这是一个数组,用于限制机器人响应的来源。如果为空数组 [],则表示响应所有收到的消息。你也可以填入特定的QQ号或群号,实现白名单控制。
  4. 保存并退出配置文件。

4.3 启动QQ网关服务

配置好后,nanobot需要一个额外的服务来连接QQ平台。这个服务叫做 gateway

在容器的bash终端中,运行以下命令启动网关:

nanobot gateway

如果启动成功,你将看到终端输出类似下面的信息,表明网关服务正在运行并等待连接:

INFO:     Started server process [1]
INFO:     Waiting for application startup.
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:9000 (Press CTRL+C to quit)

注意:这个命令会占用当前终端。如果你想让它也在后台运行,可以在命令前加 nohup 并用 & 放到后台,或者更简单地,在Docker启动命令中直接配置。但为了教程简单,我们先这样前台运行,确认功能。

4.4 在QQ中测试你的机器人

  1. 回到QQ开放平台的应用管理页面。
  2. 通常会有“上线”或“发布”的流程,也可能需要配置“消息推送URL”(Webhook)。QQ开放平台的界面和流程可能会更新,请根据平台最新的指引,将你的机器人添加到某个QQ群或设置为好友。
  3. 在QQ群或私聊中,@你的机器人并发送消息,比如:“你好,你是谁?”
  4. 如果一切配置正确,nanobot网关服务收到了消息,并转发给内部的AI模型处理,你很快就会收到机器人的回复!

恭喜你!至此,你已经完成了一个从部署、基础使用到高级扩展的完整流程。你的个人AI助手已经不仅可以通过网页访问,还能活跃在你的QQ聊天中了。

5. 总结与后续探索

我们来回顾一下今天完成的事情:

  1. 一键部署:用一条Docker命令,拉取并运行了集成了nanobot框架、Qwen2.5-4B大模型和Chainlit界面的完整环境。
  2. 核心验证:通过查看日志确认服务启动,并通过网页界面成功与AI助手进行了第一次对话,测试了其执行系统命令的能力。
  3. 功能扩展:通过配置QQ开放平台的信息,将nanobot接入了QQ,使其成为一个真正的聊天机器人。

nanobot的优势在这个过程中体现得淋漓尽致:极其简单的部署清晰的核心功能方便的扩展接口。它没有用复杂的架构让你眼花缭乱,而是直截了当地提供了一个可用的AI助手底座。

你可以继续探索的方向

  • 模型更换:nanobot支持接入其他兼容OpenAI API的模型。你可以尝试修改配置,让它使用其他你喜欢的模型。
  • 更多通道:除了QQ,理论上它可以扩展接入微信、Telegram、Slack等任何消息平台。
  • 功能定制:研究那3500行核心代码,为你的nanobot添加特定的技能或知识。
  • 部署优化:学习如何使用Docker Compose或Kubernetes来更优雅地管理这个服务。

希望这篇保姆级教程能帮你顺利开启个人AI助手之旅。技术的乐趣在于动手尝试和不断探索,现在,属于你的nanobot已经准备就绪,去和它对话,去挖掘它的潜力吧!


获取更多AI镜像

想探索更多AI镜像和应用场景?访问 CSDN星图镜像广场,提供丰富的预置镜像,覆盖大模型推理、图像生成、视频生成、模型微调等多个领域,支持一键部署。

Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐