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 应用开发方案。如果你还没有玩过大模型根据该片文章赶紧动起来吧!!!

相关推荐
带刺的坐椅1 天前
Solon AI 开发学习 - 1导引
java·ai·openai·solon·mcp
哥布林学者1 天前
吴恩达深度学习课程二: 改善深层神经网络 第三周:超参数调整,批量标准化和编程框架(三)多值预测与多分类
深度学习·ai
天草二十六_简村人1 天前
dify中级入门示例--使用知识库搭建智能客服机器人
后端·ai·云原生·ai编程
SEO_juper1 天前
谷歌搜索全面AI化:SGE如何重构我们的搜索体验与营销格局
人工智能·ai·重构·数字营销
iFlow_AI2 天前
iFlow CLI Hooks 「从入门到实战」应用指南
开发语言·前端·javascript·人工智能·ai·iflow·iflow cli
九年义务漏网鲨鱼2 天前
【大模型面经】千问系列专题面经
人工智能·深度学习·算法·大模型·强化学习
WWZZ20252 天前
快速上手大模型:深度学习7(实践:卷积层)
人工智能·深度学习·算法·机器人·大模型·卷积神经网络·具身智能
CS创新实验室2 天前
练习项目:基于 LangGraph 和 MCP 服务器的本地语音助手
运维·服务器·ai·aigc·tts·mcp
DO_Community2 天前
基于AI Agent模板:快速生成 SQL 测试数据
人工智能·python·sql·ai·llm·ai编程
赵康2 天前
使用 LLM + Atlassian MCP 1小时生成年终总结
ai·llm·mcp