登录
首页 >  文章 >  软件教程

LongChain4j调用DeepSeek教程详解

时间:2025-11-11 16:36:37 419浏览 收藏

本文是LongChain4j教程的续篇,重点讲解如何利用LongChain4j框架调用远程DeepSeek大模型。LongChain4j凭借其对OpenAI兼容模型的广泛支持,轻松集成DeepSeek等主流大模型。文章详细介绍了配置步骤,包括更新pom.xml依赖、配置DeepSeek模型Bean实例(如ChatModel和StreamingChatModel),以及在application.yml中设置DeepSeek相关参数,如API Key、Base URL等。此外,还深入解析了LongChain4j的核心优势,尤其是在多租户场景下动态传入API Key并创建模型实例的能力,这极大地提升了系统扩展性与租户隔离能力。通过本文,开发者可以掌握如何使用LongChain4j快速、灵活地接入DeepSeek大模型,并充分利用其动态配置的优势。示例代码已上传至GitHub,供读者参考学习。

接上一篇继续,longchain4j支持open-ai兼容的各类模型,涵盖deepseek等主流大模型。

一、更新pom.xml依赖

1 2 <dependency>3     <groupid>dev.langchain4j</groupid>4     <artifactid>langchain4j-open-ai</artifactid>5     <version>${longchain4j.version}</version>6 </dependency>

二、配置Bean实例注入

 1 package com.cnblogs.yjmyzz.longchain4j.study.config; 2  3 import dev.langchain4j.model.chat.ChatModel; 4 import dev.langchain4j.model.chat.StreamingChatModel; 5 import dev.langchain4j.model.openai.OpenAiChatModel; 6 import dev.langchain4j.model.openai.OpenAiStreamingChatModel; 7 import org.springframework.beans.factory.annotation.Value; 8 import org.springframework.context.annotation.Bean; 9 import org.springframework.context.annotation.Configuration;10 11 import java.time.Duration;12 13 /**14  * DeepSeek配置类15  * 实现LongChain4j与DeepSeek模型的对接配置16  *17  * @author 菩提树下的杨过18  * @version 1.0.019  */20 @Configuration21 public class DeepSeekConfig {22 23     @Value("${deepseek.api-key:your-deepseek-api-key-here}")24     private String apiKey;25 26     @Value("${deepseek.base-url:https://api.deepseek.com}")27     private String baseUrl;28 29     @Value("${deepseek.model:deepseek-chat}")30     private String model;31 32     @Value("${deepseek.timeout:60}")33     private Integer timeoutSeconds;34 35     @Value("${deepseek.temperature:0.7}")36     private Double temperature;37 38     @Value("${deepseek.max-tokens:2048}")39     private Integer maxTokens;40 41     /**42      * 构建DeepSeek聊天模型实例43      *44      * @return 返回ChatModel对象45      */46     @Bean47     public ChatModel chatModel() {48         return OpenAiChatModel.builder()49                 .apiKey(apiKey)50                 .baseUrl(baseUrl)51                 .modelName(model)52                 .temperature(temperature)53                 .maxTokens(maxTokens)54                 .timeout(Duration.ofSeconds(timeoutSeconds))55                 .logRequests(true)56                 .logResponses(true)57                 .build();58     }59 60     /**61      * 创建流式响应的聊天模型62      *63      * @return 返回StreamingChatModel实例64      */65     @Bean66     public StreamingChatModel streamingChatModel() {67         return OpenAiStreamingChatModel.builder()68                 .apiKey(apiKey)69                 .baseUrl(baseUrl)70                 .modelName(model)71                 .temperature(temperature)72                 .maxTokens(maxTokens)73                 .timeout(Duration.ofSeconds(timeoutSeconds))74                 .logRequests(true)75                 .logResponses(true)76                 .build();77     }78 }

三、application.yml 配置项调整

1 # DeepSeek相关参数设置2 deepseek:3   api-key: ${DEEPSEEK_API_KEY:your-deepseek-api-key-here}4   base-url: https://api.deepseek.com5   model: deepseek-chat6   timeout: 607   temperature: 0.78   max-tokens: 2048

完成以上步骤后,无需修改API Controller层代码即可生效。

四、longchain4j的核心优势解析

设想这样一个业务场景:我们正在开发一个面向多租户的AI服务平台,多个客户均使用DeepSeek模型服务,但各自持有独立的API Key。若仍采用传统的YAML静态配置方式,在应用启动时就初始化所有模型实例,显然缺乏灵活性和安全性。

此时,运行时动态传入apiKey并创建对应模型实例的能力变得至关重要!

值得庆幸的是,longchain4j中的OpenAiChatModelBuilder允许在构建过程中灵活设置apiKey,实现真正的动态化接入:

longchain4j 学习系列(2)-调用远程deepseekimagelongchain4j 学习系列(2)-调用远程deepseekimage

这一特性极大提升了系统扩展性与租户隔离能力(注:截至当前,spring-ai 1.0版本尚未支持此类动态配置)

示例代码地址:https://github.com/yjmyzz/longchain4j-study/tree/day02

到这里,我们也就讲完了《LongChain4j调用DeepSeek教程详解》的内容了。个人认为,基础知识的学习和巩固,是为了更好的将其运用到项目中,欢迎关注golang学习网公众号,带你了解更多关于的知识点!

相关阅读
更多>
最新阅读
更多>
课程推荐
更多>