【案例共创】基于开发者空间使用Kotaemon开源RAG UI和华为云Maas搭建本地/私人AI知识库

本案例由开发者:云聪明提供

1 概述

1.1 案例介绍

ModelArts Studio作为一款先进的大模型即服务平台,集成了高效便捷的模型开发工具链,支持企业对大模型进行深度定制开发,实现模型应用与业务系统的深度融合,从而显著降低企业AI技术的落地成本与实施难度,助力企业快速实现智能化转型。 如今,知识库已成为企业和个人提升工作效率、积累知识资产的重要工具。传统知识库存在构建成本高、维护困难、检索效率低等问题。本案例利用Kotaemon框架和ModelArts Studio提供的DeepSeek-V3-32K模型,构建一个高效、便捷、可定制的本地/私人知识库,方便开发者检索各种场景的文档,提高工作效率。有下列应用场景:开发者文档检索: 开发者可以快速检索 API 文档、代码示例、技术博客等,提高开发效率;企业内部知识管理: 企业可以构建内部知识库,方便员工共享和检索知识,提升团队协作效率;个人知识积累: 个人可以利用知识库管理学习笔记、项目资料等,构建个人知识体系。

1.2 适用对象

  • 企业
  • 个人开发者
  • 高校学生

1.3 案例时间

本案例总时长预计60分钟。

1.4 案例流程

98b5087634b0c81e5a295dd548ae8418.png{{{width="70%" height="auto"}}}

说明:

  1. 用户使用登录开发者空间并配置云主机;
  2. 用户提供Firefox浏览器在ModelArts Studio平台中领取DeepSeek-V3-32K模型;
  3. 使用docker部署Kotaemon框架
  4. Kotaemon调用ModelArts Studio平台中的DeepSeek-V3-32K API模型;
  5. 用户在Firefox浏览器中构建AI知识库并对其进行聊天。

1.5 资源总览

资源名称规格单价(元)时长(分钟)
开发者空间——云主机4vCPUs | 8GB | ARM | Ubuntu免费60

2 资源与开发环境准备

2.1 开发者空间配置

面向广大开发者群体,华为开发者空间提供一个随时访问的“开发桌面云主机”、丰富的“预配置工具集合”和灵活使用的“场景化资源池”,开发者开箱即用,快速体验华为根技术和资源。

如果还没有领取开发者空间云主机,可以参考免费领取云主机文档领取。

领取云主机后可以直接进入华为开发者空间工作台界面,点击打开云主机 > 进入桌面连接云主机。

a1aae6ff53aac98855ef597dd6899967.png

552fc96c3b58a06e294e4a760ae719e3.PNG

2.2 领取DeepSeek-V3-32K模型

进入华为开发者空间工作台界面,我的开发工具 > ModelArts Studio,点击立即前往,即可进入ModelArts Studio控制台。

51893792364160a1c54392a9dd19b650.PNG

首次进入需签署免责声明:

bd852f8e86f4520b7cd72e9869a86afa.png

进入ModelArts Studio控制台首页,选择地区:西南-贵阳一,在左侧菜单栏,选择模型推理中的在线推理,在免费服务中选择DeepSeek-V3-32K(NEW)模型,点击领取,领取200万免费token。

f69a103b59a46e278440eb7550d789b3.PNG

3 安装、配置并使用Kotaemon

3.1 Kotaemon安装

Kotaemon 是一个开源的、简洁且高度可定制的 RAG(Retrieval-Augmented Generation,检索增强生成)用户界面,专门设计用于与您的文档进行对话。无论是普通用户还是开发者,Kotaemon 都旨在提供一种直观、灵活且高效的方式来管理和交互您的文档内容。它不仅仅是一个简单的聊天工具,更是一个集成了先进 AI 技术的智能文档助手,能够帮助用户快速检索、理解和生成与文档相关的信息。

项目地址:https://github.com/Cinnamon/kotaemon

本次通过docker安装Kotaemon。

首先安装docker:

参考文档:https://support.huaweicloud.com/bestpractice-ecs/zh-cn_topic_0141067581.html

打开终端,输入命令,执行下列操作。

707e038c605dde5fb71dd4a29057391c.PNG

(1)登录开发者空间云主机,更新软件包列表。

sudo apt-get update

(2)安装Docker所需依赖包。

sudo apt-get -y install ca-certificates curl

(3)创建/etc/apt/keyrings目录,并下载Docker的官方GPG密钥到该目录。

sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://mirrors.huaweicloud.com/docker-ce/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

(4)将Docker仓库添加到系统的软件源列表。

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://mirrors.huaweicloud.com/docker-ce/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

(5)更新软件包列表。

sudo apt-get update

(6)安装并运行Docker。

sudo apt-get install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
sudo systemctl start docker

(7)设置以非 root 用户身份管理 Docker。

#云主机默认的用户是developer非root用户,需要设置以非 root 用户身份管理 Docker
#创建组docker
sudo groupadd docker
#将您的用户添加到组docker
sudo usermod -aG docker $USER

(8)重启云主机。

回到工作台,点击重启按钮,云主机会自动重启。

e9b8d1c5e6fac799ed15115cd69ee599.PNG

或者您还可以运行以下命令来激活对组的更改:

newgrp docker

下面的命令是设置 Docker 在系统启动时自动启动。

sudo systemctl enable docker

查看docker版本信息。

docker -v

显示如下类似信息,表示Docker安装成功。

b4207686afd017f95ba3ea587c407969.PNG

Docker到此已经安装完毕。

接下来通过Docker安装Kotaemon,命令如下:

docker run \
-e GRADIO_SERVER_NAME=0.0.0.0 \
-e GRADIO_SERVER_PORT=7860 \
-v ./ktem_app_data:/app/ktem_app_data \
-p 7860:7860 -it \
ghcr.nju.edu.cn/cinnamon/kotaemon:main-ollama

正在安装Kotaemon中:

90e2f1f6761523fa18e7d8000b19a348.png

稍等几分钟,下面是安装依赖的日志:

0653a80ab83b1ee1ff9e276e06b0e6b4.png

继续等待依赖安装完成,下面是安装成功且运行的截图:

c991d3e7586512dfb92f6b59e52f9677.png

3.2 登录Kotaemon首页

我们在火狐浏览器中输入链接:http://localhost:7860

60592b0e7fbd36151a12fa88aeb730ce.png

默认的Username和Password均为 admin,我们输入Username和Password,点击登录:

70a9cd9576674dfac67df6d20fe1fe5e.png

登录成功:

ec2c7ff6739a956eddc8fb44556eb806.PNG

3.3 在华为云Maas上获取模型API接口

首先我们要先配置DeepSeek-V3-32K(NEW)模型api接口:

我们打开ModelArts Studio中API Key管理的链接:
https://console.huaweicloud.com/modelarts/?locale=zh-cn®ion=cn-southwest-2#/model-studio/authmanage

点击创建API Key:

3c60e42d129bcf68d2f7d57d4412bc1f.png

在标签中填入:Kotaemon,描述中填入:开发者空间的Kotaemon,也可以自定义。

697c24d8720321825e2989b74ef303f8.PNG

点击确定,创建成功:

05b4631f507aed806a98fb8e4fa688da.PNG

我们在页面上也可以看到创建成功:

138c6d97d42c03f209237ea723d3c8f9.PNG

注意:API Key仅会在新建后显示一次,请及时复制并妥善保存,若API Key丢失,请新建API Key。

我们接着查看在线推理中DeepSeek-V3-32K(NEW)模型api接口信息:

73ae567e91b1575a63dc84efe31ed5f4.PNG

点击调用说明,再点击OpenAI SDK按钮:

626468de3ed1ee477d91e8be58563062.PNG

我们成功得到了DeepSeek-V3-32K(NEW)模型接口信息,请妥善保存。

3.4 配置Kotaemon

我们回到开发者空间云主机中的火狐浏览器,在Kotaemon登录成功的页面中,首先点击Resources 按钮:

8e548d8f01641876cb1256c40f068d13.png

点击LLMs按钮:

63795a019a1a60aec125a228d08c2a30.png

我们在LLMs中先配置DeepSeek-V3-32K(NEW)模型接口,点击Add按钮添加模型供应商:

f51260426bb4e220fe215ed19cedeee6.png

出现以下界面,缩小页面,可以看到全部配置信息:

acf33e28c8f9a5bd27dea9cdacf1871e.png

LLM name选项就是需要显示的模型供应商的模型(自定义),本案例设置为华为云:

e0b775ebdad5b950f1db6762d08f2c51.png

下面继续设置LLM vendors,我们这里必须选择ChatOpenAI:

d9c012cb20db568d74de98dbd53e535e.PNG

最后的选项Specification用于配置模型的接口信息:

30b63a39cbcd7c7675b7cfb7b5caee0b.PNG

这里默认只给出了api_key和model,因为这里默认是OpenAI来提供模型,所以我们需要手动添加base_url指定模型的接口地址。

注意:这里添加base_url,不能直接在api_key:null这行最后,通过换行来添加一行,需要按住shift+enter 才能添加新的一行。

79912fce468b7092bb07bfba43d20959.PNG

我们将之前得到的Api key、API地址、模型名称填入选项中:

caec16e1f8bd93b41b7c81b8e6d3d38a.PNG

我们已经填好信息,点击单选框set default,设置其为默认模型,点击添加模型:

f54be52f77434c48f1a65bf69057bb21.PNG

浏览器的右上角会出现添加成功的消息:

b83a9fa061c9136cfca36381ffc0c33a.png

我们点击View视图查看添加的模型,发现已经成功添加华为云为默认的LLMs:

6590006e1ce140f1260e264aec7e4996.png

我们点击华为云,测试DeepSeek-V3模型是否连接正常:

29278167cadd5b9f0fd1cda2756ed025.PNG

出现以下类似信息,并且右上角显示info:LLM 华为云 connect successfully,说明连接华为云成功。

cd7097979ebbe4e98a96549f943ed570.PNG

注意,如果出现以下报错信息,请检查配置信息:

- Connection failed. Got error: Error code: 400 - {'error_code': 'ModelArts.4905', 'error_msg': 'Failed to check the authorization request header. '}

说明api_key配置错误,请检查api_key是否填写正确。

- Connection failed. Got error: Error code: 404 - {'detail': 'Not Found'}

说明API地址 base_url 配置错误,需要配置正确的地址。

- Connection failed. Got error: Error code: 404 - {'object': 'error', 'message': 'The model `deepseek-V3` does not exist.', 'type': 'NotFoundError', 'param': None, 'code': 404}

说明模型名称model配置错误,需要将名称配置为:DeepSeek-V3。

最后我们保存配置,浏览器右上角会显示保存成功:

c09da35996e6f18cfe24df732cbe3ad0.PNG

接下来我们配置Embeddings 嵌入式模型:

3761053d1788de2b4a28bc66f6d7fc4b.png

这里docker镜像采用了ollama捆绑包,所以使用容器内ollama提供的嵌入式模型:nomic-embed-text。点击单选框set default,设置ollama为默认的嵌入式模型,然后测试模型:

33cae094e3bca4cfecb2a9fd349fcf22.png

点击Test,出现连接成功,并且右上角出现连接成功的info:

59bbd102663c8e040bee295acca49f9c.PNG

最后保存配置,右上角显示保存成功:

c0290a5910037f55fcf56f0c53f512dc.PNG

下面设置其它选项,首先点击Settings按钮,然后点击Retrieval settings:

2b616c2a5d408044c83e8f420cb85a89.png

我们修改1个选项,将LLM for relevant scoring修改为:华为云 (default)

df235e48575d00a4859aee6ea6049ba4.png

然后点击保存设置:

df28d8c5a5dfa43e6349f6c37f356baf.png

3.5 使用Kotaemon搭建本地AI知识库

我们点击Chat回到首页:

8a8868b260fc0ae2099abeaa1dea6263.png

使用火狐浏览器打开链接:https://dtse-mirrors.obs.cn-north-4.myhuaweicloud.com/case/0042/DeepSeek%E4%BB%8E%E5%85%A5%E9%97%A8%E5%88%B0%E7%B2%BE%E9%80%9A.pdf,下载pdf文件:

a5cc9ded9bb454a8714774d3c695cd79.PNG

在上传文件之前,执行以下操作:

(1)查看当前运行的Docker容器

sudo docker ps

8a1b30f149fefbaaa737f619a2dcb290.PNG

备注:上图中的09ffa8d24265为Docker容器标识。

(2)执行docker exec -it xxxx /bin/bash,进入指定Docker容器的Bash Shell环境。xxxx要替换成Docker容器标识。

sudo docker exec -it xxxx /bin/bash

(3)安装lance和pylance。

pip install lance -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install pylance -i https://pypi.tuna.tsinghua.edu.cn/simple

(4)安装成功后,执行exit退出。

exit

(5)执行sudo docker restart xxxx,重启Docker容器。xxxx要替换成Docker容器标识。

sudo docker restart xxxx

480c4d5ac79684f6c2cc777de03e79f0.PNG

完成上述操作后,再次回到Kotaemon,点击Files,上传下载的 pdf文件:

d9734748e6e8e74c4fd46fed07ac8521.png

这里创建索引的时间是根据文件的大小和嵌入式模型的响应速度决定的,文件过大,创建索引时间可能过长,请稍微等待一会。

注意:等待后可能出现不响应的情况,可刷新页面后看到文件。

以下是文件创建索引成功:

2222f70b86255aa11eead12718c51504.PNG

点击此文件:

5305366acdc9a53b54fe9aa264a32541.PNG

上述文件已经成功加入我们的知识库了。点击Chat按钮,返回首页,点击Search In File(s),选择文件:

15059287eb3f8bc848e783ff52ed8b32.PNG

我们要设置AI回答的语言为中文,点击下方红色方框的小按钮:

ca2045168f1af493705996a50f964279.png

点击Language下方的按钮,选择Chinese:

1164a6a21c99ed8f79c9ec9a5f795188.png

选择完成后,我们就可以对这个文件提问了,第一个问题:总结这个文件。

如果一直未响应,可以点击删除图标,删除对话,刷新页面后重试。

bb9ce5ce84afe65be13a1c3b2222ccd3.PNG

以下是成功响应的截图:

8207e01d253002db333d573cfa5590cd.PNG

回答的不错,并且显示了思维导图。

注意:如果无法显示思维导图,请更新Firefox的版本。点击浏览器右上角图标,点击帮助:

3195cb51e0e50872427309090406a0ee.PNG

关于Firefox:

6ca564034167c10b6539400a174b34a2.PNG

重启更新:

79c06aacba07618e91c40ebba4dc1b00.png

更新完成后,可正常显示思维导图了。

我们点击Export按钮,可以在新窗口查看思维导图:

5596ffc1c49b779b6e72d751dffeb6f2.PNG

点击Preview按钮,可以预览源文件:

db459b60af7c2ea761f793d46960134c.png

源文件:

8317daea1d2b38c730a77470e7ab654e.png

至此,我们的AI知识库的搭建完成了!

3.6 总结与展望

本次使用的Kotaemon的开源框架中关于RAG的一小部分应用,还有许多其他功能,开发者可以参考下面开源地址链接进行指导:

Kotaemon项目地址:https://github.com/Cinnamon/kotaemon

华为云Maas提供的DeepSeek-V3-32K模型响应速度挺快,虽然仅仅是体验,后续马上也要开通商用按量服务,应该速度更快!

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值