基于DeepSeek + Dify搭建私有知识库AI应用

649 阅读4分钟

在上一节中,我们搭建了一个本地大模型应用,能够进行问答。开源大模型是通用问答,对于企业来说,大模型需要进行本地化,进行专业培训和指导。比如企业内部知识库,往往对外是不公开的,使用大模型搜索得不到我们想要的答案。因而,我们需要将私有知识库喂给大模型,发挥大模型智能理解能力强项,让大模型转为专业领域的智能问答专家。

本文使用dify搭建一套本地私有知识库大模型应用。dify是一款开源的大语言模型(LLM) 应用开发平台。dify内置了构建 LLM 应用所需的关键技术栈,包括对数百个模型的支持、直观的 Prompt 编排界面、高质量的 RAG 引擎、稳健的 Agent 框架、灵活的流程编排,并同时提供了一套易用的界面和 API,使开发者可以快速搭建生产级的生成式 AI 应用。更多信息访问dify官网

一、dify部署

1.docker安装

dify依赖太多基础组件,因而强烈建议使用docker部署,dify把所有依赖都打包好了。访问[docker官网](www.docker.com/)按照指示安装。

image.png

2.dify安装

dify对配置要求不高,RAM最少4GB。如果大模型和dify在同台机器运行,需要使用内部高的配置。 访问dify github地址github.com/langgenius/…, 将源码下载到本地。

修改docker源配置, 换成国内可用的源,按照图示指示进行修改,最后点击Apply&restart保存。

image.png

已验证可用源配置如下:

{
  "registry-mirrors": [
    "https://docker.1ms.run",
    "https://docker.xuanyuan.me",
    "https://mirror.ccs.tencentyun.com",
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://cr.console.aliyun.com"
  ]
}

进入dify文件夹执行以下操作:

cd dify
cd docker
cp .env.example .env
docker compose up -d

image.png

到此,dify就运行起来了。根据如下指令访问dify:

# 本地环境 
http://localhost/install 
# 服务器环境 
http://your_server_ip/install

设置好账号密码,登录将进入dify主页。

image.png

二、关联本地大模型

在dify项目docker文件夹,修改.env配置文件,末尾加上配置:

# 启用自定义模型
CUSTOM_MODEL_ENABLED=true
# 指定 Ollama 的 API地址(根据部署环境调整IP)
OLLAMA_API_BASE_URL=host.docker.internal:11434

返回到Dify主界面,点击右上角用户名下的【设置】

image.png

接入托管模型供应商Ollama, 然后再添加deepseek大模型。

image.png

配置完模型后,就可以在应用中使用这些模型了。点击右上角用户名下的【设置】,选择【模型供应商】,点击右侧的【系统模型设置】

image.png 到此,Dify就与本地部署的本地大模型关联起来了。

创建一个应用

image.png

image.png

image.png

到这里,已经创建了一个基于deepseek的ai应用了,在聊天框可以对deepseek发起对话。

三、搭建本地私有知识库

添加 Embedding 模型

Embedding模型可以把复杂的、高维的数据(比如文本、图像等)转换成低维的向量。搭建知识库的时候,我们上传的资料(比如文档、文章等)需要先通过Embedding模型转换成向量,然后存入向量数据库。当有人提问的时候,系统先在向量数据库中快速、准确地找到相关的资料,从而给出准确的回答。

本文ebedding模型继续使用deepseek模型,当然,可以选择其他。 image.png image.png

本地知识库ebedding处理

按照如图所示,对本地知识库ebedding处理,上传文件后,系统会自动对上传的文档进行解析和向量化处理, 生成向量数据库。这个过程可能需要几分钟,具体时间取决于文档的大小和复杂程度。image.png

ai应用关联知识库

按照如图所示,在应用上下文中关联本地知识库。 image.png

至此,就可以针对本地知识库进行问答了。 image.png

测试知识库如下:

我是值班排班人。



本周值班人员:贾宝玉、林黛玉、王熙凤、薛宝钗、惜春、明春、探春、贾琏


下周值班人员:唐僧、孙悟空、猪八戒、沙僧、白龙马、白骨精


下下周值班人员:刘备、孙权、曹操、关羽、张飞

从测试回答中,deepseek已经给出了我们想要的答案了。

参考:

docs.dify.ai/zh-hans/lea…
juejin.cn/post/747076…
juejin.cn/post/746856…