LangChain4j (3):集成 DeepSeek 大模型的Java程序

本文详细介绍如何使用 LangChain4j 调用 DeepSeek 大模型

一、获取DeepSeek权限

要获取 DeepSeek 大模型的访问权限,我们需要在 DeepSeek 官方平台获取 token,地址为:DeepSeek 。这个 token 就像是一把钥匙,用于开启与 DeepSeek 大模型的交互通道。

二、代码实现

在 Java 代码中,借助 LangChain4j 来调用 DeepSeek 大模型,我们可以编写如下代码:

import dev.langchain4j.model.chat.ChatLanguageModel;
import dev.langchain4j.model.openai.OpenAiChatModel;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ChatLanguageModelController {
    @GetMapping("/chatmodel")
    public String modelChat(@RequestParam(value = "message", defaultValue = "Hello") String message) {
        ChatLanguageModel model = OpenAiChatModel.builder()
               .apiKey("XXXXXXXXXXXXXXXX")
               .baseUrl("https://api.deepseek.com/v1")
               .modelName("deepseek-chat")
               .build();
        String result = model.chat(message);
        System.out.println("end - result = " + result);
        return result;
    }
}

在上述代码中,我们创建了一个 Spring Boot 的控制器ChatLanguageModelController,定义了一个modelChat方法来处理/chatmodel的 GET 请求。在方法内部,通过OpenAiChatModel.builder()构建一个聊天模型实例。

虽然使用的是OpenAiChatModel构建器,但通过设置baseUrl为 DeepSeek 的 API 地址https://api.deepseek.com/v1,并指定modelNamedeepseek - chat,我们实际上是在配置与 DeepSeek 大模型的交互。将从 DeepSeek 官方平台获取的 token 填入apiKey处。然后向模型发送问题,并将返回的结果打印输出并返回。

三、遇到的问题及解决

当我们尝试调用 DeepSeek 大模型时,遇到了如下错误提示:

{"message":"Insufficient Balance","type":"unknown_error","param":null,"code":"invalid_request_error"}

这提示账户余额不足,无法正常调用模型。解决办法是前往 DeepSeek 官方平台的充值页面进行充值,在deep官方平台充值https://platform.deepseek.com/usage

在完成充值后,再次调用模型,就能够成功得到输出结果。

### 如何使用 LangChain4j 调用 DeepSeek 大模型 #### 1. 注册火山引擎账号并获取 API Key 为了调用火山引擎上的 DeepSeek 模型,首先需要注册火山引擎账号,并完成身份认证流程。登录后进入控制台页面,找到 **API 管理** 或者类似的选项,生成专属的 API Key[^2]。 #### 2. 添加 Maven 依赖配置 LangChain4j 是 Java 版本的 LangChain 框架,支持多种大语言模型的集成。在项目中引入 LangChain4j 和相关依赖项时,需编辑 `pom.xml` 文件,添加如下内容: ```xml <dependencies> <!-- LangChain4j Core --> <dependency> <groupId>com.langchain4j</groupId> <artifactId>langchain4j-core</artifactId> <version>0.9.0</version> </dependency> <!-- Volcano Engine DeepSeek Integration --> <dependency> <groupId>com.volcengine</groupId> <artifactId>volc-sdk-java</artifactId> <version>1.7.0</version> </dependency> </dependencies> ``` 上述代码片段展示了如何通过 Maven 构建工具来管理项目的依赖关系。 #### 3. 初始化 DeepSeek 模型对象 加载 DeepSeek 的具体实现可以通过 LangChain4j 提供的标准接口完成。以下是初始化模型的一个简单例子: ```java import com.langchain4j.llm.VolcanoEngineDeepSeek; import com.langchain4j.LLM; public class Main { public static void main(String[] args) { String apiKey = "your-volcano-engine-api-key"; // 替换为实际的 API 密钥 LLM model = new VolcanoEngineDeepSeek(apiKey); System.out.println(model.generate("你好,世界")); } } ``` 此部分实现了对 DeepSeek 模型的基本封装和调用逻辑。 #### 4. 构建本地知识库用于 RAG 应用场景 如果目标是构建检索增强生成 (RAG) 系统,则还需要额外设置一个向量数据库作为存储结构化的文档数据源。可以采用 Milvus 或 Pinecone 这样的第三方服务,或者利用 Hugging Face Datasets 工具集预处理自有资料集合。 假设已经准备好了一个小型的知识库文件夹路径 `/path/to/knowledgebase/` ,那么可以用下面的方式将其嵌入到工作流里: ```java import com.langchain4j.retriever.VectorStoreRetriever; import com.langchain4j.vectorstore.MilvusVectorStore; // 创建向量存储实例 MilvusVectorStore vectorStore = new MilvusVectorStore( "localhost", 19530, "default" ); // 加载已有索引或新建索引 vectorStore.load("/path/to/index"); // 设置检索器参数 VectorStoreRetriever retriever = new VectorStoreRetriever(vectorStore, 5); // 返回前五个最相似的结果 ``` 以上代码说明了如何连接至 Milvus 向量数据库,并定义好查询返回条目的数量限制。 #### 5. 执行完整的 RAG 流程 最后一步就是把前面提到的所有组件串联起来形成闭环的应用程序架构。当接收到用户的提问请求之后,先经过检索阶段找出关联度最高的几篇参考资料摘要;再把这些上下文信息传递给大型语言模型去综合分析作答即可得到最终回复结果。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值