SpringAi调用Ollama(deekseep)的Toolcall失败原因

1、根本原因

其实ollama上的deepseek目前并不支持调用Toolcall,r1和v3都不行,那怎么选呢(需要有tool的标签才能支持):

在这里插入图片描述

2、向量数据源影响其判断

可以将其向量数据源注释掉看看是否能进入,如果确定是这个原因,那什么模型不够智能,或者可以把向量数据库的数据优化一下
在这里插入图片描述

3、函数重复

这时候调用是会报错的 `java.lang.IllegalStateException: Multiple tools with the same name (getNowTime) found in ToolCallingChatOptions` ,这个两个原因
模型导入重复
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/d26883345ab149eb9b91687289838f30.png)
函数重复
@Tool 注解的含义可能有歧义导致模型不能分辨

因为SpringAI很多的功能都还在试验,所以试验的样本相对比较少,并且后续可能也会被官方调整

### SpringAI 集成 Ollama 方法 为了实现SpringAIOllama的集成,在`application.yml`文件中指定Ollama的基础URL以及所使用的模型名称。具体来说,配置如下所示[^3]: ```yaml spring: ai: ollama: base-url: http://localhost:11434 embedding: model: llama2 ``` 上述配置指定了Ollama服务的位置为`http://localhost:11434`,并且选择了名为`llama2`的预训练模型用于嵌入操作。 接着,在Spring Boot应用程序中可以通过依赖注入的方式获取到已配置好的组件实例,并调用相应的方法来完成具体的任务处理逻辑。由于Spring AI简化了与大型语言模型(LLM)之间的交互接口设计,使得开发者能够更加专注于业务逻辑本身而不必过多关心底层通信细节[^4]。 下面是一个简单的代码片段展示如何利用Spring Data JPA查询数据库并将结果传递给Ollama进行进一步分析或生成回复的例子: ```java @RestController @RequestMapping("/api/v1/ollama") public class OllamaController { private final OllamaService ollamaService; @Autowired public OllamaController(OllamaService ollamaService) { this.ollamaService = ollamaService; } @GetMapping("/analyze/{id}") public ResponseEntity<String> analyze(@PathVariable Long id) { String result = ollamaService.analyze(id); return ResponseEntity.ok(result); } } ``` 在此基础上,还可以根据实际需求扩展更多功能模块,比如增加错误重试机制、日志记录等功能以提高系统的稳定性和可维护性。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值