spring ai快速集成对接本地Ollama里的Deepseek-R1
书接上回,我们在本地安装了一个Ollama,然后下载了一个deepseek-r1:7b,本次目标:使用springboot对接ollama,完成简单api对接。
·
书接上回,我们在本地安装了一个Ollama,然后下载了一个deepseek-r1:7b,传送门
本次目标:使用springboot对接ollama,完成简单api对接
1.创建一个项目,选择JDK17,Spring Boot版本3.5.3,最好高版本,否则可能会有各种依赖问题。部分idea无法选择3.5.3版本,可以修改配置,输入地址:https://start.spring.io。
2. 我们使用的是Ollama,引入相关依赖
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
<version>1.0.0-M6</version>
</dependency>
3.调整配置文件,其他配置,按需引入调整
4.注入Bean
@Configuration
public class BeanConfig {
@Bean
public ChatClient chatClient(ChatClient.Builder chatClientBuilder) {
return chatClientBuilder.build();
}
}
5.创建一个接口
@Tag(name = "ai聊天")
@RestController
@RequestMapping("ollama")
public class OllamaController {
@Autowired
private ChatClient chatClient;
@GetMapping("chat")
public String chat(String question) {
return chatClient.prompt()
.user(question)
.call()
.content();
}
}
6.接口调用,聊天测试
7.但此时是一次性输出的,我们平时使用的ai是一个字一个输出,改造一下,使用流式输出。
@GetMapping(value = "chatStream", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
public Flux<String> chatStream(String question) {
return chatClient.prompt()
.user(question)
.stream()
.content();
}
8. 我使用的是ApiPost进行测试,选择Event Stream Request请求方式,可以看到返回数据是实时的,而不是等待所有内容完成再输出!
9.有时候我们需要给AI设置一个默认的人设,可以再注入Bean时设置
目前来说,大致可以对话了,但经过测试,ai似乎没有记忆,上下文对话毫无关联,未完待续…
更多推荐
所有评论(0)