智能体项目阶段性成果,再排一下spring ai的坑
最近打完比赛,搞完四级终于有时间来继续搞图库项目了,还记得我之前说要做一个可以编辑也可以搜图的智能体,刚好鱼皮也更新完了智能体项目,那就先搞这个

不过尽管之前有开发智能体,用知识库的经验,看了鱼皮的教程我还是感叹自己搞的还是太浅了,什么rag深层调优 spring ai openManus,这些技术之前是属于听有听过,但是怕门槛太高不敢接触。这个教程看下来对我的视野 想法是有很大提升的。所以呢?我根据鱼皮的开发的yuManus,按自己的想法搞了个"图像领域专业的ai助手",现在的功能可以联网搜索图片也可以随意改图,当然由于采用了openManus架构的原因,这些功能也可以一句话实现了,ai也有思考的能力,比如下面的我让他去搜一张熊猫的图片 然后自己去转风格,他就很好的调用了2个工具去使用,并输出最终结果

搜索的熊猫图片

转风格的最终效果
效果还不错对吧,不过对于我现在想法这个东西只能算是个阶段性的,因为之后还有集成生图 多模态等功能做一个"图像领域专业的ai助手"
Spring AI一些经验
很多人看到项目里面皮总使用的是spring ai alibaba,而且用的模型也不是deepseek,而是用qwen qwq plus。自己想用deepseek也不知道怎么调,比如我。。
超时问题
一开始呢你可能会看到spring ai的官网上有做deepseek的适配,但是当你引入了依赖,给官方冲了10块钱,开始运行的时候,你发现简短一些的信息还好,要是发长一点的信息就报了个超时的错误,如果用的是推理模型r1那更是这样,这个问题在于spring ai对这些ai服务器的响应有一个10的限制,如果过了10秒ai接口没返回东西就会报一个超时的错误,那官方接口本来就慢,还这么一搞那别想用了,不过解决也不是没有,spring ai Alibaba那边有一个重试机制retry,在调不到接口的情况下可以让他触发重试,一直调直到返回为止。spring ai官方的话有这个功能不过我是找不到怎么用了(大佬指点一下)

调用其他平台的模型
于是我采用了第二个办法,调其他云平台的api,你可能会问百炼不是有deepseek吗?为什么要去其他平台调。首先阿里方面对deepseek的关注度肯定是不如自家模型的,给的服务器资源不够,所以阿里的deepseek也会很慢,其次阿里的模型并不是最新的deepseek的版本v30326 r10528。所以选择其他家的模型一个不错的选择,这里我推荐火山,火山的deepseek调用速度很快不说也会及时进行版本更新,那该怎么调呢?火山的api是支持open api格式的,所以我们可以去使用open api的依赖来使用模型,依赖和配置在下面
▼text复制代码<dependencyManagement> <dependencies> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-bom</artifactId> <version>1.0.0</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> <dependency> <groupId>org.springframework.ai</groupId> <artifactId>spring-ai-starter-model-openai</artifactId> </dependency


很多人照这官方这样配直接贴base-url了 https://ark.cn-beijing.volces.com/api/v3/chat/completions ,会出现404,因为openapi会在链接后面加默认的/v1/chat/completions,所以链接就变成了 https://ark.cn-beijing.volces.com/api/v3/chat/completions/v1/chat/completions ,这样子当然拿不到
所以要把 completions-path: /chat/completions,就可以了,其他平台也同理,然后调用的话是可以正常调的,如果是调用的r1模型,这些思考的结果需要自己获取,spring ai没有做深度思考的适配,所以需要自己拿到原始的响应chatresponse,自己封装深度思考的过程

