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);  // 打印完整结果
                    // 可在此处添加完整结果的后续处理(如日志记录、存储等)
                });
    }


}

Logo

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

更多推荐