大模型系列17-RAGFlow搭建本地知识库

大模型系列17-RAGFlow搭建本地知识库

安装ollama

参考写的ollama的文档

安装open-wehui

参考写的安装open-webui的文章

安装并运行ragflow

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

下载依赖镜像并运行

复制代码
 docker compose -f docker-compose.yml up -d
 docker logs -f ragflow-server

运行成功后,使用 docker logs -f ragflow-server 查看运行状态

ragflow使用的各种环境变量在ragflow/docker/.env文件中,可以修改 端口号、ragflow的镜像版本等

RAG(检索、增强、生成)

RAG是什么

RAG(Retrieval Augmented Generation 检索增强生成)模型由Facebook AI Research(FAIR)团队于2020年首次提出,并迅速成为大模型应用中的热门方案。它结合了信息检索技术(例如传统向量数据库)和大语言模型(如LLMs)的技术,从外部知识库中检索相关信息,并将其作为prompt输入到大模型中获取输出。

RAG三过程

RAG 包含三个主要过程:检索、增强和生成

  • 检索:根据用户的查询内容,从外部知识库获取相关信息。具体而言,将用户的查询通过嵌入模型转换为向量,以便与向量数据库中存储的相关知识进行比对。通过相似性搜索,找出与查询最匹配的前 K 个数据。这个目的是为了给后续生成提供上下文信息知识。
  • 增强:将用户的查询内容和检索到的相关知识一起嵌入到一个预设的提示词模板中。对LLMs的提示词(prompt)
  • 生成:将经过检索增强的提示词内容输入到大型语言模型中,以生成所需的输出。

RAG问答系统构建步骤

向量库构建

收集数据:首先,需要收集与问答系统相关的各种数据,这些数据可以来自文档、网页、数据库等多种来源。

数据清洗:对收集到的数据进行清洗,去除噪声、重复项和无关信息,确保数据的质量和准确性。

知识库构建:将清洗后的数据构建成知识库。这通常包括将文本分割成较小的片段(chunks),使用文本嵌入模型(如GLM)将这些片段转换成向量,并将这些向量存储在向量数据库(如FAISS、Milvus等)中。

检索模块

问题向量化:当用户输入查询问题时,使用相同的文本嵌入模型将问题转换成向量。

相似度检索:在向量数据库中检索与问题向量最相似的知识库片段(chunks)。这通常通过计算向量之间的相似度(如余弦相似度)来实现。

结果排序:根据相似度得分对检索到的结果进行排序,选择最相关的片段作为后续生成的输入。

生成模块

上下文融合:将检索到的相关片段与原始问题合并,形成更丰富的上下文信息,将其作为大模型的prompt输入。

大语言模型生成:使用大语言模型(如GLM)基于上述上下文信息生成回答。大语言模型会学习如何根据检索到的信息来生成准确、有用的回答。

RAG解决LLM的痛点

RAG(检索增强生成)旨在缓解甚至解决以下大模型落地应用的痛点:

  • 有幻觉,可以提供更准确和可靠的领域特定知识,减少生成幻觉
  • 时效性,不需要重新训练模型,更新知识库即可保持同步更新
  • 使用外部知识库,保护隐私
  • 支持更长的上下文

参考:

使用ragflow

访问ragflow

网址:http://localhost/login,然后随便注册账户:

配置ollama模型

ollama list列出所有的模型,有两个Embedding模型以及一个qwen2:7b的模型

添加Embedding模型

添加chat模型

添加过后

系统模式设置

将刚才添加的模型设置到系统默认配置中

创建知识库

数据集配置

设置嵌入Embedding模型以及解析方法

这里我们做的机器学习论文库,因此可以将"解析方法"从"General"调整为"Paper"模式,对论文进行解析。

上传论文

论文解析

论文上传完毕后,执行论文内容的解析

论文解析过程,花了10几分钟

创建论文助理

新建一个论文助理,用于后续的聊天对话

聊天询问DeepSeek,可以看到确实识别了知识库

相关推荐
九年义务漏网鲨鱼2 小时前
【大模型学习 | MINIGPT-4原理】
人工智能·深度学习·学习·语言模型·多模态
元宇宙时间2 小时前
Playfun即将开启大型Web3线上活动,打造沉浸式GameFi体验生态
人工智能·去中心化·区块链
开发者工具分享2 小时前
文本音频违规识别工具排行榜(12选)
人工智能·音视频
产品经理独孤虾3 小时前
人工智能大模型如何助力电商产品经理打造高效的商品工业属性画像
人工智能·机器学习·ai·大模型·产品经理·商品画像·商品工业属性
老任与码3 小时前
Spring AI Alibaba(1)——基本使用
java·人工智能·后端·springaialibaba
蹦蹦跳跳真可爱5893 小时前
Python----OpenCV(图像増强——高通滤波(索贝尔算子、沙尔算子、拉普拉斯算子),图像浮雕与特效处理)
人工智能·python·opencv·计算机视觉
雷羿 LexChien3 小时前
从 Prompt 管理到人格稳定:探索 Cursor AI 编辑器如何赋能 Prompt 工程与人格风格设计(上)
人工智能·python·llm·编辑器·prompt
两棵雪松4 小时前
如何通过向量化技术比较两段文本是否相似?
人工智能
heart000_14 小时前
128K 长文本处理实战:腾讯混元 + 云函数 SCF 构建 PDF 摘要生成器
人工智能·自然语言处理·pdf
敲键盘的小夜猫4 小时前
LLM复杂记忆存储-多会话隔离案例实战
人工智能·python·langchain