SpringAI+Ollama+DeepSeek本地大模型调用

前言

大型语言模型(LLM)在自然语言处理领域取得了突破性进展,但其庞大的计算资源需求和高昂的调用成本,使得许多开发者望而却步。如何高效、便捷地调用大模型,并将其应用于实际场景,成为了亟待解决的问题。

本文将介绍一种创新的解决方案:SpringAI + Ollama + DeepSeek,通过将三者结合,实现本地化部署和调用大模型,为开发者提供更灵活、更经济的LLM应用开发体验。

SpringAI 作为Java生态中强大的AI框架,为开发者提供了便捷的API和丰富的工具集,简化了AI模型的集成和应用开发流程。Ollama 则专注于大模型的本地化部署,通过优化模型结构和推理过程,显著降低了资源消耗,使得在普通计算设备上运行大模型成为可能。而 DeepSeek 作为国产自研的深度学习框架,提供了高效的计算引擎和灵活的模型部署方案,为本地大模型调用提供了强大的底层支持。

本文将详细讲解如何利用 SpringAI 整合 Ollama 和 DeepSeek,实现本地大模型的快速部署和高效调用,并结合实际案例,展示该方案在文本生成、代码补全等场景下的应用潜力

Ollama安装大模型

进入Ollama官网 : https://www.ollama.com/ 找到 download ,根据自己的系统环境下载对应的Ollama安装包,我这里下载的是windows版本

下载好之后双击安装,安装好之后进入到ollama安装目录,使用命令提示符窗口运行命令下载deepseek模型,模型下载且运行好之后就可以直接对话,如下:

模型的版本可以在ollama官网下载:https://www.ollama.com/library/deepseek-r1, 根据自己机器配置情况下载合适的版本

SpringAI对话DeepSeek

首先搭建一个SpringBoot工程,导入SpringBoot , SpringMVC,SpringAI的基础依赖包

  • spring-ai-ollama-spring-boot-starter : SpringAI整合了Ollama的依赖包
xml 复制代码
<parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.3.8</version>
        <relativePath/>
    </parent>
    
    <dependencies>
        <dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
    <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>

接着我们配置Ollama的地址和模型名称,创建application.yaml文件,配置如下

yaml 复制代码
spring:
  ai:
    ollama:
      base-url: http://localhost:11434
      chat:
        model: deepseek-r1:7b
  • spring.ai.ollama.base-url: Ollama的API服务地址,因为是本机所有使用localhost

  • spring.ai.ollama.chat.model: 要调用的模型名称,必须是通过ollama run命令运行的模型名称

接着我们编写SpringBoot启动类和Controller进行测试,通过注入:OllamaChatModel 就可以实现和deepseek模型进行对话

java 复制代码
@RestController
public class AIController {

    @Resource
    private OllamaChatModel ollamaChatModel;

    @RequestMapping("/chat/{message}")
    public String chat(@PathVariable String message){
        String prompt = "你是一名翻译,将输入的中文翻译成英文";
        //ollamaChatModel.stream()
        return ollamaChatModel.call(prompt+":"+message);
    }
}

测试效果如下

json 复制代码
GET http://localhost:8080/chat/你好呀

<think>
好的,我现在需要把用户提供的中文句子"你好呀"翻译成英文。首先,我应该考虑常用的翻译方式。最常见的是"Hello"或者"Hi",这两个词都可以用来回应"你好"。有时候"Hey"的发音也接近,但更正式一些。

接下来,我要分析用户的使用场景。这里可能是简短的问候,所以直接使用最常用的"Hello"足够了。如果用户希望显得更友好,可以用"Hey"来增加亲切感。不过通常情况下,"Hello"已经足够简洁明了地回应"你好"。

再考虑语法结构,中文中的"你好呀"是主语+宾语的形式,而英文中自然口语化的句子会省略一些字面意义上的变化,所以直接使用"Hello"就可以了。

可能用户希望更正式一点的翻译,所以我会提供两种选项:"Hello"和"Hey"。这样用户可以根据具体的情境选择更适合的表达方式。此外,考虑到用户的输入是纯文本,没有需要额外处理的信息,只需简单地返回这两个英文句子即可。

总结一下,我的翻译过程包括理解原文的语气、选择合适的翻译词以及提供可选的变体选项。确保翻译结果准确且自然,同时覆盖用户可能的不同需求。
</think>

Hello or Hey

结束

本文介绍了如何利用 SpringAI、Ollama 和 DeepSeek 实现本地大模型的调用,为开发者提供了一种高效、低成本的 LLM 应用开发方案。如果你还没有玩过大模型根据该片文章赶紧动起来吧!!!

相关推荐
富贵0074 小时前
解码器(Decoder)与编码器(Encoder)的简明解析
大模型·transformer
金智维科技官方7 小时前
国金证券×金智维 | 引领金融智能体规模化落地
ai·金融·ai agent·智能体·数字员工
xixixi777777 小时前
解析 Claude模型 —— Anthropic公司打造,以安全性和推理能力为核心竞争力的顶尖大语言模型
人工智能·ai·语言模型·自然语言处理·大模型·claude·主流模型
AI智能探索者8 小时前
大数据特征工程:如何处理文本与数值混合特征
大数据·ai
充气大锤8 小时前
前端实现流式输出配合katex.js
开发语言·前端·javascript·ai·vue
喜欢吃豆9 小时前
从「文件URL」到「模型可理解内容」:一套完整的文件上传与解析处理流程详解(含PDF/Excel/图片)
pdf·大模型·excel
wangmengxxw9 小时前
SpringAi-memory
人工智能·大模型·memory·springai
装不满的克莱因瓶9 小时前
【Dify实战】情感陪伴机器人 从零制作教程
人工智能·ai·agent·agi·dify·智能体
belldeep9 小时前
比较 RPA 与 AI Agent 的异同,两者有何关系?
人工智能·ai·agent·rpa
砚边数影9 小时前
DL4J框架入门(三):基础配置,计算后端(CPU/GPU)选型与优化
java·数据库·人工智能·ai·金仓数据库