springboot集成langchain4j接入open AI和deepseek

06-01 1378阅读

LangChain4j介绍

官网:https://docs.langchain4j.info

  • 统一 API: LLM 提供商(如 OpenAI 或 Google Vertex AI)和嵌入(向量)存储(如 Pinecone 或 Milvus) 使用专有 API。LangChain4j 提供统一的 API,避免了学习和实现每个特定 API 的需求。 要尝试不同的 LLM 或嵌入存储,您可以在它们之间轻松切换,无需重写代码。 LangChain4j 目前支持 15+ 个流行的 LLM 提供商 和 20+ 个嵌入存储。
  • 全面的工具箱: 自 2023 年初以来,社区一直在构建众多 LLM 驱动的应用程序, 识别常见的抽象、模式和技术。LangChain4j 将这些提炼成一个即用型包。 我们的工具箱包含从低级提示模板、聊天记忆管理和函数调用 到高级模式如代理和 RAG 的工具。 对于每个抽象,我们提供一个接口以及基于常见技术的多个即用型实现。 无论您是在构建聊天机器人还是开发包含从数据摄取到检索完整管道的 RAG, LangChain4j 都提供多种选择。
  • LangChain4j与 Spring AI 的对比
    Spring AlLangChain4j
    强依赖 Spring 生态无框架依赖,可独立使用
    SpringBoot应用快速接入单模型多模型(动态模型)平台

    快速开始

    1. IDEA新建一个springboot项目,使用Spring lnitializr快速构建。

      springboot集成langchain4j接入open AI和deepseek

    2. maven项目在pom文件中引入LangChain4j的核心依赖与要接入的大模型依赖

        
            1.0.0-beta3
        
        
               
               
                   dev.langchain4j
                   langchain4j
                   {langchain4j.version}
               
               
               
                   dev.langchain4j
                   langchain4j-open-ai
                   {langchain4j.version}
               
       
    
    1. 在test包下新建一个测试类TestChat

      springboot集成langchain4j接入open AI和deepseek

    2. 写一个测试用例,如果有OpenAI API 密钥。 建议将 API 密钥存储在环境变量中。这里演示,用langchain4j的demo密钥。
    package com.kizzo.langchain4j_demos;
    import dev.langchain4j.model.openai.OpenAiChatModel;
    import org.junit.jupiter.api.Test;
    public class TestChat {
        @Test
         void testChat(){
            OpenAiChatModel model = OpenAiChatModel.builder()
                    .baseUrl("http://langchain4j.dev/demo/openai/v1")
                    .apiKey("demo")
                    .modelName("gpt-4o-mini")
                    .build();
            String answer = model.chat("Say 'Hello World'");
            System.out.println(answer); // Hello World
            String answer2 = model.chat("你好你是谁?");
            System.out.println(answer2); // Hello World
        }
    }
    

    运行结果如图

    springboot集成langchain4j接入open AI和deepseek

    1. 接入deepseek,首先需要在deepseek控制台创建一个API-Keys

      springboot集成langchain4j接入open AI和deepseek

      因为deepseek接口标准与open-ai是同一套,所以chatmodel不需要更换。

        @Test
         void testDeepseekChat(){
            OpenAiChatModel model = OpenAiChatModel.builder()
                    .baseUrl("https://api.deepseek.com")
                    .apiKey(ApiKeys.DEEPSEEK_API_KEY)
                    .modelName("deepseek-chat")
                    .build();
            String answer2 = model.chat("你好你是谁?");
            System.out.println(answer2);
        }
    

    运行结果如图

    springboot集成langchain4j接入open AI和deepseek

    1. 接入Qwen,首先需要在阿里百炼控制台创建一个API-Keys

      springboot集成langchain4j接入open AI和deepseek

    这里pom需要引入新依赖

            
            
                dev.langchain4j
                langchain4j-community-dashscope
                ${langchain4j.version}
            
    

    新增一个测试用例

        @Test
         void testQwenChat(){
            QwenChatModel model = QwenChatModel.builder()
                    .apiKey(ApiKeys.QWEN_API_KEY)
                    .modelName("qwen-plus")
                    .build();
            String answer = model.chat("你好你是谁?");
            System.out.println(answer);
    

    运行结果报错

    com.alibaba.dashscope.exception.ApiException: {“statusCode”:403,“message”:“Model access denied.”,“code”:“Model.AccessDenied”,“isJson”:true,“requestId”:“c6930245-746d-96bf-9eea-f05a03ef67d4”}

    ; status body:{“statusCode”:403,“message”:“Model access denied.”,“code”:“Model.AccessDenied”,“isJson”:true,“requestId”:“c6930245-746d-96bf-9eea-f05a03ef67d4”}

    springboot集成langchain4j接入open AI和deepseek

    解决方法:

    查看官网错误码(https://help.aliyun.com/zh/model-studio/error-code)

    springboot集成langchain4j接入open AI和deepseek

    发现新建的业务空间没有授权对应的模型,而默认的业务空间是授权的,测试的业务空间授权即可。

    springboot集成langchain4j接入open AI和deepseek

    运行结果如图

    springboot集成langchain4j接入open AI和deepseek

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

目录[+]

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