提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

SpringAI的学习笔记


一、非重点前置

embedding:将一长串文本转换成多维向量,比如1024维,然后通过余弦不等式计算相似度,可以用于做推荐系统。相关不重要的资料,是将演员简介全部转换为向量,然后新用户点击后,寻找和他加权平均向量链值最接近的用户,推荐新用户没看过的,即用embedding实现协同过滤。
RAG:将知识库前篇后匹配用户问题,并返回

二、重点

1.手写RAG

1.chunk划分适中,设置为200-500,过大导致内容都在一个chunk,回答也集中在某个chunk,丢失细节;过小导致可能会丢失上下文信息
在这里插入图片描述

2.减小相似度,将更多的chunk返回给模型,或者topN多拿一些
在这里插入图片描述

3.手动获取相邻片段
在这里插入图片描述

2.RAG的API使用

分两种,一种就是questionAndAnswer,另一种可以带上下文RetrivalArgument
在这里插入图片描述
在这里插入图片描述
实际使用如果需要AI严格按照知识库来回答,还是要调小相似度,让尽可能多的chunk返回给模型,回答效果才能比较好。

3.MCP协议

如果有更换模型的考虑,可能在编写开始就要考虑遵循MCP协议。MCP协议是大模型和调用工具间的规范。

  1. 单机
    注:client端执行server端指定目录下的jar包,来实现调用

server端
在这里插入图片描述
client端
在这里插入图片描述

  1. 远程
    代码层几乎一样,只是修改了pom文件

总结

如果是刚开始,注意应该放在embedding和RAG,然后如果想要手写的工具能够被多个模型复用,就注意一下MCP,就这些。

Logo

欢迎加入 MCP 技术社区!与志同道合者携手前行,一同解锁 MCP 技术的无限可能!

更多推荐