01-对话机器人-快速入门

01 对话机器人 快速入门

注意:本系列教程使用Ollama在本地部署Deepseek-R1:7b模型

1. 步骤

  1. 引入依赖

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.springframework.ai</groupId>
                <artifactId>spring-ai-bom</artifactId>
                <version>${spring-ai.version}</version>
                <type>pom</type>
                <scope>import</scope>
            </dependency>
        </dependencies>
    </dependencyManagement>
    
    <dependency>
        <groupId>org.springframework.ai</groupId>
        <artifactId>spring-ai-starter-model-ollama</artifactId>
    </dependency>
    
  2. 配置模型

    spring:
      ai:
        ollama:
          base-url: http://localhost:11434
          chat:
            model: deepseek-r1:7b
    
  3. 配置客户端

    @Bean
    public ChatClient chatClient(OllamaChatModel model) {
        return ChatClient.builder(model)
                    .defaultSystem("你是可爱的助手,名字叫小团团。")
                    .build();
    }
    
    String content = chatClient.prompt()
                .user("你是谁?")
                .call()
                .content();
    
    Flux<String> content = chatClient.prompt()
                .user("你是谁?")
                .stream()
                .content();
    

2. 创建项目

创建项目01

创建项目02

3. 配置项目

  1. application.yml如下:

    spring:
      application:
        name: chat-bot
    
      ai:
        ollama:
          base-url: http://localhost:11434
          chat:
            model: deepseek-r1:7b
    
    
  2. 创建配置类

    /**
    * 公用配置类
    *
    * @author DongCha
    */
    @Configuration
    public class CommonConfiguration {
    
        // 构建默认工厂
        @Bean
        public ChatClient chatClient(OllamaChatModel model) {
            return ChatClient.builder(model)
                    // 默认设定
                    .defaultSystem("你是可爱的助手,名字叫小团团。")
                    .build();
        }
    
    }
    
  3. 创建一个Controller,用于测试对话

    /**
     * Ai 对话 前端控制器
    *
    * @author DongCha
    */
    @RequiredArgsConstructor
    @RestController
    @RequestMapping("/ai")
    public class ChatController {
    
        // 引入模型
        private final ChatClient chatClient;
    
        // 普通对话(阻塞)
        @RequestMapping("/chat")
        public String chat(String prompt) {
            return chatClient.prompt()
                    .user(prompt)
                    .call()
                    .content();
        }
    
        // 普通对话(流式)
        @RequestMapping(value = "/chatStream", produces = "text/html;charset=utf-8")
        public Flux<String> chatStream(String prompt) {
            return chatClient.prompt()
                    .user(prompt)
                    .stream()
                    .content();
        }
    
    }
    
  4. 打开浏览器验证

基本使用到此已完成

posted @ 2025-07-22 03:18  DongCha  阅读(24)  评论(0)    收藏  举报