AI创想

标题: LangChain4j [打印本页]

作者: 果断回头love    时间: 2025-9-7 23:40
标题: LangChain4j


文章目录



关于 LangChain4j

LangChain4j的目标是 简化将AI/LLM功能集成到Java应用程序的过程。

教程资源

LangChain4j于2023年初在ChatGPT的火热中开始开发。
我们注意到大量Python和JavaScript LLM库和框架,缺乏Java对应物,我们不得不解决这个问题!
尽管“LangChain”是以我们的名义命名的,但该项目融合了LangChain、Haystack、LlamaIndex和更广泛的社区的想法和概念,并加入了我们自己的创新。
我们积极监控社区发展,旨在快速融入新技术和集成,确保您保持最新状态。
库正在积极开发中。虽然Python版本的LangChain的一些功能仍在开发中,但核心功能已经到位,允许您现在开始构建LLM驱动的应用程序!
为了更容易集成,LangChain4j还包括与Quarkus (extension) 和 Spring Boot (starters) 的集成。

统一 APIs
LLM提供(如OpenAI或Google Vertex AI)和 嵌入(矢量)存储(如Pinecone或Vespa)使用专有API。
LangChain4j提供了一个统一的API,以避免为每个API学习和实现特定的API。
要尝试不同的LLM或嵌入向量数据库,您可以轻松地在它们之间切换,而无需重写代码。
LangChain4j目前支持超过10个流行的LLM 和超过15个向量数据库。
把它想象成一个Hibernate,但用于LLM和嵌入存储。
丰富的 Toolbox
在过去的一年里,社区已经构建了许多LLM驱动的应用程序,确定了常见的模式、抽象和技术。
LangChain4j已经将这些代码细化为实用代码。我们的toolbox 包括从低级提示模板、内存管理和输出解析到高级模式(如Agent和RAG)的各种工具。
对于每个模式和抽象,我们都提供了一个接口以及基于已验证技术的多个现成实现。
无论您是在构建聊天机器人,还是开发具有从数据接收到检索的完整管道的RAG,LangChain4j都提供了多种选择。
很多 Examples
这些 examples 展示了如何开始创建各种LLM支持的应用程序,提供灵感并使您能够快速开始构建。

特性


2 levels of abstraction

LangChain4j在两个抽象级别上运行:



Library Structure

LangChain4j采用模块化设计,包括:

Tutorials (User Guide)

发现鼓舞人心的use cases ,或者跟随我们在 Tutorials 下对LangChain4j功能的逐步介绍, 您将逐步了解LangChain4j的所有功能。所有步骤都通过完整的代码示例和代码解释进行了演示。

Code Examples

Integrations and Models

LangChain4j提供与OpenAI、HuggingFace、谷歌、Azure等模型的现成集成。
它具有适用于所有常见文档类型的文档加载器,并与大量嵌入模型和嵌入存储集成,以促进检索增强生成和人工智能分类。
所有继承都列在 https://docs.langchain4j.dev/category/integrations。

免责声明

请注意,该库正在积极开发中,并且:

Highlights

定义由LLM提供支持的声明性 AI Services:
  1. interfaceAssistant{Stringchat(String userMessage);}Assistant assistant =AiServices.create(Assistant.class, model);String answer = assistant.chat("Hello");System.out.println(answer);// Hello! How can I assist you today?
复制代码

使用 LLM 分类
  1. enumSentiment{POSITIVE,NEUTRAL,NEGATIVE}interfaceSentimentAnalyzer{@UserMessage("Analyze sentiment of {{it}}")SentimentanalyzeSentimentOf(String text);@UserMessage("Does {{it}} have a positive sentiment?")booleanisPositive(String text);}SentimentAnalyzer sentimentAnalyzer =AiServices.create(SentimentAnalyzer.class, model);Sentiment sentiment = sentimentAnalyzer.analyzeSentimentOf("It is good!");// POSITIVEboolean positive = sentimentAnalyzer.isPositive("It is bad!");// false
复制代码

从非结构数据中提取结构化信息
  1. classPerson{privateString firstName;privateString lastName;privateLocalDate birthDate;}interfacePersonExtractor{@UserMessage("Extract information about a person from {{text}}")PersonextractPersonFrom(@V("text")String text);}PersonExtractor extractor =AiServices.create(PersonExtractor.class, model);String text ="In 1968, amidst the fading echoes of Independence Day, "+"a child named John arrived under the calm evening sky. "+"This newborn, bearing the surname Doe, marked the start of a new journey.";Person person = extractor.extractPersonFrom(text);// Person { firstName = "John", lastName = "Doe", birthDate = 1968-07-04 }
复制代码
你也可以提供 LLM 可以使用的工具,可以是任何,如从数据库提取信息,调动 APIs 等。
可见案例:https://github.com/langchain4j/langchain4j-examples/blob/main/other-examples/src/main/java/ServiceWithToolsExample.java

Getting started


兼容性


1、在你的工程 添加 LangChain4j OpenAI 依赖
Maven:
  1. <dependency><groupId>dev.langchain4j</groupId><artifactId>langchain4j-open-ai</artifactId><version>0.30.0</version></dependency>
复制代码

Gradle:
  1. implementation 'dev.langchain4j:langchain4j-open-ai:0.30.0'
复制代码

2、导入 OpenAI API key:
  1. String apiKey =System.getenv("OPENAI_API_KEY");
复制代码
你也可以使用我们提供的免费 API key demo 来测试 OpenAI。
How to get an API key?

3、Create an instance of a model and start interacting:
  1. OpenAiChatModel model =OpenAiChatModel.withApiKey(apiKey);String answer = model.generate("Hello world!");System.out.println(answer);// Hello! How can I assist you today?
复制代码

支持的 LLM 集成

ProviderNative ImageSync CompletionStreaming CompletionEmbeddingImage GenerationScoringFunction Calling
OpenAI✅✅✅✅✅✅
Azure OpenAI✅✅✅✅✅
Hugging Face✅✅
Amazon Bedrock✅✅✅
Google Vertex AI Gemini✅✅✅✅
Google Vertex AI✅✅✅✅
Mistral AI✅✅✅✅
DashScope✅✅✅
LocalAI✅✅✅✅
Ollama✅✅✅
Cohere✅
Qianfan✅✅✅✅
ChatGLM✅
Nomic✅
Anthropic✅✅✅✅
Zhipu AI✅✅✅✅

2024-04-23(二) 大雨




欢迎光临 AI创想 (https://www.llms-ai.com/) Powered by Discuz! X3.4