RagFlow+Deepseek构建个人知识库

RagFlow+Deepseek构建个人知识库

部署RAGFlow

  • windows可以在WSL中操作,尽量跟着官方的步骤来,避免一些奇奇怪怪的错误

  • 硬件先决条件

    1. CPU >= 4 cores
    2. RAM >= 16 GB
    3. Disk >= 50 GB
    4. Docker >= 24.0.0 & Docker Compose >= v2.26.1

    使用下面的命令查看docker和docker-compose的版本是否满足

    docker --version
    docker-compose --version
    

    image-20250313214217627

  • 确保vm.max_map_count >= 262144:

    检查vm.max_map_count的值:

    sysctl vm.max_map_count
    

    如果不是,则将vm.max_map_count重置为至少 262144 的值。

    sudo sysctl -w vm.max_map_count=262144
    

    此更改将在系统重启后重置。永久更改的话要添加或者更新**/etc/sysctl.conf**中的vm.max_map_count值如下:

    vm.max_map_count=262144
    
  • 克隆仓库

    git clone https://github.com/infiniflow/ragflow.git
    

    克隆完成后会出现一个 ragflow文件夹 image-20250313214600991

  • 使用docker-compose启动

    注意,ragflow 镜像有多个不同的大小,默认的是v0.17.2-slim,区别如下,主要是包不包含embedding模型的区别,我选的默认的,因为占用小,并且我后续使用调用api的方式去配置embedding模型,所以就选,默认的。

    RAGFLow机械标签镜像大小 (GB)是否有嵌入模型稳定版本?
    v0.17.2≈9✔️Stable release
    v0.17.2-slim≈2Stable release
    nightly≈9✔️Unstable nightly build
    nightly-slim≈2Unstable nightly build

    如果希望使用v0.17.2,可以修改docker-compose.yml文件中的版本为v0.17.2即可

    vim ragflow/docker/.env
    

    image-20250313220041569

    cd ragflow/docker
    docker compose -f docker-compose.yml up -d
    

    第一次会先拉取镜像,完成后如下

    image-20250313215007014

  • 服务启动并运行后检查服务的状态

    docker logs -f ragflow-server
    

    image-20250313220151981

  • 登录

    在本机浏览器中登录

    http://127.0.0.1:80

    image-20250313220334218

    请先点击 SignUp 注册

    image-20250313220515071

    登录后按如下步骤将语言更改为中文

    image-20250313220817150

    记得点击右下角保存


配置系统模型

  • 添加embedding模型

    如果在上一步使用docker-compose启动中已经选择了带有embedding模型的镜像,这一步可以省略

    image-20250313221145882

    这里直接调用硅基流动的api,下面的博客有注册的方法

    https://editor.csdn.net/md/?articleId=145558234

    然后在系统模型设置中将默认的嵌入模型选择为bgd-large-zh-v1.5

    image-20250313222605460

  • 添加聊天模型

    本地用ollama部署一个deepseekr1-1.5b的模型

    https://editor.csdn.net/md/?articleId=146216662

    查看模型填入的名称,如果是直接下载的软件包安装的,打开终端输入以下命令查看

    ollama list
    

    如果是docker部署的ollama先进入容器再查看,假设ollama容器名称就叫ollama

    docker exec -it ollama /bin/bash
    ollama_list
    

    image-20250313223025981

    这个NAME下面的就是需要输入的名称

    deepseek-r1:1.5b

    image-20250313223259995

    如果ollama和ragflow都是docker部署的,那么这里的基础url填

    http://host.docker.internal:11434

    否则填

    http://127.0.0.1:11434

    配置好系统聊天模型
    image-20250313223506651


创建知识库并使用

  • 先测试下聊天

    聊天–>新建助理–>确定

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    问一下 凡人修仙传中韩立的宗门是哪里,没有知识库的deepseek回答错误

    image-20250313224304785

  • 创建一个知识库,我们以凡人修仙传中韩立的相关资料为例子,先让怕kimi帮忙生成一个韩立的介绍

    image-20250313224602250

    我们吧介绍保存为韩立介绍.pdf

  • 创建知识库 凡人修仙传韩立

    image-20250313224825483

    下拉到最下面直接点击保存

    image-20250313225729913

    新增文件,将pdf上传并确定

    image-20250313225900717

    点击解析,等待解析成功

    外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 使用知识库

    新建助理,选择刚刚创建的知识库

    image-20250313230610447

    现在我们可以使用这个知识库里面的内容了

    image-20250313231000460

    我们可以看到已经引用到上传的pdf了,点击引用的标识,可以看到引用的内容出自哪里

    image-20250313231156094


### RAGFlowDeepSeek集成与配置指南 #### DeepSeek概述 DeepSeek是一个基于Dify构建的本地知识库解决方案,支持通过Ollama来安装和管理文本嵌入模型。这使得用户能够在私有环境中部署先进的自然语言处理能力[^1]。 #### FastGPT/RagFlow简介 FastGPT/RagFlow专为企业级用户提供了一个高度可定制化的平台,它不仅拥有强大的检索增强生成(Retrieval-Augmented Generation, RAG)引擎,还具备工作流编排(Workflow Orchestration)功能,可以满足复杂的数据处理和服务调用需求[^2]。 #### 集成方案设计 为了实现RagFlowDeepSeek的有效结合,建议采取如下架构: - **数据层**: 利用DeepSeek作为底层的知识存储仓库; - **索引服务**: 借助于Ollama提供的向量数据库技术创建高效的语义索引; - **应用逻辑层**: RagFlow负责定义具体的查询流程以及如何组合多个API请求完成特定任务; #### 安装准备事项 确保已经按照官方指导完成了以下准备工作: - Ollama环境设置完毕并能正常运行; - 已经获取到了所需的预训练模型文件; - 成功克隆了RagFlow项目源码至开发机器上; #### 实现步骤说明 ##### 创建新的Pipeline 在`pipelines/`目录下新建Python脚本用于描述整个pipeline的工作方式: ```python from ragflow.pipelines import PipelineBuilder from ragflow.nodes.retriever.deepseek_retriever import DeepSeekRetrieverNode from ragflow.nodes.generator.text_generator_node import TextGeneratorNode def create_pipeline(): builder = PipelineBuilder() retriever_config = { "host": "<your_deepseek_host>", "port": 8090, "index_name": "example_index" } generator_config = {"model_path": "./models/pretrained_model"} pipeline = ( builder.add_node( node=DeepSeekRetrieverNode(**retriever_config), name="Retrieve Documents", ) .add_node(node=TextGeneratorNode(**generator_config), name="Generate Response") .build() ) return pipeline ``` 此处展示了怎样连接到远程主机上的DeepSeek实例,并指定要使用的索引名称。同时也指定了用来生成回复的具体模型路径。 ##### 运行测试样例 编写简单的命令行界面来进行交互式的问答会话模拟: ```python if __name__ == "__main__": from ragflow.utils.logger import setup_logger logger = setup_logger(__file__) pipe = create_pipeline() while True: query = input("Ask anything (or type 'exit' to quit): ") if query.lower() == 'exit': break try: result = pipe.run(query=query) print(f"\nAnswer:\n{result['response']}\n") except Exception as e: logger.error(e) ``` 这段代码实现了基本的人机对话循环,在其中每次输入一个问题都会触发一次完整的pipeline执行过程,最终返回由AI合成的回答内容给用户查看。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值