当前位置: 首页 > news >正文

深入浅出:Spring AI 集成 DeepSeek 构建智能应用

Spring AI 作为 Java 生态中备受瞩目的 AI 应用开发框架,凭借其简洁的 API 设计和强大的功能,为开发者提供了构建智能应用的强大工具。与此同时,DeepSeek 作为领先的 AI 模型服务提供商,在自然语言处理、计算机视觉等领域展现了卓越的性能。本文将带你探索如何将 Spring AI 与 DeepSeek 无缝集成,体验其便捷的开发流程与高效的智能能力,助你快速构建功能强大的 AI 驱动应用。

1 创建项目

在这里插入图片描述

注意: Spring AI 需要 Java 17 或更高版本

在这里插入图片描述

Spring AI通过现有的OpenAI客户端与DeepSeek AI集成,所以选择OpenAI依赖包.

在这里插入图片描述
Maven 依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.4.3</version>
        <relativePath/> <!-- lookup parent from repository -->
    </parent>
    <groupId>cn.hengzq</groupId>
    <artifactId>spring-ai-deepseek-example-001</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <name>spring-ai-deepseek-example-001</name>
    <description>spring-ai-deepseek-example-001</description>
    <properties>
        <java.version>17</java.version>
        <spring-ai.version>1.0.0-M6</spring-ai.version>
    </properties>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.ai</groupId>
            <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </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>

    <build>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
            </plugin>
        </plugins>
    </build>

</project>

配置DeepSeek

spring:
  application:
    name: spring-ai-deepseek-example-001
  ai:
    openai:
      api-key: sk-e3b91498acca434a909ffa1115823937
      base-url: https://api.deepseek.com
      chat:
        options:
          model: deepseek-chat

获取DeepSeek API-KEY,请参考DeepSeek官网「获取DeepSeek API-KEY」
在这里插入图片描述

2 对话模型(Chat Model)

@RestController
@RequestMapping("/chat")
public class ChatController {

    private final ChatModel chatModel;

    public ChatController(ChatModel chatModel) {
        this.chatModel = chatModel;
    }

    @GetMapping("/conversation")
    public String conversation(@RequestParam("message") String message) {
        return chatModel.call(message);
    }

}

调用http://localhost:8080/chat/conversation?message=自我介绍一下

在这里插入图片描述

项目源码地址: spring-ai-deepseek-example-001

3 Orange 开源AI项目在线体验

  • Orange 官网: http://hengzq.cn
  • 在线体验: http://tiny.hengzq.cn
  • 项目文档: http://hengzq.cn/orange-monomer/
  • 单体架构-后端源码下载【GitHub】: https://github.com/hengzq/orange-monomer
  • 单体架构-后端源码下载【Gitee】: https://gitee.com/hengzq/orange-monomer
  • 微服务版本-后端源码下载【GitHub】: https://github.com/hengzq/orange-cloud
  • 微服务版本-后端源码下载【Gitee】: https://gitee.com/hengzq/orange-cloud
  • 前端源码下载【GitHub】: https://github.com/hengzq/orange-cloud
  • 前端源码下载【Gitee】: https://gitee.com/hengzq/orange-cloud

注:前端项目设计灵活,能够同时兼容后端的单体架构和微服务架构

相关文章:

  • 游戏加速器核心引擎解析:从技术原理到实现思路
  • Java Stream 流笔记
  • Lucene硬核解析专题系列(二):索引构建的底层实现
  • Vue3 组件深度解析
  • 使用 Milvus 与 Ollama 进行文本向量存储与检索
  • 树莓派安装ros docker
  • JavaWeb个人笔记
  • 【Rust中级教程】2.13. 结语(杂谈):我学习Rust的心路历程
  • 双Token机制(Access Token + Refresh Token)安全高效
  • Transformer 代码剖析1 - 数据处理 (pytorch实现)
  • Java类中的this操作
  • C#开发——日期操作类DateTime
  • 补题蓝桥杯14届JavaB组第4题
  • SQL Server 数据库迁移到 MySQL 的完整指南
  • Qwen2.5-VL技术报告:多模态大模型的新SOTA!视觉理解能力全面超越GPT-4o
  • Linux:Shell环境变量与命令行参数
  • CAS和AQS---java
  • “你使用的是不受支持的命令行标志:--no-sandbox。这会带来稳定性和安全风险。”提示解决方法
  • Spring的MutipartFile 会直接将流转成文件存放在临时目录嘛?
  • MySQL表约束的种类与应用
  • 高端网站设计思路/天津seo顾问
  • 外贸电商做俄罗斯市场网站/竞价推广工作内容
  • 智通人才网招聘信息/信息流优化师培训
  • 做公司网站应准备什么材料/游戏优化是什么意思?
  • 什么是网络营网络营销的特点/seo网站推广的主要目的是什么
  • 南京哪个网站建设比较好/百度seo网站