0

0

使用DeepSeek+RAG实现私人知识库

看不見的法師

看不見的法師

发布时间:2025-04-28 16:04:22

|

833人浏览过

|

来源于php中文网

原创

在使用包括 chatgpt 在内的 aigc 工具回答 sap 相关问题时,常常会遇到大模型产生不准确或虚构信息的情况,这种现象被称为大模型的幻觉现象。对于 llm 模型来说,它是一种基于上下文的生成模型,其预测依赖于先前的文本序列。由于模型在训练过程中学习了语言的统计规律,有时会在生成文本时添加一些不合逻辑或与实际情况不符的内容。这种现象并非模型故意为之,而是由于模型参数中存储的知识是固定的且有限的,而现实世界的信息却在不断更新。

为了减少或避免大模型的幻觉现象,RAG(Retrieval-Augmented Generation)是一种有效的解决方案。当用户向通过 RAG 增强的大语言模型提问时,系统首先通过检索模块(Retriever)从外部知识库中查找相关文档,然后将检索结果与原始问题共同输入生成模块(Generator)进行答案合成。与模型参数中固化的知识不同,外部知识库的内容可以实时更新,从而让大语言模型提供实时的准确回复。外部知识库通常存储在数据库中,如向量数据库。

本文将通过 DeepSeek、Ollama 和 AnythingLLM 三个工具,手动上传 SAP 文档,来演示如何基于 RAG 架构打造自己的个人 SAP 知识库。

实现工具与操作步骤

1)安装 Ollama 并运行 DeepSeek

Ollama 是一个用于在本地环境运行大语言模型的工具。它允许开发者在本地 GUI 或命令行中加载和运行各种 AI 模型,无需深入理解底层的机器学习框架。Ollama 的设计思路类似于 Docker,通过它管理的 AI 模型类似于 Docker Image,但 Ollama 专门针对 AI 模型进行了优化。

☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 免费无限量使用 DeepSeek R1 模型☜☜☜

使用DeepSeek+RAG实现私人知识库

Ollama 安装成功后,使用命令行 ollama run deepseek-r1:1.5b,这个命令会自动下载 DeepSeek 模型到本地并运行。1.5b 表示下载参数个数为 15 亿的 DeepSeek 版本,为了节省时间,笔者选择了这个文件尺寸为 1.1 GB 的最精简的模型。

使用DeepSeek+RAG实现私人知识库

耐心等待下载结束,看到命令行里弹出 think 提示符,输入 who are you? 得到 DeepSeek 的自我介绍回复,说明 Ollama 和自动下载的 DeepSeek R1 已经正常工作了。

2)上传 SAP 文档作为知识库素材

既然是打造私人的 SAP 知识库,我们就需要给 DeepSeek 喂一些外部文档作为知识库的文档素材。在 Bing 搜索引擎里使用 site:sap.com filetype:pdf 随便搜一些 SAP 官方发布的 PDF 来测试。在实际使用场景中,企业级客户可以将自己的私密数据,喂给本地部署的大模型,而不用担心隐私泄漏的问题。

使用DeepSeek+RAG实现私人知识库

这里我从 Bing 的搜索结果下载了一个名为 SAP S4HANA private cloud - implementation guide.pdf 的文件。

使用DeepSeek+RAG实现私人知识库

3)使用 AnythingLLM 建立工作区

下一步,下载 AnythingLLM 并安装。AnythingLLM 是一个开源的 AI 工具,能够方便地将用户提供的各种格式的文档嵌入到自定义 AI 模型中,使其在同用户对象中作为可参考上下文的一部分。这意味着通过 AnythingLLM, AI 模型在回答问题时,可以检索和分析用户提供的文档,将其内容整合作为最终的输出,即本文开头部分介绍的 RAG 工作方式。

使用DeepSeek+RAG实现私人知识库使用DeepSeek+RAG实现私人知识库

AnythingLLM 安装完毕之后,像使用 ABAP Development Tool 一样,新建一个工作区(Workspace):

使用DeepSeek+RAG实现私人知识库

点击「聊天设置」:

使用DeepSeek+RAG实现私人知识库

还记得我们刚才下载的 Ollama 和通过 ollama run 命令下载的 DeepSeek R1 吗?在工作区 LLM 提供者的下拉菜单中,找到通过 Ollama 管理的 DeepSeek R1。

这个设置的意思是,我们接下来可以通过 AnythingLLM 提供的 GUI 窗口,同 DeepSeek 对话,可以同 Ollama 自带的命令行窗口说再见了。

使用DeepSeek+RAG实现私人知识库

4)文档嵌入与向量数据库

接下来通过向量数据库来上传并存储用户提供的文档。点击上传图标,打开上传对话框:

使用DeepSeek+RAG实现私人知识库

点击 Upload 区域,将刚才从 Bing 搜索下载的 SAP S/4HANA private cloud PDF 文档上传:

使用DeepSeek+RAG实现私人知识库

weenCompany闻名企业网站系统5.3.0 中英文 GB2312
weenCompany闻名企业网站系统5.3.0 中英文 GB2312

weenCompany闻名企业网站系统(免费开源)是一个功能强大, 使用简单的中英文企业智能建站系统, 您只需要一些基本的计算机知识就可以利用此系统完成中小型企业网站的建设; 是低成本企业网站架设方案之首选CMS系统, 也适合建设个人网站。weenCompany闻名企业网站系统功能:1. 程序代码简洁严谨, 整个系统程序仅2M左右大小.2. 中英文双语版共用一套网站程序, 双语页面实现自由切换.3

下载

待文档上传完毕,点击 Save and Embed 按钮,将文档内容转换成向量数据并执行嵌入操作。

使用DeepSeek+RAG实现私人知识库

向量数据库是一种用于存储和查询高维向量数据的数据库,其核心功能是提供高效的相似度搜索,使得查询向量能够找到与之最接近的向量。相比传统关系型数据库(如 MySQL、PostgreSQL),向量数据库更适合存储和检索非结构化数据,如文本、图像、音频等。

在 RAG 架构中,向量数据库的作用类似于一个知识库,它存储了大量文本片段的嵌入(Embeddings),当用户输入查询时,模型会将查询转换为向量,并在数据库中检索最相关的向量,进而找到对应的文本内容。这种方式大幅提高了生成式 AI 的可控性和可解释性。

使用DeepSeek+RAG实现私人知识库

文档嵌入(Embedding)是将文本数据转换为向量的过程。这一过程的核心是将文本内容映射到一个高维向量空间中。相似的文本在该空间中的距离较近,而不相关的文本距离较远。

当然在实际企业级应用中,除了小规模的人工手动上传文档外,AnythingLLM 也支持通过 Data Connection 进行批量上传大规模文档,比如批量上传某个 Github Repo 里的文件。这种模型下,AnythingLLM 读取 Github 仓库内容的方式,通过 Access Token 完成。

使用DeepSeek+RAG实现私人知识库

等我们上传的文件出现在工作区右边区域后,说明文档的向量化即嵌入操作已经完成。

使用DeepSeek+RAG实现私人知识库

效果验证

此时,我们回到 AnythingLLM 同 DeepSeek 的对话窗口,提出一个问题:

What is embedded EWM?

使用DeepSeek+RAG实现私人知识库

DeepSeek 给出的回答的确是基于我们刚刚上传的 PDF 文件来完成的。

这一点可以从 DeepSeek 回复的 Citation 即引用区域得到证实,该区域显示本次回答引用了 SAP S4HANA private cloud edition.pdf 这个文件。

使用DeepSeek+RAG实现私人知识库

后记:模型部署

对于企业级用户而言,大模型的私有部署,在数据安全性、响应速度、可定制化、长期成本以及可靠性等多个方面都有着显著优势。而对于个人 AI 学习者来说,可以选择本地部署或者在某个云服务提供商的基础设施(IaaS)上进行私有部署的尝试。

笔者现在使用的笔记本电脑,本地部署满血 DeepSeek 比较吃力。所以,我选择了 PHP 中文网 HAI,这样就不用自己掏钱升级硬件了。

你可以登录腾讯 HAI 控制台,新建一个 Windows Server 实例:

使用DeepSeek+RAG实现私人知识库

使用 Windows 自带的 Remote Desktop Connection 登录到创建好的 HAI 实例上。

使用DeepSeek+RAG实现私人知识库

笔者之前曾发布过文章《使用腾讯 HAI 5 分钟内部署一个私人定制的 DeepSeek》,详细介绍了采用私有部署方式运行 DeepSeek 的步骤,有兴趣的小伙伴可前往了解。

通过本文展示的步骤,即使是一个不了解大语言模型底层实现细节的普通用户,借助 Ollama 和 AnythingLLM 这两个工具,也能轻松完成 DeepSeek 的本地部署,并打造自己的私人知识库。

SAP 在官方社区上也发布了其在 AI 和 RAG 领域很多积极的尝试,笔者后续的文章会继续给大家介绍!

相关专题

更多
php文件怎么打开
php文件怎么打开

打开php文件步骤:1、选择文本编辑器;2、在选择的文本编辑器中,创建一个新的文件,并将其保存为.php文件;3、在创建的PHP文件中,编写PHP代码;4、要在本地计算机上运行PHP文件,需要设置一个服务器环境;5、安装服务器环境后,需要将PHP文件放入服务器目录中;6、一旦将PHP文件放入服务器目录中,就可以通过浏览器来运行它。

2788

2023.09.01

php怎么取出数组的前几个元素
php怎么取出数组的前几个元素

取出php数组的前几个元素的方法有使用array_slice()函数、使用array_splice()函数、使用循环遍历、使用array_slice()函数和array_values()函数等。本专题为大家提供php数组相关的文章、下载、课程内容,供大家免费下载体验。

1686

2023.10.11

php反序列化失败怎么办
php反序列化失败怎么办

php反序列化失败的解决办法检查序列化数据。检查类定义、检查错误日志、更新PHP版本和应用安全措施等。本专题为大家提供php反序列化相关的文章、下载、课程内容,供大家免费下载体验。

1547

2023.10.11

php怎么连接mssql数据库
php怎么连接mssql数据库

连接方法:1、通过mssql_系列函数;2、通过sqlsrv_系列函数;3、通过odbc方式连接;4、通过PDO方式;5、通过COM方式连接。想了解php怎么连接mssql数据库的详细内容,可以访问下面的文章。

1016

2023.10.23

php连接mssql数据库的方法
php连接mssql数据库的方法

php连接mssql数据库的方法有使用PHP的MSSQL扩展、使用PDO等。想了解更多php连接mssql数据库相关内容,可以阅读本专题下面的文章。

1485

2023.10.23

html怎么上传
html怎么上传

html通过使用HTML表单、JavaScript和PHP上传。更多关于html的问题详细请看本专题下面的文章。php中文网欢迎大家前来学习。

1255

2023.11.03

PHP出现乱码怎么解决
PHP出现乱码怎么解决

PHP出现乱码可以通过修改PHP文件头部的字符编码设置、检查PHP文件的编码格式、检查数据库连接设置和检查HTML页面的字符编码设置来解决。更多关于php乱码的问题详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1569

2023.11.09

php文件怎么在手机上打开
php文件怎么在手机上打开

php文件在手机上打开需要在手机上搭建一个能够运行php的服务器环境,并将php文件上传到服务器上。再在手机上的浏览器中输入服务器的IP地址或域名,加上php文件的路径,即可打开php文件并查看其内容。更多关于php相关问题,详情请看本专题下面的文章。php中文网欢迎大家前来学习。

1307

2023.11.13

菜鸟裹裹入口以及教程汇总
菜鸟裹裹入口以及教程汇总

本专题整合了菜鸟裹裹入口地址及教程分享,阅读专题下面的文章了解更多详细内容。

0

2026.01.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
MySQL 教程
MySQL 教程

共48课时 | 1.9万人学习

MySQL 初学入门(mosh老师)
MySQL 初学入门(mosh老师)

共3课时 | 0.3万人学习

简单聊聊mysql8与网络通信
简单聊聊mysql8与网络通信

共1课时 | 805人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号