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创想 (http://llms-ai.com/) Powered by Discuz! X3.4