RAG还是MCP

如果需要基于一千多页的技术标准文档,给小团队做一个辅助理解的AI助手,请问是用RAG还是MCP合适?

之前试过用CherryStudio+RAG的方式,但是幻觉还是有点高,很多情况无法基于标准文档生成系统的回复。NotebookLM幻觉没那么高,但是有点难兼顾格式化输出和小团队使用场景。

MCP势头很猛,在处理这种标准文档有优势吗?咋解决向量化?这种方式幻觉高吗?佬们有类似的需求和想法吗?多谢。

5 Likes

好奇问一下,提到的幻觉有点高是指回复问题不好吗,检索情况怎么样呢?还是单纯回复效果不好呢?

1 Like

这两是整个agent链条的两个节点吧
为啥会放一起进行比较?
想让llm融入个性化知识,rag是必须的啊
mcp更多决定你是用什么方式和llm进行交互

4 Likes

这两个不是一个赛道吧,MCP是是为LLM提供的一个标准化接口,这样LLM就能连接外部数据源和工具。MCP上限取决于你得MCP怎么写的,比如你这个MCP功能是在文档中搜索关键词所在段落,然后就能返回段落内容给LLM数据。

9 Likes

不是一类东西
mcp只是规定了调用工具的格式,没啥特别的。效果取决于你的mcp怎么写的。你完全可以搞一个向量语义搜索的工具。但是这就是RAG,区别是这个花里胡哨的,会多很多次额外的没有意义的大模型调用,会额外耗不少token,非常丑陋
建议RAG

2 Likes

首先,你要理解什么是MCP。MCP只是规定了给大模型提供工具使用的协议而已。而最终落地,还是一个工程化的东西,核心还是需要能从大量文档里找到正确的参考内容给大模型。找参考内容这件事,不管你用RAG,还是有些MCP能提供检索工具,你当前遇到的问题都依然会存在。

2 Likes

短文本回复准确性是挺高的;针对一千多页的长文本,好像只能检索到前面部分的内容,没有针对知识库做一个整体的检索和思考··也试过Cursor和Copilot直接基于文档去问,也是类似的情况,文本长度太长就会出现这种问题

做一些数据清洗,尽量形成一条一条的关联数据,这样向量化之后检索效率才高,然后加上重排,基本就可用了

1 Like

我是在想如果MCP可以调用知识库数据,精度和幻觉问题会不会比RAG好。但看了佬们下面的分享,看起来调用的这个过程其实还是跟RAG一样向量化的过程

:bili_040: MCP 就是之前 FC、Tools 的升级版,调用 mcp/fc 去查数据库跟你直接把查询结果直接塞上下文是一样的,能吃下多少上下文是模型自身的能力。

1 Like

感觉你理解有点偏差
rag效果第一取决于向量化,第二取决于rerank
这两都发生在llm调用之前
和mcp就更没关系了

2 Likes

嗯嗯理解,我主要是想MCP是不是可以解决信息检索精度(每次回复都系统检索知识库文档)再配合提示词然后深度思考生成结构化的输出回复,回复稳定性高点和幻觉低点

和MCP关系不大,RAGFlow、Dify了解一下,这两个都有比较成熟的RAG解决方案,针对你要做的事。

3 Likes

了解了多谢!

大佬,请问数据清洗,一般怎么做?最近在研究这个,但不是很懂

噢噢了解!多谢解释!

多谢佬!

客气了佬,这两个系统都可以用Docker部署,本地和服务器部署都可以,很方便,可以实操一下。有问题可以交流,这块我接触的比较多。

1 Like

简单来说,就是把数据清洗成关联性更强的样子,或者说更容易体现出向量的秩的样子,比如:
你是一个xxx,他也是。
这句话表达的意思是:
你是一个xxx,他也是一个xxx。
但是最好清洗成:
你是一个xxx;他是一个xxx
这样能避免一些复杂的语义,尽量弄成结构化的数据喂给ai,不要用太复杂的高级语法的句子,还有就是把握分割chunk的尺度,比如一个长句子,用定量和分隔符的方式拆分会有完全不同的效果

1 Like

可以考虑把 RAG 做成工具以 MCP 提供给模型(dify、fastgpt 都可以做这个),特别是思考模型实测可以根据需要反复去 RAG 中取资料,能一定程度上提高回答准确性。

2 Likes