LangChain4j正式发布-简化将 LLM 集成到 Java 应用程序过程

LangChain4j 的目标是简化将 LLM 集成到 Java 应用程序中的过程。

官网地址

源码地址

开源协议:Apache License 2.0

实现方法

  • 统一 API:LLM 提供程序(如 OpenAI 或 Google Vertex AI)和嵌入(矢量)存储(如 Pinecone 或 Milvus)使用专有 API。LangChain4j 提供了一个统一的 API,以避免为每个 API 学习和实现特定的 API。要试验不同的 LLM 或嵌入存储,您可以轻松地在它们之间切换,而无需重写代码。LangChain4j 目前支持 15+ 个流行的 LLMproviders 和 20+ 个 embedding store。
  • Comprehensive Toolbox:自 2023 年初以来,社区一直在构建许多 LLM 驱动的应用程序,识别常见的抽象、模式和技术。LangChain4j 已将这些优化为现成的包。我们的工具箱包括从低级提示模板、聊天内存管理和函数调用到 Agent 和 RAG 等高级模式的工具。对于每个抽象,我们提供了一个接口以及多个基于通用技术的即用型实现。无论您是构建聊天机器人还是开发具有从数据摄取到检索的完整管道的 RAG,LangChain4j 都提供了多种选择。
  • 大量示例:这些示例展示了如何开始创建各种 LLM 驱动的应用程序,提供灵感并使您能够快速开始构建。

LangChain4j 于 2023 年初在 ChatGPT 的炒作中开始开发。我们注意到许多 Python 和 JavaScript LLM 库和框架缺乏 Java 对应项,我们必须解决这个问题!虽然我们的名字里有“LangChain”,但这个项目融合了来自 LangChain、Haystack、LlamaIndex 和更广泛社区的想法和概念,并融入了我

### Quarkus与LangChain4j集成及使用案例 Quarkus 是一种专为 Java 开发者设计的 Kubernetes 原生框架,能够优化基于 JVM 的应用性能并支持云原生开发环境。而 LangChain4j 则是用于简化大型语言模型 (LLM) 和 Java 应用程序之间集成的一个框架[^2]。 对于希望将这两项技术结合起来使用的开发者来说,可以考虑以下几个方面: #### 配置依赖关系 为了使 Quarkus 项目能顺利引入 LangChain4j 功能,在 `pom.xml` 文件中添加相应的 Maven 依赖项是非常重要的一步。这通常涉及到指定版本号以及任何必要的仓库地址来获取最新的库文件。 ```xml <dependency> <groupId>com.langchain4j</groupId> <artifactId>langchain4j-core</artifactId> <version>${langchain4j.version}</version> </dependency> ``` #### 初始化ChatLanguageModel实例 鉴于未来的新特性会围绕 ChatLanguageModel API 展开工作而不是传统的 LanguageModel 接口[^3],因此建议创建一个专门的服务类或者配置类来进行初始化操作,并通过 CDI 或其他方式将其注入到业务逻辑层当中去。 ```java import com.langchain4j.chat.ChatLanguageModel; import jakarta.enterprise.context.ApplicationScoped; @ApplicationScoped public class LLMService { private final ChatLanguageModel chatModel; public LLMService() { this.chatModel = new ChatLanguageModel.Builder() .setApiKey(System.getenv("API_KEY")) .build(); } // 提供对外访问的方法... } ``` #### 构建RESTful接口 利用 Quarkus 自带的强大 RESTEasy 支持,很容易就可以构建起一套完整的 HTTP 请求处理机制。这样不仅可以让前端更容易地调用后端服务,同时也方便后续扩展更多功能模块。 ```java import org.eclipse.microprofile.rest.client.inject.RestClient; import javax.ws.rs.GET; import javax.ws.rs.Path; import javax.ws.rs.Produces; import javax.ws.rs.core.MediaType; @Path("/api/llm") @Produces(MediaType.APPLICATION_JSON) public class LLMApiResource { @Inject LLMService llmService; @GET @Path("/query/{text}") public String query(@PathParam("text") String text){ return llmService.query(text); } } ``` 上述代码片段展示了如何在一个典型的 Quarkus 应用程序里实现与 LangChain4j 的基本交互模式。当然实际应用场景可能会更加复杂多变,具体实现细节还需要根据项目的特殊需求做适当调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值