Spring AI 集成 DeepSeek V3 模型开发指南

06-01 1561阅读

Spring AI 集成 DeepSeek V3 模型开发指南

前言

在人工智能飞速发展的当下,大语言模型不断推陈出新,DeepSeek AI 推出的开源 DeepSeek V3 模型凭借其卓越的推理和问题解决能力备受瞩目。与此同时,Spring AI 作为一个强大的框架,为开发者集成各类 AI 服务提供了便利。本文将深入探讨如何通过 Spring AI 集成 DeepSeek V3 模型,助力开发者快速搭建高效的 AI 应用。

Spring AI 与 DeepSeek 集成要点

1. 准备工作

  • 获取 API 密钥:访问指定平台创建 DeepSeek API 密钥,并通过 spring.ai.openai.api - key 属性进行配置。
  • 设置基 URL:将 spring.ai.openai.base - url 属性设置为 api.deepseek.com,以此确定与 DeepSeek 服务通信的基础地址。
  • 选择模型:利用 spring.ai.openai.chat.options.model = 属性,从支持的模型列表中指定使用的 DeepSeek 模型。例如,若要使用 deepseek - chat 模型,可进行相应配置。同时,可通过环境变量配置,如:
    export SPRING_AI_OPENAI_API_KEY = 
    export SPRING_AI_OPENAI_BASE_URL = https://api.deepseek.com
    export SPRING_AI_OPENAI_CHAT_MODEL = deepseek - chat
    

    2. 添加存储库和 BOM

    • 存储库:Spring AI 工件发布于 Maven Central 和 Spring Snapshot 存储库。开发者需将这些存储库添加到构建系统中,具体操作可参考 Repositories 部分。
    • BOM:为实现依赖项的有效管理,Spring AI 提供了 BOM(物料清单)。通过添加 Spring AI BOM 到构建系统,能够确保项目中 Spring AI 版本的一致性,详细步骤可查阅依赖项管理部分。

      3. 自动配置

      • Spring AI 为 OpenAI Chat 客户端提供了 Spring Boot 自动配置功能。要启用该功能,需在项目的 Maven pom.xml 或 Gradle build.gradle 文件中添加以下依赖项:
            org.springframework.ai
            spring - ai - starter - model - openai
        
        

        同时,别忘了将 Spring AI BOM 添加到构建文件中。

        4. 聊天属性配置

        • 重试属性:以 spring.ai.retry 为前缀的属性,可用于配置 OpenAI 聊天模型的重试机制。例如,spring.ai.retry.max - attempts 用于设置最大重试尝试次数,默认值为 10;spring.ai.retry.backoff.initial - interval 表示指数回退策略的初始休眠持续时间,默认 2 秒等。通过合理配置这些属性,能够增强应用在面对网络波动等异常情况时的稳定性。
        • 连接属性:spring.ai.openai 前缀的属性用于连接到 DeepSeek。其中,spring.ai.openai.base - url 必须设置为 api.deepseek.com,spring.ai.openai.api - key 需配置为申请到的 DeepSeek API 密钥。
        • 配置属性:如今,启用和禁用聊天自动配置通过 spring.ai.model.chat 前缀实现。默认 spring.ai.model.chat = openai 为启用状态,若要禁用可设置为 spring.ai.model.chat = none 或其他非 openai 的值。此外,spring.ai.openai.chat 前缀下还有众多属性,如 spring.ai.openai.chat.options.model 用于指定要使用的 DeepSeek LLM 模型;spring.ai.openai.chat.options.temperature 控制生成完成项的随机性,取值范围影响输出的创造性程度等。

          5. 运行时选项

          • 启动时,可通过 OpenAiChatModel(api, options) 构造函数或 spring.ai.openai.chat.options.* 属性进行模型配置。在运行时,可通过向 Prompt 添加特定于请求的运行时选项。例如,若要覆盖特定请求的默认模型和温度,可按如下方式编写代码:
            ChatResponse response = chatModel.call(
                new Prompt(
                    "Generate the names of 5 famous pirates.",
                    OpenAiChatOptions.builder()
                       .model("deepseek - chat")
                       .temperature(0.4)
                    .build()
                ));
            

            6. 函数调用与限制

            需要注意的是,deepseek - chat 模型的函数调用功能当前版本不稳定,可能出现循环调用或空响应的问题。并且,目前 DeepSeek API 暂不支持媒体内容。

            7. Samples 控制器示例

            创建一个新的 Spring Boot 项目,在 POM(或 Gradle)依赖项中添加 spring - ai - starter - model - openai。然后在 src/main/resources 目录下的 application.properties 文件中进行如下配置:

            spring.ai.openai.api - key = 
            spring.ai.openai.base - url = https://api.deepseek.com
            spring.ai.openai.chat.options.model = deepseek - chat
            spring.ai.openai.chat.options.temperature = 0.7
            # The DeepSeek API doesn't support embeddings, so we need to disable it.
            spring.ai.openai.embedding.enabled = false
            

            将 替换为实际申请到的密钥。通过上述配置,会创建一个 OpenAiChatModel 实现,可将其注入到类中。以下是一个简单的 @Controller 类示例,用于使用聊天模型生成文本:

            @RestController
            public class ChatController {
                private final OpenAiChatModel chatModel;
                @Autowired
                public ChatController(OpenAiChatModel chatModel) {
                    this.chatModel = chatModel;
                }
                @GetMapping("/ai/generate")
                public Map generate(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
                    return Map.of("generation", this.chatModel.call(message));
                }
                @GetMapping("/ai/generateStream")
                public Flux generateStream(@RequestParam(value = "message", defaultValue = "Tell me a joke") String message) {
                    Prompt prompt = new Prompt(new UserMessage(message));
                    return this.chatModel.stream(prompt);
                }
            }
            

            若要查询如何使用本地部署的DeepSeek模型,可以查看文章: 利用ollama.com本地部署大模型及Java验证全攻略

            总结

            通过本文介绍的步骤,开发者能够成功地将 Spring AI 与 DeepSeek V3 模型集成,充分利用 DeepSeek 模型强大的能力来构建智能应用。在集成过程中,要特别注意 API 密钥的安全配置、模型选项的合理调整以及对不稳定功能(如函数调用)的妥善处理。同时,由于 AI 技术和相关框架处于不断发展中,开发者需持续关注官方文档,以便及时获取最新信息,优化应用性能和功能。希望本文能为大家在基于 Spring AI 和 DeepSeek 进行开发的道路上提供有力的指导和帮助,助力大家开发出更具创新性和竞争力的 AI 应用。

            Spring AI 集成 DeepSeek V3 模型开发指南
            (图片来源网络,侵删)
            Spring AI 集成 DeepSeek V3 模型开发指南
            (图片来源网络,侵删)
            Spring AI 集成 DeepSeek V3 模型开发指南
            (图片来源网络,侵删)
免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们。

目录[+]

取消
微信二维码
微信二维码
支付宝二维码