Quarkus LangChain4j:将大语言模型无缝集成到Quarkus应用中
在人工智能快速发展的今天,大语言模型(LLMs)正在重塑软件开发的方式,改变着我们与应用程序交互以及构建业务逻辑的方式。Quarkus LangChain4j扩展应运而生,它为Quarkus开发者提供了一种简单而强大的方式来集成和利用LLMs的能力。
什么是Quarkus LangChain4j?
Quarkus LangChain4j是一个Quarkus扩展,它基于LangChain4j库构建,旨在简化LLMs在Quarkus应用中的集成过程。这个扩展提供了一种声明式的方法来与各种LLMs(如OpenAI、Hugging Face或Ollama)进行交互,同时还支持在Quarkus应用中调用LLM函数并加载文档到LLM的"上下文"中。
主要特性
Quarkus LangChain4j提供了一系列强大的功能:
-
声明式AI服务: 通过简单的注解就能定义和使用AI服务。
-
多种LLM集成: 支持OpenAI GPTs、Hugging Face、Ollama等多种大语言模型。
-
工具支持: 允许LLM调用应用中定义的方法来执行特定任务。
-
嵌入支持: 提供文本嵌入功能,用于语义搜索和相似度计算。
-
文档存储集成: 支持Redis、Chroma、Infinispan等多种文档存储方案。
-
原生编译支持: 完全兼容GraalVM原生镜像编译。
-
可观察性集成: 与Quarkus的可观察性堆栈(如指标、追踪)无缝集成。
-
可插拔的认证提供者: 灵活的认证机制支持。
快速开始
要在你的Quarkus项目中使用Quarkus LangChain4j,只需添加以下Maven依赖:
<dependency>
<groupId>io.quarkiverse.langchain4j</groupId>
<artifactId>quarkus-langchain4j-openai</artifactId>
<version>0.17.2</version>
</dependency>
然后在application.properties
文件中添加你的OpenAI API密钥:
quarkus.langchain4j.openai.api-key=sk-...
现在,你就可以创建一个AI服务接口来与LLM交互了:
@RegisterAiService
public interface MyAiService {
@SystemMessage("You are a professional poet")
@UserMessage("""
Write a poem about {topic}. The poem should be {lines} lines long.
"""
String writeAPoem(String topic, int lines);
}
深入了解
工具支持
Quarkus LangChain4j允许你定义"工具",这些工具是LLM可以调用的方法。例如:
@ApplicationScoped
public class CustomerRepository implements PanacheRepository<Customer> {
@Tool("get the customer name for the given customerId")
public String getCustomerName(long id) {
return find("id", id).firstResult().name;
}
}
文档存储
为了扩展LLM的知识,你可以使用文档存储。这种方法被称为检索增强生成(RAG):
@ApplicationScoped
public class RetrieverExample implements Retriever<TextSegment> {
private final EmbeddingStoreRetriever retriever;
RetrieverExample(RedisEmbeddingStore store, EmbeddingModel model) {
retriever = EmbeddingStoreRetriever.from(store, model, 20);
}
@Override
public List<TextSegment> findRelevant(String s) {
return retriever.findRelevant(s);
}
}
优势
与直接使用LangChain4j库相比,Quarkus LangChain4j扩展提供了许多优势:
- 与Quarkus编程模型的无缝集成
- 内置的可观察性
- 构建时装配
- 利用Quarkus运行时组件
- 开发服务支持
- 开发UI功能
- 自动聊天内存管理
结语
Quarkus LangChain4j为Quarkus开发者打开了一扇通向AI驱动应用的大门。无论是构建智能聊天机器人、自动文档分类系统,还是个性化推荐引擎,这个扩展都能为你提供强大的支持。随着AI技术的不断发展,Quarkus LangChain4j也将持续演进,为开发者提供更多可能性。
如果你对探索AI驱动的Quarkus应用感兴趣,不妨从今天开始尝试Quarkus LangChain4j。相信它能为你的项目带来全新的视角和无限可能。
要了解更多信息,请访问Quarkus LangChain4j文档或查看GitHub仓库。让我们一起拥抱AI时代,用Quarkus构建更智能的应用吧!🚀🤖