知识科普

  1. 为什么不直接使用网页版 DeepSeek?

    • 我们的需求:绝对的隐私保护和个性化知识库构建。
    • 场景:若希望大模型能根据企业规章制度来回答问题,一般需上传企业规章制度的附件,但仍可能面临问题。
      • 数据隐私问题:联网使用时大型数据隐私性无法得到绝对保证。
      • 上传文件的限制问题:网页版 AI 对于文件上传的数量、大小一般有限制并且通常需要付费。
      • 仅通过附件扩展上下文功能有限:每次在新对话中提问相关问题时,仍需要重新上传附件;修改删除对话中已有的附件困难。
  2. 如何实现网页版 DeepSeek 不能实现的需求?

    • 隐私保护:通过对话大模型(如 DeepSeek)的本地部署解决隐私问题。
    • 个性化知识库构建:使用 RAG 技术(Retrieval - Augmented Generation,检索增强生成)构建个人知识库。为此需要:
      • 本地部署 RAG 技术所需要的开源框架 RAGFlow。
      • 本地部署 Embedding 大模型(或者直接部署自带 Embedding 模型的 RAGFlow 版本)。

为什么使用RAG技术

  • 模型微调:在已有预训练模型基础上,结合特定任务数据集进一步训练,让模型在该领域表现更好,类似考前复习。
  • RAG 技术
    • 原理:在生成回答前,通过信息检索从外部知识库查找相关知识,增强生成过程信息来源,提升生成质量和准确性,解决模型幻觉问题。
    • 流程
      • 检索:用户提问时,系统从外部知识库检索相关内容。
      • 增强:将检索信息与用户输入结合,扩展模型上下文,再传给生成模型(如 DeepSeek)。
      • 生成:生成模型基于增强后的输入生成最终回答,因参考外部知识库内容,更准确可读。

什么是 Embedding?为什么除了 DeepSeek、RAGFlow 外我还需要 “Embedding 模型”?

  • 检索(Retrieval)的详细过程
    • 准备外部知识库:外部知识库可能来自本地的文件、搜索引擎结果、API 等。
    • 通过 Embedding(嵌入)模型,对知识文件进行解析:Embedding 的主要作用是将自然语言转化为机器理解的高维向量,并且通过这一过程捕获到文本背后的语义信息(比如不同文本之间的相似关系)。
    • 通过 Embedding(嵌入)模型,对用户的提问进行处理:用户的输入同样会经过嵌入(Embedding)处理,生成一个高维向量。
    • 拿用户的提问去匹配本地知识库:使用这个用户输入生成的高维向量,去查询知识库中相关的文档片段。在这个过程中,系统会利用某些相似度度量(如余弦相似度)去判断相似度。
  • 模型的分类:Chat 模型、Embedding 模型;
    • 简言之,Embedding 模型是用来对上传的附件进行解析的。

本地部署的全流程

  1. 下载 ollama,借助 ollama 将 DeepSeek 模型下载到本地运行。
  2. 下载 RAGflow 源代码和 Docker,利用 Docker 本地部署 RAGflow。
  3. 在 RAGflow 中构建个人知识库,并实现基于个人知识库的对话问答。

Ollama安装以及配置

下载

 官网:Ollama

注册并下载,下载完成后直接运行exe程序进行安装。

安装完成后

添加系统配置

 OLLAMA_HOST将ollama的端口暴露出来。

OLLAMA_MODELS配置ollama下载模型的存储位置(配置完重启电脑才能生效)

下载大模型(以deepseek r1 1.5b为例)

 复制命令

ollama run deepseek-r1:1.5b

打开cmd执行命令完成下载

下载RAGflow源代码

GitHub的中文文档的 

iragflow/README_zh.md at main · infiniflow/ragflowhttps://github.com/infiniflow/ragflow/blob/main/README_zh.md

infiniflow/ragflow: RAGFlow is an open-source RAG (Retrieval-Augmented Generation) engine based on deep document understanding.https://github.com/infiniflow/ragflow/tree/main

 如果不会用git的话可以直接跳到code页面下载压缩包

 

下载 Docker

Docker 镜像是封装好的环境,含运行 RAGflow 所需依赖、库和配置。

若安装遇问题可自行搜索报错或询问 gpt;

若镜像拉不下来,可尝试修改 docker 的镜像源。

Docker Desktop: The #1 Containerization Tool for Developers | Docker

下载并安装

安装完成后,先查看自己的window版本,家庭版不支持Hyper-V

家庭版转专业版

1.用管理员权限打开cmd窗口

2..在cmd窗口中输入 dism /online /get-targeteditions ,查询当前支持的升级的版本

 dism /online /get-targeteditions

3.在cmd窗口中输入changepk.exe /productkey VK7JG-NPHTM-C97JM-9MPGT-3V66T,后一段为专业版密钥:VK7JG-NPHTM-C97JM-9MPGT-3V66T,按回车等待完成重启即可 

changepk.exe /productkey VK7JG-NPHTM-C97JM-9MPGT-3V66T

打开控制面板 

 

 

 

 打开dockerDesktop修改镜像

{
    "registry-mirrors" : [
    "https://registry.docker-cn.com",
    "http://hub-mirror.c.163.com",
    "https://docker.mirrors.ustc.edu.cn",
    "https://cr.console.aliyun.com",
    "https://mirror.ccs.tencentyun.com"
  ],
  "builder": {
    "gc": {
      "defaultKeepStorage": "20GB",
      "enabled": true
    }
  },
  "experimental": false,
  "features": {
    "buildkit": true
  }
}

修改RAGflow的docker配置

 

如何不修改配置,docker会默认下载轻量的版本,轻量级的版本是没有embedding的。

进行修改

在docker文件夹中打开cmd

 执行
 

docker compose -f docker-compose.yml up -d

 执行完毕后就可以通过localhost:80,来访问ragflow

在 RAGflow 中构建个人知识库并实现基于个人知识库的对话问答

在 “模型提供商” 中添加我们本地部署的 deepseek - r1:1.5b 模型;

 

查看自己window环境的ipv4 

 

 

创建个人知识库

Embedding模型解析方式:

General(通用):这可能指的是通用信息或常见问题的解答。

Q&A(问答):通常指常见问题及其解答的部分。

Resume(简历):可能涉及简历的撰写或示例。

Manual(手册):可能是操作手册或使用指南。

Table(表格):可能包含数据表格或信息汇总。

Paper(论文):可能涉及学术论文或相关文档。

Book(书籍):可能指参考书籍或相关阅读材料。

Laws(法律):可能涉及法律法规或相关条款。

Presentation(演示/展示):这可能指的是演示文稿或展示内容,通常用于会议、演讲或教学等场合。

One(一):这个条目可能代表某个单一的项目、概念或类别,具体含义需要结合上下文进一步理解。

Knowledge Graph(知识图谱):这是一种结构化的知识表示方式,用于展示实体之间的关系和属性,常用于搜索引擎、推荐系统等领域。

Tag(标签):标签通常用于对内容进行分类或标记,便于搜索和组织信息。

限制ai回答的长度
 

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐