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

相关推荐
耿雨飞4 小时前
二、The Power of LLM Function Calling
人工智能·大模型
huang_xiaoen8 小时前
试一下阿里云新出的mcp服务
人工智能·阿里云·ai·云计算·mcp
杀生丸学AI8 小时前
【三维重建与生成】GenFusion:SVD统一重建和生成
大模型·llm·aigc·三维重建·稀疏重建·蒸馏与迁移学习·扩散模型与生成模型
x-cmd11 小时前
[250415] OpenAI 推出 GPT-4.1 系列,支持 1M token
gpt·ai·openai·gpt-4.1
小白跃升坊12 小时前
Chat to MySQL 最佳实践:MCP Server 服务调用
ai·大语言模型·it运维·mcp
结冰架构15 小时前
【AI提示词】金融信息抽取工程师工作流程
人工智能·学习·ai·金融·提示词
探索云原生15 小时前
大模型微调实战:通过 LoRA 微调修改模型自我认知
ai·云原生·llm·sft
仙人掌_lz15 小时前
AI agents系列之智能体框架介绍
人工智能·ai·自然语言处理·llm·ai agents
不会代码的小测试17 小时前
Windsurf代码依赖检查导入
ai·编辑器·ai编程
程序员洲洲20 小时前
3款顶流云电脑与传统电脑性能PK战:START云游戏/无影云/ToDesk云电脑谁更流畅?
ai·大模型·todesk·性能·云电脑·ollama