Spring AI:调用通义千问,实现对话记忆,调用本地方法
·
1.引入依赖
首先我们需要搭建一套SpringBoot基础环境,那么我们需要集成哪些东西呢 ,具体pom.xml如下
- SpringBoot:3.2.0
- JDK:17
- SpringAI : 1.0.0 正式版本
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-chat-memory-repository-jdbc</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-starter-model-openai</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.20</version>
</dependency>
2.配置

3.创建配置类

4.调用
@RestController
@Slf4j
@RequiredArgsConstructor(onConstructor = @__(@Autowired))
public class AlController {
private final ChatClient chatClient;
@RequestMapping(value = "/ai/chat/history")
public Flux<String> history(@RequestParam("prompt") String prompt, @RequestParam("chatId") String chatId, @RequestParam("image") MultipartFile image) {
StringBuilder stringBuilder = new StringBuilder();
return chatClient
.prompt()
.user(e -> e.text(prompt).media(
new Media(MediaType.IMAGE_JPEG, image.getResource()))
)
.advisors(p -> p.param(ChatMemory.CONVERSATION_ID, chatId))
.stream()
.content()
.doOnNext(stringBuilder::append)
.doOnComplete(() -> {
String fullResult = stringBuilder.toString();
System.out.println("完整响应结果: " + fullResult); // 打印完整结果
// 可在此处添加完整结果的后续处理(如日志记录、存储等)
});
}
}

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)