18浏览
查看: 18|回复: 0

[进阶] Arduino UNO Q 板载 Nanobot 自动化编程指南之五

[复制链接]
本帖最后由 topdog 于 2026-3-28 17:33 编辑

本文主要介绍给Nanobot添加知识库。知识库系统是一个轻量级但功能完备的本地向量检索解决方案,在隐私安全、检索性能和易用性之间取得了良好平衡。简单说:让 Agent 拥有长期记忆,而不只是每次对话的短期上下文。

一,为什么要安装知识库?

知识库解决的核心问题:

1. 突破上下文限制

LLM 有 token 限制,无法一次性加载大量文档。知识库通过向量检索,只提取相关片段,让 Agent 能访问海量资料。

2. 私有数据安全

企业内部文档、个人笔记不能上传到云端。本地 ChromaDB 存储确保数据不外泄。

3. 减少重复搜索

网页搜过一次就入库,下次直接查知识库,省时间省 API 调用。

4. 定制化知识域

给 Agent 喂专业资料(技术文档、行业规范、产品手册),让它成为领域专家。

5. 离线可用

网络不好时,已入库的内容照样能查。

二,Nanobot知识库采用ChromaDB向量库的方案

从Nanobot的小巧python结构考虑选择了ChromaDB向量库的方案(官网地址:https://chroma.org.cn/

选择 ChromaDB 的原因:

1. 本地部署零配置

无需启动额外服务,pip 安装即用。不像 Milvus、Weaviate 需要容器或独立进程。

2. 轻量级

适合个人项目和小团队,资源占用低。nanobot 定位是本地助手,不需要分布式向量库。

3. Python 原生

纯 Python 实现,与 nanobot 技术栈无缝集成,调试方便。

4. 持久化简单

数据存为本地文件,备份就是复制文件夹,迁移无负担。

5. API 简洁

collection.add(documents=texts, embeddings=vectors)
collection.query(query_embeddings=vec, n_results=5)

几行代码完成入库和检索。

6. 成熟稳定

开源社区活跃,文档完善,问题好排查。

最终确定Nanobot 知识库是一个本地向量检索系统,基于 ChromaDB 存储和百度千帆嵌入模型,支持多种文档格式的导入和语义搜索。

核心特点:
     1,数据完全本地存储,保密性强,
     2,支持多种文档格式(PDF、DOCX、EPUB、HTML 等),
     3,支持网页 URL 自动抓取入库,
     4,基于语义相似度的向量检索。

三,Nanobot知识库安装和配置
  1. cd /home/Arduino/nanobot/
  2. uv add chromadb pymupdf python-docx ebooklib beautifulsoup4 httpx
复制代码


百度千帆 embedding-v1在`~/.nanobot/config.json`  配置如下:


  1. {
  2.   "providers": {
  3.     "baiduqianfan": {
  4.       "apiKey": "bce-v3/ALTAK-xxx",
  5.       "apiBase": "https://qianfan.baidubce.com/v2"
  6.     }
  7.   }
  8. }
复制代码

四,Nanobot知识库的技术架构


  1. Agent Layer
  2.   Tools (agent/tools/knowledge.py)
  3.   - kb_create    - kb_delete    - kb_list
  4.   - kb_add       - kb_search
  5.                      Manager Layer
  6.   KnowledgeBaseManager
  7.   - 统一管理多个知识库
  8.   - 支持 URL 抓取、文件解析
  9.                       Backend Layer
  10.   LocalKnowledgeBase (knowledge/local_kb.py)
  11.   - ChromaDB 向量存储
  12.   - 千帆 Embedding API
  13.   - 文本分块与索引
  14.                       Storage Layer
  15.   ~/.nanobot/workspace/knowledge/
  16.   - chroma/        (向量数据库)
  17.   - kb_metadata.json (知识库元数据)
复制代码

五,支持的文档格式[td]
格式
扩展名
解析库
PDF.pdfPyMuPDF
Word.doc, .docxpython-docx
EPUB.epubebooklib
HTML.html, .htmBeautifulSoup
CSV.csvcsv 模块
文本.txt, .md直接读取
六,知识库工具接口[td]
工具
功能
参数
kb_create创建知识库name
kb_delete删除知识库kb_id
kb_list列出知识库
kb_add添加文档kb_id + content/file_path/url
kb_search搜索知识库kb_id, query
七,实战将TinyML Cookbook入库

1,获得一本TinyML Cookbook pdf的书籍,我在pc机上已经用GLM-OCR转为markdown格式,
2,用MobaXterm把文件上传到Q板的文件夹里面。文件位置"/home/arduino/Documents/TinyML Cookbook (2022).md"

3,在飞书中告诉Nanobot一句:将TinyML Cookbook加入知识库。
4,AI智能助手Nanobot秒级完成任务。

Arduino UNO Q 板载 Nanobot 自动化编程指南之五图2


Arduino UNO Q 板载 Nanobot 自动化编程指南之五图1

知识库让 Nanobot 从"对话助手"升级为"领域专家",核心是本地存储、向量检索、多格式支持。装好依赖、配好千帆API,创建知识库后导入文档即可使用。





您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4 备案 沪公网安备31011502402448

© 2013-2026 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail