赞
踩
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支持的应用程序,提供灵感并使您能够快速开始构建。
List
、LocalDate
等)和自定义POJO的 输出解析器Lite
代理(OpenAI功能)LangChain4j在两个抽象级别上运行:
ChatLanguageModel
, UserMessage
, AiMessage
, EmbeddingStore
, Embedding
, 等等。AiServices
和 Chain
s, 它对你隐藏了所有的复杂性和样板。LangChain4j采用模块化设计,包括:
langchain4j-core
模块,定义了核心抽象 (比如 ChatLanguageModel
和 EmbeddingStore
) 和他们的 APIs。langchain4j
模块, 包含诸如 ChatMemory
, OutputParser
的工具, 以及高级功能,如 AiServices
.langchain4j-{integration}
模块, 每个提供与各种LLM的集成,并将存储嵌入到LangChain4j中。langchain4j-{integration}
模块。langchain4j
依赖项即可。发现鼓舞人心的use cases ,或者跟随我们在 Tutorials 下对LangChain4j功能的逐步介绍, 您将逐步了解LangChain4j的所有功能。所有步骤都通过完整的代码示例和代码解释进行了演示。
Code Examples
LangChain4j提供与OpenAI、HuggingFace、谷歌、Azure等模型的现成集成。
它具有适用于所有常见文档类型的文档加载器,并与大量嵌入模型和嵌入存储集成,以促进检索增强生成和人工智能分类。
所有继承都列在 https://docs.langchain4j.dev/category/integrations。
请注意,该库正在积极开发中,并且:
AI Services
:interface Assistant {
String chat(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?
enum Sentiment {
POSITIVE, NEUTRAL, NEGATIVE
}
interface SentimentAnalyzer {
@UserMessage("Analyze sentiment of {{it}}")
Sentiment analyzeSentimentOf(String text);
@UserMessage("Does {{it}} have a positive sentiment?")
boolean isPositive(String text);
}
SentimentAnalyzer sentimentAnalyzer = AiServices.create(SentimentAnalyzer.class, model);
Sentiment sentiment = sentimentAnalyzer.analyzeSentimentOf("It is good!"); // POSITIVE
boolean positive = sentimentAnalyzer.isPositive("It is bad!"); // false
class Person {
private String firstName;
private String lastName;
private LocalDate birthDate;
}
interface PersonExtractor {
@UserMessage("Extract information about a person from {{text}}")
Person extractPersonFrom(@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
1、在你的工程 添加 LangChain4j OpenAI 依赖
Maven:
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
<version>0.30.0</version>
</dependency>
Gradle:
implementation 'dev.langchain4j:langchain4j-open-ai:0.30.0'
2、导入 OpenAI API key:
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:
OpenAiChatModel model = OpenAiChatModel.withApiKey(apiKey);
String answer = model.generate("Hello world!");
System.out.println(answer); // Hello! How can I assist you today?
Provider | Native Image | Sync Completion | Streaming Completion | Embedding | Image Generation | Scoring | Function 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(二) 大雨
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。