Langchain4j 系列之二十七 - Ollama集成Deepseek

上一个系列讲了Spring AI得到反馈效果不错,有人私信我说这个和Langchain4j有什么区别。如果站在使用方面,都是基于Java的大模型应用研发的工具,本质上没太大区别。但是从细节层面来说还是有很多不同之处,所以索性借此机会,给大家分享一下Langchain4j框架。在本系列中会按照Spring AI系列的顺序来写Langchain4j,这样的好处是可以对比两者不同的细节。

注意由于框架不同版本改造会有些使用的不同,因此本次系列中使用基本框架是langchain4j-1.9.1,JDK版本使用的是19。另外本系列尽量使用Java原生态,尽量不依赖于Spring和Spring Boot。虽然langchain4j也支持Spring Boot集成,但是如果是使用Spring Boot框架,那为何不索性使用Spring AI
本系列的所有代码地址: https://github.com/forever1986/langchain4j-study

目录

  • [1 Ollama](#1 Ollama)
  • [2 示例演示](#2 示例演示)
    • [2.1 部署机器准备(可选)](#2.1 部署机器准备(可选))
    • [2.2 Ollama的安装](#2.2 Ollama的安装)
    • [2.3 开放AutoDL端口(可选)](#2.3 开放AutoDL端口(可选))
    • [2.4 代码](#2.4 代码)
    • [2.5 演示效果](#2.5 演示效果)

上一章讲解了如何本地加载ONNX格式的模型,并在Langchain4j 中使用该格式的模型。这一章讲解如何使用Ollama运行Deepseek模型,并通过Langchain4j 调用。

1 Ollama

如果部署过大模型的朋友,应该知道大模型部署比较麻烦,更何况要使用不同大模型,其API接口也有些小差异。这时候就有人想着要是能一键部署就好了,因此Ollama就出现了。

Ollama 是一个强大的本地推理大模型平台,旨在简化模型的本地部署、管理和推理工作流。它允许用户在本地机器上拉取、管理、运行大模型,并提供多种访问方式,包括本地 CLI、HTTP 接口以及通过 OpenAI 客户端的集成。这篇文章将详细介绍 Ollama 的功能,如何使用 Ollama 拉取模型、运行模型,并通过多种方式访问推理服务。

简单理解,它就是一个大模型的安装工具,可以安装各类大模型,并且适合于各种平台Windows、Linux、MacOS、Docker等等。因此它就变成越来越受欢迎,最终使得它能部署的大模型也就越来越多。这一点上,Langchain4j 也是有一样的目的,就是让用户使用起来方便,这样很多大模型都会提供Langchain4j 的插件,这样用户就不用担心模型迁移的问题。

2 示例演示

示例说明:本次演示通过Ollama部署deepseek-r1:7b模型,并通过Langchain4j 客户端进行访问

2.1 部署机器准备(可选)

说明 :由于本人比较穷,没有很好的显卡,因此在网上租了一台,在AutoDL上面租赁的。如果自己机子的,可以自己安装,不用参考这一部分

1)在AutoDL申请一台机子,显卡3090即可

2)其镜像选择ubuntu22.04即可

3)通过Web界面JupyterLab工具访问

2.2 Ollama的安装

1)执行以下命令安装Ollama

shell 复制代码
curl -fsSL https://ollama.com/install.sh | sh

2)安装成功之后,启动Ollama(注意:这里设置端口

shell 复制代码
export OLLAMA_HOST="0.0.0.0:6006"
ollama serve

说明:这里增加一个临时变量配置,将ollama的HOST设为0.0.0.0是允许外部访问。端口设置为6006是因为AutoDL只提供6006端口对外访问(如果你这边是自己本地机子,可以不用设置该变量)

3)下载deepseek-r1:7b模型

shell 复制代码
export OLLAMA_HOST="0.0.0.0:6006"
ollama run deepseek-r1:7b

下载完成

2.3 开放AutoDL端口(可选)

说明 :该步骤是因为我使用了远程机子AutoDL,而AutoDL只开放6006端口,如果你使用自己的机子,可以跳过这一步

1)本地设置可以访问AutoDL服务器的6006端口

参考视频:AutoDL暴露6006端口教程

2)访问:http://localhost:6006

说明:当在本地使用:http://localhost:6006 访问到上图的内容,即说明本地已经和AutoDL打通了6006端口

2.4 代码

代码参考lesson11子模块

1)在lesson11子模块下,其pom引入如下插件:

xml 复制代码
<dependency>
    <groupId>dev.langchain4j</groupId>
    <artifactId>langchain4j-ollama</artifactId>
</dependency>

2)在lesson11子模块下,新建OllamaTest 类

java 复制代码
package com.langchain.lesson11;

import dev.langchain4j.model.ollama.OllamaChatModel;

public class OllamaTest {
    public static void main(String[] args) {
        OllamaChatModel ollamaChatModel = OllamaChatModel.builder()
                .baseUrl("http://localhost:6006")
                .modelName("deepseek-r1:7b")
                .build();
        System.out.println(ollamaChatModel.chat("你是谁?"));
    }
}

2.5 演示效果

1)运行OllamaTest 测试,结果如下:

结语:本章示了Ollama的部署和运行,然后又演示了如何在Langchain4j调用Ollama大模型。为什么Ollama如此重要,这是因为Ollama通过统一规范,让不同厂商的大模型统一化,这个对后续应用非常友好,因此现在很多人都喜欢使用该方式部署大模型。因此Langchain4j才会特意兼容Ollama部署好的大模型。

Langchain4j 系列上一章:《Langchain4j 系列之二十六 - ONNX部署本地模型

Langchain4j 系列下一章:《Langchain4j 系列之二十八 - Hugging Face 集成

相关推荐
Deepoch2 小时前
Deepoc具身模型:智能炒菜机器人的技术底座
人工智能·科技·机器人·具身模型·deepoc·炒菜机器人·厨师
狐572 小时前
2026-01-19-论文阅读-SAM2-2
论文阅读·人工智能·计算机视觉
TracyCoder1232 小时前
LLM应用开发框架技术选型指南:LangChain vs LlamaIndex
langchain
Data-Miner2 小时前
Excel-Agent永久买断,一款结合AI Agent的excel数据处理智能体
人工智能·excel
北京耐用通信2 小时前
耐达讯自动化Profibus总线光纤中继器在连接测距仪中的应用
人工智能·物联网·网络协议·网络安全·自动化·信息与通信
MoonBit月兔2 小时前
MoonBit 获日本最大技术社区Zenn原生支持,热度持续上升中!
人工智能·ai编程·moonbit
高频交易dragon2 小时前
配对交易策略大观
大数据·人工智能
我叫张土豆2 小时前
2026最强实战:用《三国演义》把 KAG(知识增强生成)跑通:LLM抽取知识图谱→Neo4j入库→召回评测→图谱问答闭环(附完整测试代码)
人工智能·知识图谱·neo4j
Roye_ack2 小时前
【Mac 实战】简单知识图谱搭建步骤详解(Neo4j + py2neo)
人工智能·知识图谱·neo4j·py2neo