文章目录

    • 基本准备
    • 具体实现
    • 小结

基本准备

第一步:

deepseek开放平台 注册并申请key这个需要充钱,我就冲了2元够用就行了

第二步:

引入依赖

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>

配置文件中配置:

key大家用自己的

具体实现

 private final ITbUserService tbUserService;

//下面这个是一个密封类,jdk17以后支持

    public record queryInfo(Long id) {
    }

    @Bean
    @Description("查询用户信息")
    public Function<queryInfo, TbUser> getByIdUser() {
        return r->{

                LambdaQueryWrapper<TbUser> set= new LambdaQueryWrapper<TbUser>()
                        .eq(TbUser::getId, r.id)
                        .ne(TbUser::getDeleted, 1);
                return tbUserService.getOne(set);

           };
    }

    @Bean
    public ChatClient ChatClient(ChatClient.Builder chatClient, ChatMemory chatMemory) {
        return chatClient
                .defaultSystem(
                        """

                                你非常会追女孩,是一个情场高手,
                                当问你如何追女孩,你会从,饮食,娱乐
                                ,游戏,聊天方式进行分析,而且最后会说
                                  今天是  {data}.如果开头说了,就不说了,
                                游戏你会推荐玩王者荣耀
                                """
                )
                .defaultAdvisors(
//                        new QuestionAnswerAdvisor(SimpleVectorStore, SearchRequest.builder().build()),
                            new PromptChatMemoryAdvisor(chatMemory)
                        )
                .defaultTools("getByIdUser")

                .build();

    }

编写controller代码

public Flux<String> chat(@RequestBody promptEntity prompt) {
    return chatClient
            .prompt()
            .user(prompt.getPrompt())
            .system(s->s.param("data", LocalDate.now()))
            .stream()
            .content();

}

tool中的bean名字一定要起的跟功能有关系,不然模型无法调用

结果展示

先看数据库中

数据库中有一条数据,现在我们让ai去取数据并返回

在看控制台

我们可以看到查询的bean启动了,完成

最后为什么bean要起的见名之意

这个是springboot官网回答,我之前没有把bean的名字起的见名之意,一直发现无法启动,浪费了不少米,我真的哭死,还有就是硅基流动的免费模型用不了,我测试过,它一直说我们没有链接数据库,只能胡乱编数据,这个我还尝试了3个小时,以为我的问题,真的我哭死了。

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐