【画江湖】langchain4j - Java1.8下spring boot集成ollama调用本地大模型之问道系列(第一问)

背景

随着 AI 大模型的兴起,许多公司希望在现有基于 Java 8 的项目中集成 AI 功能。然而,许多最新的 AI 工具和库(如:Spring AI LangChain4j)已经转向支持更高版本的 Java(如 JDK 17),这给希望在 Java 8 环境中工作的开发者带来了挑战。看网上很多都没有关于JDK8相关资料,本文将提供一个解决方案,展示如何在 Java 8 环境下,使用 Spring Boot 框架集成 LangChain4j,并通过 Ollama 调用本地大模型。

提示

好多框架现在都是基于JDK17的,如spring AI 、 LangChain4j 的 0.31.0 之后的版本将不在支持Java jdk1.8,由于AI版本的更新迭代比较频繁,这也意味着我们的项目也要紧跟时代的潮流基于17来开发。

1. 环境准备

确保你的开发环境已安装以下工具:

Java JDK 1.8:确保你的项目使用的是 Java 8。

Maven:用于项目依赖管理。

Spring Boot:用于构建应用程序。

Ollama:本地大模型服务。

deepseek-r1:1.5b:系统资源有限就按照这个模型了。

2. 安装 Ollama

首先,确保你已经安装了 Ollama。你可以从 Ollama 官网 下载并安装 Ollama。

下载并安装你选择的模型,例如 DeepSeek-r1:1.5b:

ollama run deepseek-r1:1.5b

我这window的系统 如下效果,安装我就不介绍了,大家都会。

3. 添加LangChain4j maven 依赖

复制代码
	<dependency>
        <groupId>dev.langchain4j</groupId>
        <artifactId>langchain4j-core</artifactId>
        <version>0.31.0</version>
    </dependency>

    <dependency>
        <groupId>dev.langchain4j</groupId>
        <artifactId>langchain4j-ollama</artifactId>
        <version>0.31.0</version>
    </dependency>

这里我就省略了其他spring boot 相关依赖了

4. 给spring注入bean LangChain4j

复制代码
@Configuration
public class LangChain4jConfig {

@Bean
public ChatLanguageModel chatLanguageModel() {
    return OllamaChatModel.builder()
            .baseUrl("http://localhost:11434")
            .modelName("deepseek-r1:1.5b")
            .build();
   }
}

http://localhost:11434 这是我们ollama的服务地址

deepseek-r1:1.5b 这是我们需要使用的模型

上面的这些你们自己可以写到springboot的核心配置文件里,我有点懒,就不了 只是演示下

4. 写一个Controller演示一下

复制代码
@RestController
public class ChatController {
	 @Autowired
	 private ChatLanguageModel chatLanguageModel;

		@GetMapping("/chat")
		public String chat(@RequestParam(value = "message", defaultValue = "Hello") String message) {
		    return chatLanguageModel.generate(message);
		}
}

5. 演示效果

相关推荐
程序员海军25 分钟前
用了两年多 GPT,我最近开始换模型了,还折腾了个求职避坑 Agent
前端·人工智能·后端
码士集团小青27 分钟前
SpringBoot 集成缓存性能之王 Caffeine
spring boot·后端·缓存
凤凰院凶涛QAQ2 小时前
《Java版数据结构 & 集合类剖析》Map & Set & 反射:“从哈希碰撞到红黑树转换,反射帮你扒开 HashMap 的桶数组看个究竟”
java·数据结构·算法
H.莓飛2 小时前
【数据结构】排序_OJ题(一):计数、桶与排序后的处理
java·开发语言·数据结构
wangchunyu1142 小时前
JAVA AQS与Lock实现原理(含CAS)
java·开发语言·word
excel2 小时前
IndexNow:让搜索引擎更快发现网站更新的主动通知协议
前端·后端·架构
Json____3 小时前
用 FastAPI + Vue3 打造一套完整的在线考试系统:从组卷到阅卷的业务闭环实践
后端·node.js·fastapi·it学习·wwwoop.com
w_zero_one4 小时前
算法--模拟
java·数据结构·算法
小灰灰搞电子4 小时前
Rust+Slint 实现FTP客户端调试助手源码分享
开发语言·后端·rust
Javatutouhouduan4 小时前
阿里1658页Java面试题总结(含答案)
java·高并发·java面试·java面试题·后端开发·java程序员·java八股文