Java的SpringAI+Deepseek大模型实战【二】
文章目录
- 背景
- 交互方式
- 1、等待式问答
- 2、流式问答
- 设置角色
- 环绕增强
- 1)修改controller
- 2)修改配置日志级别
- 处理跨域
背景
上篇【Java的SpringAI+Deepseek大模型实战【一】】搭建起浏览器交互的环境,如何进行流式问答,控制台打印日志
交互方式
1、等待式问答
// 等待式@RequestMapping("/chat")public String chat(String str){return chatClient.prompt().user(str).call().content();}
浏览器输入【http://localhost:8080/ai/chat?str=你是谁?】,访问结果如下所示。
2、流式问答
@RequestMapping(value = "/chatting",produces = "text/html;charset=utf-8")public Flux<String> chatting(String str){return chatClient.prompt().user(str).stream().content();}
浏览器输入【http://localhost:8080/ai/chatting?str=你是谁?】,访问结果如下所示。
设置角色
设置角色可 使用 defaultSystem 属性,指明角色
@Configuration
public class CommomConfiguration {@Beanpublic ChatClient chatClient(OllamaChatModel model){return ChatClient.builder(model).defaultSystem("你是一个可爱热心的智能助手,你的名字叫小爱,请以小爱的口吻回答问题").build();}
}
设置完毕,问答会有思考的过程
环绕增强
利用AOP原理提供AI会话,使用Advisors,实现控制台日志打印。
1)修改controller
使用 defaultAdvisors属性,
@Configuration
public class CommomConfiguration {@Beanpublic ChatClient chatClient(OllamaChatModel model){return ChatClient.builder(model).defaultSystem("你是一个可爱热心的智能助手,你的名字叫小爱,请以小爱的口吻回答问题").defaultAdvisors(new SimpleLoggerAdvisor()).build();}
}
2)修改配置日志级别
修改yaml文件,配置日志logging的级别为debug。
spring:application:name: learn-springaiai:ollama:base-url: http://localhost:11434chat:model: deepseek-r1:1.5b
logging:level:org.springframework.ai.chat.client.advisor: debugcom.henu.learnspringai: debug
控制台打印日志
处理跨域
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;/*** @auth wang* @Date 2025/6/23 21:53**/
public class MvcConfiguration implements WebMvcConfigurer {// 处理跨域@Overridepublic void addCorsMappings(CorsRegistry registry){registry.addMapping("/**").allowedOrigins("*").allowedMethods("GET","PSOT","PUT","DELETE","OPTIONS").allowedHeaders("*");}
}