扫码阅读
手机扫码阅读

Quarkus 开发基于 LangChain4j 的扩展,方便将 LLM 集成到 Quarkus 应用程序中

206 2024-07-04

我们非常重视原创文章,为尊重知识产权并避免潜在的版权问题,我们在此提供文章的摘要供您初步了解。如果您想要查阅更为详尽的内容,访问作者的公众号页面获取完整文章。

在2023年比利时Devoxx大会上,LangChain for Java(LangChain4J)战略顾问和布道师Lize Raes的“Java Meets AI”演讲激发了Quarkus团队开发基于LangChain4J库的扩展。LangChain4J是LangChain库的Java版本,原先用Python或JavaScript实现。这个扩展让开发人员能够将大型语言模型(LLM)集成进Quarkus应用程序。Quarkus LangChain4J的第一个公开版本0.1于2023年11月中旬发布,并计划每周更新,目前已到0.5.1版本。

InfoQ采访了Quarkus项目联合负责人Max Rydahl Andersen,他表示虽然LangChain4J的API仍在变化,处于实验阶段,但开发人员可以尝试在真实项目中使用。Quarkus团队专注于扩展对“开放”模型的支持,特别是那些能在云端或本地运行的模型。Andersen看好LLM在许多企业项目中的应用,并认为该扩展与Quarkus现有功能集相契合,允许开发者声明性地定义LLM集成点,提供可测试性、可观测性和弹性。

Quarkus LangChain扩展保留了与LLM交互的方式,允许开发人员通过自然语言定义任务范围,类似于Quarkus REST Client。例如,通过@RegisterAiService和@UserMessage注解来定义自然语言的服务和任务。

    
      @RegisterAiService
      public interface TriageService {
        // methods.
      }
    
  

LangChain4j扩展提供了工具和文档存储两种机制来扩展LLM的知识。工具允许LLM与父应用程序交互,通过调用REST端点或执行数据库查询。文档存储是一种检索增强生成(RAG)机制,通过解析文档并计算其向量表示来扩展LLM上下文。Quarkus提供了Ingestor和Retriever来简化信息的摄入和查询。

    
      @ApplicationScoped
      public class CustomerRepository implements PanacheRepository {
        @Tool("get the customer name for the given customerId")
        public String getCustomerName(long id) {
          // Implementation.
        }
      }
      // Ingestor and Retriever example code.
    
  

该扩展支持各种存储解决方案和与商业及开源模型(如OpenAI、Hugging Face或Ollama)的交互。Quarkus跟随Spring Framework加入了嵌入AI能力的行列,并得到LangChain4j作者Dmytro Liubarskyi及其团队的支持。随着发展,Quarkus团队正在寻求反馈和想法来改进集成。

想要了解更多内容?

为一线互联网公司核心技术人员提供优质内容。科技圈的观察者,前沿技术的传播者。

98 篇文章
浏览 13.8K
加入社区微信群
与行业大咖零距离交流学习
软件研发质量管理体系建设 白皮书上线