大模型学习-使用ollama将大模型部署在java项目中
在刚开始,我是直接引入ollama依赖:但是,引入依赖后发现,项目中无法使用该依赖的东西,即使maven中显示已经有了这个依赖:于是,我查阅了相关资料,得知:springboot版本需要为3.x才能使用ollama的依赖,而我的项目的springboot版本为2.7.12所以,我又尝试升级springboot的版本,我是直接改了版本:启动项目后,仍然报错:将该错误信息交给gpt,它的回答是:即使我
目录
最初的尝试
在刚开始,我选择直接引入ollama依赖:
但是,当我引入依赖后发现,项目中无法使用该依赖的东西,即使maven中显示已经有了这个依赖:
于是,我查阅了相关资料,得知:springboot版本需要为3.x才能使用ollama的依赖,而我的项目的springboot版本为2.7.12
所以,我又尝试升级springboot的版本,直接更改了版本号:
启动项目后,仍然报错:
将该错误信息交给gpt,它的回答是:
即使我将配置类都注释掉,还是有这个问题。
就这样,我在这个问题上逗留了一下午。
最后,在我一筹莫展之际,终于发现了问题所在。将springboot从2.x版本升级到3.x版本并不仅仅是改版本号这么简单,对应的一些依赖、配置甚至是一些代码都需要做调整。
接下来,我将介绍升级springboot、部署ollama的整个过程
升级springboot
首先需要修改版本号
依赖项调整
mysql的依赖需要改成 mysql-connector-j
mybatis-plus依赖也需要进行替换:
配置调整
在3.x版本的springboot中,redis的配置也需要调整,因为它多了一个data层级:
代码调整
在我的项目中有一个SpringSecurity的配置类:
但是在 Spring Boot 3.x 版本中,WebSecurityConfigurerAdapter
已经被标记为不推荐使用,推荐使用的是 SecurityFilterChain
。所以我进行了修改,如下图:
代码:
@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfig {
// 配置 BCrypt 密码加密器
@Bean
public PasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
.cors() // 启用 CORS 支持
.and()
.csrf().disable(); // 禁用 CSRF 防护
return http.build();
}
@Bean
public CorsConfigurationSource corsConfigurationSource() {
CorsConfiguration configuration = new CorsConfiguration();
configuration.setAllowedOrigins(Arrays.asList("*"));
configuration.setAllowedMethods(Arrays.asList("*"));
configuration.setAllowedHeaders(Arrays.asList("*"));
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", configuration);
return source;
}
}
在3.x版本的springboot中,需要将javax.servlet包替换为jakarta.servlet:
最后,由于调整了mybatis-plus的依赖,所以一些代码的使用也需要调整:
类似的调整共有三处,我都进行了修改。
这样,就成功地将springboot2.x升级为springboot3.x了
引入ollama依赖
<dependency>
<groupId>group.springframework.ai</groupId>
<artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
<version>1.1.0</version>
</dependency>
配置ollama
在配置文件中,对ollma进行相关的配置:
spring:
ai:
ollama:
base-url: http://localhost:11434
chat:
enabled: true
model: llama3.1:8b
options:
temperature: 0.7
编写测试Controller
@RestController
@RequestMapping("/ollama")
public class OllamaController {
@Resource
private OllamaChatModel ollamaChatModel;
@GetMapping
public void test() {
String message = "牛顿是谁?";
message = "请使用中文简体回答:" + message;
Prompt prompt = new Prompt(new UserMessage(message));
ChatResponse chatResponse = ollamaChatModel.call(prompt);
String content = chatResponse.getResult().getOutput().getContent();
System.out.println("content = " + content);
}
}
在controller中编写了一个方法,让大模型回答“牛顿是谁?”的问题
这样,项目启动后,访问/ollama路径,就会执行test方法。如果控制台有输入,说明大模型进行了回答,部署成功。
测试
启动项目,访问localhost:8081/ollama
耐心等待后,控制台输出:
大模型回答了“牛顿是谁”的问题,部署成功。
更多推荐
所有评论(0)