diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/witchaind\347\231\273\345\275\225\347\225\214\351\235\242.png" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/witchaind\347\231\273\345\275\225\347\225\214\351\235\242.png" new file mode 100644 index 0000000000000000000000000000000000000000..dfc28f4046fd4d61f48a0b0903ae2cf565ec5bc3 Binary files /dev/null and "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/witchaind\347\231\273\345\275\225\347\225\214\351\235\242.png" differ diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\345\233\236\345\210\260\351\246\226\351\241\265.png" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\345\233\236\345\210\260\351\246\226\351\241\265.png" new file mode 100644 index 0000000000000000000000000000000000000000..92685c5d977abe55f5d201aa57da479c8af84561 Binary files /dev/null and "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\345\233\236\345\210\260\351\246\226\351\241\265.png" differ diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\345\257\274\345\205\245\346\226\207\346\241\243\347\225\214\351\235\242.png" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\345\257\274\345\205\245\346\226\207\346\241\243\347\225\214\351\235\242.png" new file mode 100644 index 0000000000000000000000000000000000000000..c4b71d6def0b6407f721cf3c137d714d923f86f1 Binary files /dev/null and "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\345\257\274\345\205\245\346\226\207\346\241\243\347\225\214\351\235\242.png" differ diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\345\257\274\345\207\272\346\210\220\345\212\237.png" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\345\257\274\345\207\272\346\210\220\345\212\237.png" new file mode 100644 index 0000000000000000000000000000000000000000..3458c5330fad7b8c89cb0bc8efb70f875d6f17d2 Binary files /dev/null and "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\345\257\274\345\207\272\346\210\220\345\212\237.png" differ diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\345\257\274\345\207\272\350\265\204\344\272\247\347\225\214\351\235\242.png" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\345\257\274\345\207\272\350\265\204\344\272\247\347\225\214\351\235\242.png" new file mode 100644 index 0000000000000000000000000000000000000000..469871fa9483a698b03374c3686b22156ad6e33a Binary files /dev/null and "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\345\257\274\345\207\272\350\265\204\344\272\247\347\225\214\351\235\242.png" differ diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\346\211\271\351\207\217\345\257\274\345\205\245\346\210\220\345\212\237\347\225\214\351\235\242.png" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\346\211\271\351\207\217\345\257\274\345\205\245\346\210\220\345\212\237\347\225\214\351\235\242.png" new file mode 100644 index 0000000000000000000000000000000000000000..8aba84e49c981c8f81cb91b14eee64f179bf0b38 Binary files /dev/null and "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\346\211\271\351\207\217\345\257\274\345\205\245\346\210\220\345\212\237\347\225\214\351\235\242.png" differ diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\346\211\271\351\207\217\345\257\274\345\205\245\347\225\214\351\235\242.png" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\346\211\271\351\207\217\345\257\274\345\205\245\347\225\214\351\235\242.png" new file mode 100644 index 0000000000000000000000000000000000000000..7932773ccf59f58a283caccb92bd5af9475a7be9 Binary files /dev/null and "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\346\211\271\351\207\217\345\257\274\345\205\245\347\225\214\351\235\242.png" differ diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\346\211\271\351\207\217\346\255\243\345\234\250\345\257\274\345\205\245\347\225\214\351\235\242.png" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\346\211\271\351\207\217\346\255\243\345\234\250\345\257\274\345\205\245\347\225\214\351\235\242.png" new file mode 100644 index 0000000000000000000000000000000000000000..50805afdb4764b74d9d16067999d7b39ce901d2a Binary files /dev/null and "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\346\211\271\351\207\217\346\255\243\345\234\250\345\257\274\345\205\245\347\225\214\351\235\242.png" differ diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\346\226\260\345\273\272\350\265\204\344\272\247\345\272\223\345\241\253\345\206\231\345\261\225\347\244\272\347\225\214\351\235\242.png" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\346\226\260\345\273\272\350\265\204\344\272\247\345\272\223\345\241\253\345\206\231\345\261\225\347\244\272\347\225\214\351\235\242.png" new file mode 100644 index 0000000000000000000000000000000000000000..8eb29b167f6ff1c2d951cd841f2340b027dec808 Binary files /dev/null and "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\346\226\260\345\273\272\350\265\204\344\272\247\345\272\223\345\241\253\345\206\231\345\261\225\347\244\272\347\225\214\351\235\242.png" differ diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\346\226\260\345\273\272\350\265\204\344\272\247\345\272\223\347\225\214\351\235\242.png" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\346\226\260\345\273\272\350\265\204\344\272\247\345\272\223\347\225\214\351\235\242.png" new file mode 100644 index 0000000000000000000000000000000000000000..9da6121b1c1271c5b09c9292690ba3ab8d0a6cd2 Binary files /dev/null and "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\346\226\260\345\273\272\350\265\204\344\272\247\345\272\223\347\225\214\351\235\242.png" differ diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\346\237\245\347\234\213\350\265\204\344\272\247\345\272\223\347\225\214\351\235\242.png" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\346\237\245\347\234\213\350\265\204\344\272\247\345\272\223\347\225\214\351\235\242.png" new file mode 100644 index 0000000000000000000000000000000000000000..a533772ce715bbf2c4a9f374b03e7fe20bf470a1 Binary files /dev/null and "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\346\237\245\347\234\213\350\265\204\344\272\247\345\272\223\347\225\214\351\235\242.png" differ diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\346\255\243\345\234\250\345\257\274\345\207\272\347\225\214\351\235\242.png" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\346\255\243\345\234\250\345\257\274\345\207\272\347\225\214\351\235\242.png" new file mode 100644 index 0000000000000000000000000000000000000000..659ebeae5b25738043f7750c7cc44a1e80557ed8 Binary files /dev/null and "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\346\255\243\345\234\250\345\257\274\345\207\272\347\225\214\351\235\242.png" differ diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\347\202\271\345\207\273\351\200\200\345\207\272\347\225\214\351\235\242.png" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\347\202\271\345\207\273\351\200\200\345\207\272\347\225\214\351\235\242.png" new file mode 100644 index 0000000000000000000000000000000000000000..22b02fff81fe1db3232b80607da6f10f710c8c64 Binary files /dev/null and "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\347\202\271\345\207\273\351\200\200\345\207\272\347\225\214\351\235\242.png" differ diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\350\247\243\346\236\220\344\270\255\347\225\214\351\235\242.png" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\350\247\243\346\236\220\344\270\255\347\225\214\351\235\242.png" new file mode 100644 index 0000000000000000000000000000000000000000..913a5ce34a0a3e95af29e7c4433e5367c0adf008 Binary files /dev/null and "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\350\247\243\346\236\220\344\270\255\347\225\214\351\235\242.png" differ diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\350\247\243\346\236\220\346\210\220\345\212\237\347\225\214\351\235\242.png" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\350\247\243\346\236\220\346\210\220\345\212\237\347\225\214\351\235\242.png" new file mode 100644 index 0000000000000000000000000000000000000000..a1c6dc638d0dbd51abc374d563da150ff328cbe3 Binary files /dev/null and "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\350\247\243\346\236\220\346\210\220\345\212\237\347\225\214\351\235\242.png" differ diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\350\247\243\346\236\220\346\226\271\346\263\225\351\200\211\346\213\251\347\225\214\351\235\242.png" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\350\247\243\346\236\220\346\226\271\346\263\225\351\200\211\346\213\251\347\225\214\351\235\242.png" new file mode 100644 index 0000000000000000000000000000000000000000..f0449b134e1ebe5d54ca46099b57c6ad0b949eca Binary files /dev/null and "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\350\247\243\346\236\220\346\226\271\346\263\225\351\200\211\346\213\251\347\225\214\351\235\242.png" differ diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\350\247\243\346\236\220\347\273\223\346\236\234\350\277\207\346\273\244\347\225\214\351\235\242.png" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\350\247\243\346\236\220\347\273\223\346\236\234\350\277\207\346\273\244\347\225\214\351\235\242.png" new file mode 100644 index 0000000000000000000000000000000000000000..e3d3ba7727d53490b22ecc7a1b422d5ae03390d3 Binary files /dev/null and "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\350\247\243\346\236\220\347\273\223\346\236\234\350\277\207\346\273\244\347\225\214\351\235\242.png" differ diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\350\247\243\346\236\220\350\257\246\346\203\205\347\225\214\351\235\242.png" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\350\247\243\346\236\220\350\257\246\346\203\205\347\225\214\351\235\242.png" new file mode 100644 index 0000000000000000000000000000000000000000..e018cb0904b414d63e1008209adb47c0b8afb858 Binary files /dev/null and "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\350\247\243\346\236\220\350\257\246\346\203\205\347\225\214\351\235\242.png" differ diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\350\265\204\344\272\247\345\272\223\345\210\233\345\273\272\345\256\214\346\210\220\347\225\214\351\235\242.png" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\350\265\204\344\272\247\345\272\223\345\210\233\345\273\272\345\256\214\346\210\220\347\225\214\351\235\242.png" new file mode 100644 index 0000000000000000000000000000000000000000..7bf98b8217dda2358621fe9b11164407e2040ae8 Binary files /dev/null and "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\350\265\204\344\272\247\345\272\223\345\210\233\345\273\272\345\256\214\346\210\220\347\225\214\351\235\242.png" differ diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\350\277\233\345\205\245\350\265\204\344\272\247\345\272\223\347\225\214\351\235\242.png" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\350\277\233\345\205\245\350\265\204\344\272\247\345\272\223\347\225\214\351\235\242.png" new file mode 100644 index 0000000000000000000000000000000000000000..795e99cdad03b2a3377fe77e51e336c6a6ca5b29 Binary files /dev/null and "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\350\277\233\345\205\245\350\265\204\344\272\247\345\272\223\347\225\214\351\235\242.png" differ diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\351\200\211\346\213\251\346\226\207\344\273\266.png" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\351\200\211\346\213\251\346\226\207\344\273\266.png" new file mode 100644 index 0000000000000000000000000000000000000000..8031fec14e15b0e80e596f21cf79fe2b58ff7293 Binary files /dev/null and "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/pictures/witChainD/\351\200\211\346\213\251\346\226\207\344\273\266.png" differ diff --git "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/\346\234\254\345\234\260\350\265\204\344\272\247\345\272\223\346\236\204\345\273\272\346\214\207\345\215\227.md" "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/\346\234\254\345\234\260\350\265\204\344\272\247\345\272\223\346\236\204\345\273\272\346\214\207\345\215\227.md" index 21873a3335df2e1ce11832ed0ae6f38dfa33093a..e940c0b8f4c099131bbead0c3db7a5845d2faac2 100644 --- "a/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/\346\234\254\345\234\260\350\265\204\344\272\247\345\272\223\346\236\204\345\273\272\346\214\207\345\215\227.md" +++ "b/docs/user-guide/\351\203\250\347\275\262\346\214\207\345\215\227/\346\234\254\345\234\260\350\265\204\344\272\247\345\272\223\346\236\204\345\273\272\346\214\207\345\215\227.md" @@ -1,406 +1,156 @@ # 本地资产库构建指南 -- RAG 是一个检索增强的模块,该指南主要是为rag提供命令行的方式进行数据库管理、资产管理、资产库管理和语料资产管理; - 对于数据库管理提供了清空数据库、初始化数据库等功能; - 对于资产管理提供了资产创建、资产查询和资产删除等功能; - 对于资产库管理提供了资产库创建、资产库查询和资产库删除等功能; - 对于语料资产管理提供了语料上传、语料查询和语料删除等功能。 -- 当前指南面向管理员进行编写,对于管理员而言,可以拥有多个资产,一个资产包含多个资产库(不同资产库的使用的向量化模型可以不同),一个资产库对应一个语料资产。 -- 本地语料上传指南是用户构建项目专属语料的指导,当前支持 docx、pdf、markdown、txt 和 xlsx 文件上传,推荐使用 docx 格式上传。 - +本平台设计的目的为了为企业(用户)提供一个可视化入口实现对本地文档资产的管理,功能方面分为以下几个部分: +- 用户管理: + + 您可以通过账号登入witchainD平台并在平台配置大模型,为后续某些文档解析模式提供能力。 +- 资产管理 + + 通过指定资产名称、资产简介、资产默认解析方法、资产默认分块大小和embedding模型等条目创建、删除、导入资产、编辑资产或资产信息 +- 文档管理 + + - 支持用户上传限定大小和限定数量的文件,也允许用户下载自己上传的文件,用户可以通过点击资产卡片的形式进入资产,此时文档以条目的形式展示。 + + - 支持txt、md、xlsx、docx和doc以及pdf文档的文档解析 + - 文档解析方式有三种general、ocr和enhanced模式,general模式下只提取文字和表格,ocr模式下不仅提取文字和表格嗨提取部分文档的图片内容,enhanced在ocr的基础上对图片中提取的内容进行总结。 + +- 文档解析结果管理: + + 通过指定chunk的类别和关键字过滤目标chunk或者可以指定chunk是否启用,来评判或消除chunk对检索造成的影响。 +- 任务管理 + + 查看当前导入导出资产和文档解析任务的状态、取消或移除导入导出资产库和文档解析任务 +- 检索增强: + + 本平台最终解析的结果通过向量化、关键字的形式对外呈现检索结果,也提供了token压缩和问题补全等技术增强结果命中的概率,也使用了上下文随机关联的形式补全检索结果。 ## 准备工作 -- RAG 中关于语料上传目录挂载的配置: - -将本地语料保存到服务器的目录,例如 /home/docs 目录,且将 /home/data 目录权限设置为755 - -```bash -# 设置本地存放文档目录权限为755 -chmod -R 755 /home/docs -``` - -将文件存放的源目录映射至 RAG 容器目标目录,源目录的配置在 中,下面是文件中具体配置映射源目录的配置方法: - -![配置映射源目录](./pictures/本地资产库构建/配置映射源目录.png) - -中间层的配置(链接源目录和目标目录的配置)在 中,下面是文件中具体映射中间层的配置方法: - -![配置映射中间层](./pictures/本地资产库构建/配置映射中间层.png) - -目标目录的配置在 中,下面是文件中具体映射目标目录的配置方法: - -![配置映射目标目录](./pictures/本地资产库构建/配置映射目标目录.png) - -- 更新 Copilot 服务: - +- 部署witchaind服务 + ```bash - root@openeuler:/home/EulerCopilot/deploy/chart# helm upgrade -n euler-copilot service . - # 请注意:service是服务名,可根据实际修改 + # 进入witchaind目录 + cd euler-copilot-framework_openeuler/deploy/chart/witchaind ``` - -- 进入到 RAG 容器: - ```bash - root@openeuler:~# kubectl -n euler-copilot get pods - NAME READY STATUS RESTARTS AGE - framework-deploy-service-bb5b58678-jxzqr 2/2 Running 0 16d - mysql-deploy-service-c7857c7c9-wz9gn 1/1 Running 0 17d - pgsql-deploy-service-86b4dc4899-ppltc 1/1 Running 0 17d - rag-deploy-service-5b7887644c-sm58z 2/2 Running 0 110m - redis-deploy-service-f8866b56-kj9jz 1/1 Running 0 17d - vectorize-deploy-service-57f5f94ccf-sbhzp 2/2 Running 0 17d - web-deploy-service-74fbf7999f-r46rg 1/1 Running 0 2d - # 进入rag pod - root@openeuler:~# kubectl -n euler-copilot exec -it rag-deploy-service-5b7887644c-sm58z -- bash + # 编辑values.yaml + vim values.yaml + # 注意: + # - domain的配置和EulerCopilot主页域名配置方法相同且同根域名 + # - LLM设置和EulerCopilot的values中模型配置相同 + # - Embedding模型URL可填写为 http://vectorize-agent-service-service.euler-copilot.svc.cluster.local:8001/embedding或查看Embedding模型的服务IP后填写 + # - 密钥可随意填写为随机字符串 ``` - -- 设置 PYTHONPATH - ```bash - # 设置PYTHONPATH - export PYTHONPATH=$(pwd) + # 安装witchaind + helm install -n euler-copilot witchaind . ``` -## 上传语料 - -### 查看脚本帮助信息 - -```bash -python3 scripts/rag_kb_manager.pyc --help -usage: rag_kb_manager.pyc [-h] --method - {init_database_info,init_rag_info,init_database,clear_database,create_kb,del_kb,query_kb,create_kb_asset,del_kb_asset,query_kb_asset,up_corpus,del_corpus,query_corpus,stop_corpus_uploading_job} - [--database_url DATABASE_URL] [--vector_agent_name VECTOR_AGENT_NAME] [--parser_agent_name PARSER_AGENT_NAME] - [--rag_url RAG_URL] [--kb_name KB_NAME] [--kb_asset_name KB_ASSET_NAME] [--corpus_dir CORPUS_DIR] - [--corpus_chunk CORPUS_CHUNK] [--corpus_name CORPUS_NAME] [--up_chunk UP_CHUNK] - [--embedding_model {TEXT2VEC_BASE_CHINESE_PARAPHRASE,BGE_LARGE_ZH,BGE_MIXED_MODEL}] [--vector_dim VECTOR_DIM] - [--num_cores NUM_CORES] - -optional arguments: - -h, --help show this help message and exit - --method {init_database_info,init_rag_info,init_database,clear_database,create_kb,del_kb,query_kb,create_kb_asset,del_kb_asset,query_kb_asset,up_corpus,del_corpus,query_corpus,stop_corpus_uploading_job} - 脚本使用模式,有init_database_info(初始化数据库配置)、init_database(初始化数据库)、clear_database(清除数据库)、create_kb(创建资产)、 - del_kb(删除资产)、query_kb(查询资产)、create_kb_asset(创建资产库)、del_kb_asset(删除资产库)、query_kb_asset(查询 - 资产库)、up_corpus(上传语料,当前支持txt、html、pdf、docx和md格式)、del_corpus(删除语料)、query_corpus(查询语料)和 - stop_corpus_uploading_job(上传语料失败后,停止当前上传任务) - --database_url DATABASE_URL - 语料资产所在数据库的url - --vector_agent_name VECTOR_AGENT_NAME - 向量化插件名称 - --parser_agent_name PARSER_AGENT_NAME - 分词插件名称 - --rag_url RAG_URL rag服务的url - --kb_name KB_NAME 资产名称 - --kb_asset_name KB_ASSET_NAME - 资产库名称 - --corpus_dir CORPUS_DIR - 待上传语料所在路径 - --corpus_chunk CORPUS_CHUNK - 语料切割尺寸 - --corpus_name CORPUS_NAME - 待查询或者待删除语料名 - --up_chunk UP_CHUNK 语料单次上传个数 - --embedding_model {TEXT2VEC_BASE_CHINESE_PARAPHRASE,BGE_LARGE_ZH,BGE_MIXED_MODEL} - 初始化资产时决定使用的嵌入模型 - --vector_dim VECTOR_DIM - 向量化维度 - --num_cores NUM_CORES - 语料处理使用核数 -``` - -### 具体操作 - -以下出现的命令中带**初始化**字段需要在进行资产管理前按指南中出现的相对顺序进行执行,命令中带**可重复**执字段的在后续过程中可以反复执行,命令中带**注意**字段的需谨慎执行。 - -### 步骤1:配置数据库和 RAG 信息 - -- #### 配置数据库信息(初始化) - -```bash -python3 scripts/rag_kb_manager.pyc --method init_database_info --database_url postgresql+psycopg2://postgres:123456@{dabase_url}:{databse_port}/postgres -``` - -**注意:** - -**{dabase_url}**为 k8s 集群内访问 postgres 服务的 url,请根据具体情况修改,一般为 **{postgres_servive_name}-{{ .Release.Name }}.\.svc.cluster.local** 格式,其中 **{postgres_servive_name}** 可以从 找到: - -![k8s集群中postgres服务的名称](./pictures/本地资产库构建/k8s集群中postgres服务的名称.png) - -**{{ .Release.Name }}**和**\** 为部署服务时helm安装应用时指定的 **my-release-name** 以及 **my-namespace**,一条 helm 安装应用的命令如下所示: - -```bash -helm install my-release-name --namespace my-namespace path/to/chart -``` - -**database_port** 的信息可以在 中查看,以下为字段所在位置(一般为5432): - -![postgres服务端口](./pictures/本地资产库构建/postgres服务端口.png) - -数据库信息配置命令执行命令完成之后会在 scripts/config 下出现 database_info.json 文件,文件内容如下: - -```bash -{"database_url": "postgresql+psycopg2://postgres:123456@{dabase_url}:{databse_port}/postgres"} -``` - -下面是命令执行成功的截图: - -![数据库配置信息成功](./pictures/本地资产库构建/数据库配置信息成功.png) - -- #### 配置rag信息(初始化) - -```bash -python3 scripts/rag_kb_manager.pyc --method init_rag_info --rag_url http://{rag_url}:{rag_port} -``` - -**{rag_url}** 为 0.0.0.0,**{rag_port}** 可以从 中获取(一般为8005): - -![rag_port](./pictures/本地资产库构建/rag_port.png) - -数据库信息配置命令执行命令完成之后会在 scripts/config 下出现 rag_info.json 文件,文件内容如下: - -```bash -{"rag_url": "http://{rag_url}:{rag_port}"} -``` - -下面是命令执行成功的截图: - -![rag配置信息成功](./pictures/本地资产库构建/rag配置信息成功.png) - -### 步骤2:初始化数据库 - -- #### 初始化数据库表格 - -```bash -python3 scripts/rag_kb_manager.pyc --method init_database -# 注意: -# 对于特殊关系型数据库可指定插件参数'--vector_agent_name VECTOR_AGENT_NAME'和 '--parser_agent_name PARSER_AGENT_NAME';其中VECTOR_AGENT_NAME默认为vector, PARSER_AGENT_NAME默认为zhparser -``` - -命令执行完成之后可以进入数据库容器查看表格是否创建成功,首先获取命名空间中的所有节点名称: - -```bash -# 获取命名空间中的所有pod节点 -kubectl get pods -n euler-copilot -``` - -结果如下: - -![获取数据库pod名称](./pictures/本地资产库构建/获取数据库pod名称.png) - -使用下面命令进入数据库: - -```bash -kubectl exec -it pgsql-deploy-b4cc79794-qn8zd -n euler-copilot -- bash -``` - -进入容器后使用下面命令进入数据库: - -```bash -root@pgsql-deploy-b4cc79794-qn8zd:/tmp# psql -U postgres -``` - -再使用\dt查看数据库初始化情况,出现下面内容表示数据库初始化成功: - -![数据库初始化](./pictures/本地资产库构建/数据库初始化.png) - -- #### 清空数据库(注意) - - 假设您想清空 RAG 产生的所有数据库数据,可以使用下面命令(**此命令会清空整个数据库,需谨慎操作!**)。 - -```bash -python3 scripts/rag_kb_manager.pyc --method clear_database -# 清空数据库请谨慎操作 -``` - -### 步骤3:创建资产 - - 下列指令若不指定 kb_name,则默认资产名为 default_test(ps:Copilot 不允许存在两个同名的资产): - -- #### 创建资产(可重复) - -```bash -python3 scripts/rag_kb_manager.pyc --method create_kb --kb_name default_test -``` - -创建资产成功会有以下提示: - -![创建资产成功](./pictures/本地资产库构建/创建资产成功.png) - -创建同名资产会有以下提示: - -![重复创建资产失败](./pictures/本地资产库构建/重复创建资产失败.png) - -- #### 删除资产(可重复) - -```bash -python3 scripts/rag_kb_manager.pyc --method del_kb --kb_name default_test -``` - -删除资产成功会出现以下提示(会将资产下的所有资产库和语料资产全部删除): - -![删除资产成功](./pictures/本地资产库构建/删除资产成功.png) - -对于不存在的资产进行删除,会出现以下提示: - -![删除不存在的资产失败](./pictures/本地资产库构建/删除不存在的资产失败.png) - -- #### 查询资产(可重复) - -```bash -python3 scripts/rag_kb_manager.pyc --method query_kb -``` - -查询资产成功会出现下面内容: - -![查询资产](./pictures/本地资产库构建/查询资产.png) - -对于无资产的情况下查询资产会出现以下内容: - -![无资产时查询资产](./pictures/本地资产库构建/无资产时查询资产.png) - -### 步骤4:创建资产库 - -下列指令若不指定资产名(kb_name)和资产库名(kb_asset_name),则默认资产名为 default_test 和资产库名 default_test_asset(ps:Copilot 同一个资产下不允许存在两个同名的资产库): - -- #### 创建资产库(可重复) - -```bash -python3 scripts/rag_kb_manager.pyc --method create_kb_asset --kb_name default_test --kb_asset_name default_test_asset -# 创建属于default_test的资产库 -``` - -对于创建资产库成功会出现以下内容: - -![资产库创建成功](./pictures/本地资产库构建/资产库创建成功.png) - -对于指定不存在的资产库创建资产会出现以下内容: - -![指定不存在的资产创建资产库失败](./pictures/本地资产库构建/指定不存在的资产创建资产库失败.png) - -对于同一个资产下重复创建同名资产库会出现以下内容: - -![创建资产库失败由于统一资产下存在同名资产库](./pictures/本地资产库构建/创建资产库失败由于统一资产下存在同名资产库.png) + ```bash + # 查看pod状态 + kubectl -n euler-copilot get pods + ``` + ```bash + # witchaind相关服务已正常启动 + NAME READY STATUS RESTARTS AGE + witchaind-backend-deploy-witchaind-8fcccbfb7-8f42t 1/1 Running 0 3d1h + witchaind-redis-deploy-witchaind-7f9768c8c6-62bwt 1/1 Running 0 3d1h + witchaind-web-deploy-witchaind-6b4f4674fd-hz88g 1/1 Running 0 3d1h + minio-deploy-witchaind-7f779f5cf4-lqrd9 1/1 Running 0 3d1h + ``` -- #### 删除资产库(可重复) +## 登录管理平台 -```bash -python3 scripts/rag_kb_manager.pyc --method del_kb_asset --kb_name default_test --kb_asset_name default_test_asset -``` +请在浏览器中输入 https://$(host_ip):9888 或 访问 openEuler Copilot witChainD 网页, +登入界面如下,输入账号、密码点击登录按钮登录系统。 -对于删除资产库成功会出现以下内容: +![witchaind登录界面](./pictures/witChainD/witchaind登录界面.png) -![资产库删除成功](./pictures/本地资产库构建/资产库删除成功png.png) +## 新建资产 -对于删除不存在的资产库失败会出现以下内容: +### 1. 查看资产库 +进入资产卡片显示页面,卡片展示了资产的名称、简介、文档篇数、创建时间和资产ID。 -![资产下不存在对应资产库](./pictures/本地资产库构建/删除资产库失败,资产下不存在对应资产库.png) +![查看资产库界面](./pictures/witChainD/查看资产库界面.png) -对于删除不存在的资产下的资产库会出现以下内容: +可通过红框中的按钮将卡片展示的资产转换为条目显示。 -![不存在资产](./pictures/本地资产库构建/资产库删除失败,不存在资产.png) +### 2. 新建资产库 +点击新建资产,会跳出资产信息配置的框图 -- #### 查询资产库(可重复) +![新建资产库界面](./pictures/witChainD/新建资产库界面.png) -```bash -python3 scripts/rag_kb_manager.pyc --method query_kb_asset --kb_name default_test -# 注意:资产是最上层的,资产库属于资产,且不能重名 -``` +填写资产库名称、资产库描述(可选)、语言、嵌入模型、默认解析方法和默认文件分块大小后,点击确定。 +![新建资产库填写展示界面](./pictures/witChainD/新建资产库填写展示界面.png) -对于查询资产库成功会出现以下内容: +资产库建立完毕之后会显示是否添加文档,点击确定 -![资产下查询资产库成功](./pictures/本地资产库构建/资产下查询资产库成功.png) +![资产库创建完成界面](./pictures/witChainD/资产库创建完成界面.png) -对于资产内无资产库的情况下查询资产库会出现以下内容: +点击确定完成后进入资产库 -![资产下未查询到资产库](./pictures/本地资产库构建/资产下未查询到资产库.png) +![资产库创建完成界面](./pictures/witChainD/进入资产库界面.png) -对于查询不存在的资产下的资产库会出现以下内容: +## 导入文档 -![不存在资产](./pictures/本地资产库构建/资产库查询失败,不存在资产.png) +### 单次导入 -### 步骤5:上传语料 +点击导入文档按钮跳出文档上传框,选择本地文件并勾选进行上传 -下列指令若不指定资产名(kb_name)和资产库名(kb_asset_name),则默认资产名为 default_test 和资产库名 default_test_asset,对于删除语料命令需要指定完整的语料名称(语料统一为 docx 格式保存在数据库中,可以通过查询语料命令查看已上传的文档名称);对于查询语料命令可以不指定语料名称(corpus_name),此时默认查询所有语料,可以指定部分或者完整的语料名,此时通过模糊搜索匹配数据库内相关的语料名称。 +![导入文档界面](./pictures/witChainD/导入文档界面.png) -- 上传语料 +![选择文件](./pictures/witChainD/选择文件.png) -```bash -python3 scripts/rag_kb_manager.pyc --method up_corpus --corpus_dir ./scripts/docs/ --kb_name default_test --kb_asset_name default_test_asset -# 注意: -# 1. RAG容器用于存储用户语料的目录路径是'./scripts/docs/'。在执行相关命令前,请确保该目录下已有本地上传的语料。 -# 2. 若语料已上传但查询未果,请检查宿主机上的待向量化语料目录(位于/home/euler-copilot/docs)的权限设置。 -# 为确保无权限问题影响,您可以通过运行chmod 755 /home/euler-copilot/docs命令来赋予该目录最大访问权限。 -``` +### 批量导入 -对于语料上传成功会出现以下内容: +点击1批量导入资产,2选择本地资产,3勾选本地资产,最后点击确定进行资产导入。 -![语料上传成功](./pictures/本地资产库构建/语料上传成功.png) +![批量导入界面](./pictures/witChainD/批量导入界面.png) -对于语料具体的分割和上传情况可以在 logs/app.log 下查看,内容如下: +资产导入中 -![查看文档产生片段总数和上传成功总数](./pictures/本地资产库构建/查看文档产生片段总数和上传成功总数.png) +![批量正在导入界面](./pictures/witChainD/批量正在导入界面.png) -- 删除语料 +资产导入成功 -```bash -python3 scripts/rag_kb_manager.pyc --method del_corpus --corpus_name abc.docx --kb_name default_test --kb_asset_name default_test_asset -# 上传的文件统一转换为docx -``` +![批量导入成功界面](./pictures/witChainD/批量导入成功界面.png) -对于语料删除成功会出现以下内容: -![删除语料](./pictures/本地资产库构建/删除语料.png) +## 解析文档 -对于删除不存在的语料会出现以下内容: +等待解析中,点击取消可以停止文档解析。 -![语料删除失败](./pictures/本地资产库构建/语料删除失败,未查询到相关语料.png) +![解析中界面](./pictures/witChainD/解析中界面.png) -- 查询语料 +解析完成后,解析状态会显示解析成功。 -```bash -# 查询指定名称的语料: -python3 scripts/rag_kb_manager.pyc --method query_corpus --corpus_name 语料名.docx -# 查询所有语料: -python3 scripts/rag_kb_manager.pyc --method query_corpus -``` +![解析成功界面](./pictures/witChainD/解析成功界面.png) -对于查询所有语料会出现以下内容: +文档解析方式有三种general、ocr和enhanced模式,请根据需要选择合适的文档解析方法 -![查询全部语料](./pictures/本地资产库构建/查询全部语料.png) +![解析方法选择界面](./pictures/witChainD/解析方法选择界面.png) -- 停止上传任务 +解析完毕可以通过点击文件名进入文档解析结果展示详情,可以查看文档解析结果,如下图所示: -```bash -python3 scripts/rag_kb_manager.pyc --method stop_corpus_uploading_job -``` +![解析详情界面](./pictures/witChainD/解析详情界面.png) -对于某些极端条件下(例如内存受限),上传语料失败,需要执行上面shell命令用于清除语料上传失败的缓存。 +可以通过1过滤文档解析的片段、表格和图片等内容,通过2可以通过关键字检索模糊检索对应的片段,通过3可以设定是否在检索中是否启用片段,如下图所示: -## 网页端查看语料上传进度 +![解析结果过滤界面](./pictures/witChainD/解析结果过滤界面.png) -您可以灵活设置端口转发规则,通过执行如下命令将容器端口映射到主机上的指定端口,并在任何设备上通过访问 http://<主机IP>:<映射端口>(例如 )来查看语料上传的详细情况。 +## 导出资产 -```bash -kubectl port-forward rag-deploy-service-5b7887644c-sm58z 3000:8005 -n euler-copilot --address=0.0.0.0 -# 注意: 3000是主机上的端口,8005是rag的容器端口,可修改映射到主机上的端口 -``` +点击回到首页 -## 验证上传后效果 +![回到首页](./pictures/witChainD/回到首页.png) -上传语料成功之后你可以通过以下命令直接与 RAG 交互,来观察语料是否上传成功。 +再点击导出资产 -```bash -curl -k -X POST "http://{rag_url}:{rag_port}/kb/get_answer" -H "Content-Type: application/json" -d '{ \ - "question": "question", \ - "kb_sn": "kb_name", \ - "fetch_source": true, \ - "top_k": 3 \ -}' -``` +![导出资产界面](./pictures/witChainD/导出资产界面.png) -- `question`:问题 +显示资产正在导出中,如下图所示: -- `kb_sn`:资产库名称 +![正在导出界面](./pictures/witChainD/正在导出界面.png) -- `fetch_source`:是否返回关联片段以及片段来源,`false` 代表不返回,`true` 代表返回 +导出成功点击下载,显示下载成功 -- `top_k`:关联语料片段个数,需要大于等于3 +![导出成功](./pictures/witChainD/导出成功.png) \ No newline at end of file