Spring AI + Ollama 实现调用DeepSeek-R1模型API

一、前言

随着人工智能技术的飞速发展,大语言模型(LLM)在各个领域的应用越来越广泛。DeepSeek 作为一款备受瞩目的国产大语言模型,凭借其强大的自然语言处理能力和丰富的知识储备,迅速成为业界关注的焦点。无论是文本生成、代码编写,还是智能问答、数据分析,DeepSeek 都展现出了巨大的潜力。

为了更好地将 DeepSeek 的强大能力赋能到实际项目中,本文将介绍如何利用 Spring AI 和 Ollama 实现 DeepSeek 模型的调用。Spring AI 作为 Spring 生态系统中用于构建 AI 应用的框架,提供了便捷的 API 和丰富的功能,能够帮助我们快速集成各种 AI 模型。而 Ollama 则是一个轻量级的工具,可以方便地在本地运行和管理大型语言模型,为开发者提供了更加灵活和高效的模型部署方案。

通过本文的学习,您将掌握如何使用 Spring AI 和 Ollama 搭建一个简单的应用,并实现对 DeepSeek 模型的调用,从而为您的项目注入更强大的 AI 能力。

二、Spring AI介绍

Spring AI 是 Spring 生态系统中的一个新兴项目,旨在为开发者提供一套简单、统一的 API 和工具,以便更轻松地将人工智能(AI)能力集成到 Spring 应用中。随着 AI 技术的快速发展,越来越多的企业希望将大语言模型(LLMs)、机器学习模型和其他 AI 功能融入自己的业务系统。Spring AI 应运而生,为开发者提供了一个标准化的方式来访问和调用各种 AI 模型和服务。

主要功能:

1.大语言模型(LLMs)集成

支持调用 OpenAI、DeepSeek、Hugging Face 等主流大语言模型。

提供统一的 API 进行文本生成、对话、翻译等任务。

2.向量数据库支持

集成向量数据库(如 Pinecone、Weaviate),用于存储和检索高维向量数据,支持语义搜索和推荐系统。

3.提示词工程(Prompt Engineering)

提供工具和模板,帮助开发者优化与大语言模型的交互,提升模型输出的准确性和相关性。

4.数据预处理和后处理

提供数据清洗、格式化等功能,确保输入数据符合模型要求,并对模型输出进行后处理。

5.可扩展性

支持自定义模型和算法,开发者可以根据需求扩展 Spring AI 的功能。

三、Ollama介绍

Ollama 是一个轻量级、开源的工具,旨在帮助开发者更轻松地在本地运行和管理大型语言模型(LLMs)。它专注于简化模型的部署和使用流程,使得开发者无需复杂的配置即可快速上手。Ollama 支持多种流行的开源大语言模型(如 LLaMA、Mistral、DeepSeek 等),并提供了简单易用的命令行工具和 API,方便开发者将模型集成到自己的应用中。

关于Ollama本地部署 DeepSeek 模型,参考我之前的文章 DeepSeek-R1本地部署详细指南 : 《DeepSeek-R1本地部署详细指南!(Ollama+Chatbox AI+Open WebUI)》

一定要先在本地部署 DeepSeek 模型,不然后面项目中无法使用。

四、SpringBoot项目中使用本地DeepSeek模型(代码实战)

整体版本SpringBoot 版本3.4.2 + JDK 17 + Ollama版本1.0.0-M6

1. 依赖引入

java 复制代码
  <dependency>
       <groupId>org.springframework.ai</groupId>
       <artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
       <version>1.0.0-M6</version>
  </dependency>

2. 添加配置

java 复制代码
spring.ai.ollama.base-url=http://localhost:11434

spring.ai.ollama.chat.model=deepseek-r1:14b

3. 调用模型测试

java 复制代码
@SpringBootTest(classes = AIdemoApplication.class)
public class OllamaTestDemo {

    @Autowired
    private OllamaChatModel ollamaChatModel;

    @Test
    public void startOllama() {
        String prompt = "hello";
        System.out.println("开始。。。");
        String callResult = ollamaChatModel.call(prompt);
        System.out.println(callResult);
    }
}

4. 测试结果

java 复制代码
Hello! How can I assist you today?

5. 在测试一个问题

java 复制代码
@SpringBootTest(classes = AIdemoApplication.class)
public class OllamaTestDemo {

    @Autowired
    private OllamaChatModel ollamaChatModel;

    @Test
    public void startOllama() {
        String prompt = "请将下面的文字翻译成英文:";
        String message = "今天天气真好。";
        System.out.println("开始。。。");
        String callResult = ollamaChatModel.call(prompt + " " + message);
        System.out.println(callResult);
    }
}

五、总结

Spring AI作为Spring生态系统中的一个重要组成部分,专注于提供人工智能相关的服务和支持,为开发者提供了便捷的开发环境和丰富的功能接口。而Ollama工具则以其强大的大型语言模型(LLMs)支持能力而著称,使得用户能够在本地环境中轻松运行各种LLMs,并享受其带来的高效和安全性。

相关推荐
青松@FasterAI3 分钟前
【程序员 NLP 入门】词嵌入 - 上下文中的窗口大小是什么意思? (★小白必会版★)
人工智能·自然语言处理
ai大佬6 分钟前
Java 开发玩转 MCP:从 Claude 自动化到 Spring AI Alibaba 生态整合
java·spring·自动化·api中转·apikey
AIGC大时代18 分钟前
高效使用DeepSeek对“情境+ 对象 +问题“型课题进行开题!
数据库·人工智能·算法·aigc·智能写作·deepseek
硅谷秋水19 分钟前
GAIA-2:用于自动驾驶的可控多视图生成世界模型
人工智能·机器学习·自动驾驶
多巴胺与内啡肽.22 分钟前
深度学习--自然语言处理统计语言与神经语言模型
深度学习·语言模型·自然语言处理
偶尔微微一笑31 分钟前
AI网络渗透kali应用(gptshell)
linux·人工智能·python·自然语言处理·编辑器
深度之眼1 小时前
2025时间序列都有哪些创新点可做——总结篇
人工智能·深度学习·机器学习·时间序列
晓数1 小时前
【硬核干货】JetBrains AI Assistant 干货笔记
人工智能·笔记·jetbrains·ai assistant
jndingxin1 小时前
OpenCV 图形API(60)颜色空间转换-----将图像从 YUV 色彩空间转换为 RGB 色彩空间函数YUV2RGB()
人工智能·opencv·计算机视觉
Sherlock Ma1 小时前
PDFMathTranslate:基于LLM的PDF文档翻译及双语对照的工具【使用教程】
人工智能·pytorch·语言模型·pdf·大模型·机器翻译·deepseek