接上一篇继续,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,实现真正的动态化接入:
image
image
这一特性极大提升了系统扩展性与租户隔离能力(注:截至当前,spring-ai 1.0版本尚未支持此类动态配置)
示例代码地址:https://www.php.cn/link/7fa66f426416d30c0c885937fed3c9d1
以上就是longchain4j 学习系列(2)-调用远程deepseek的详细内容,更多请关注php中文网其它相关文章!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号