LangChain4j从入门到精通-1-langchain简介
LangChain4j项目使用,langchian4j入门,LangChain4j入门到精通
·
介绍
LangChain4j项目的目标是简化将大型语言模型的交互,集成到Java应用程序中
使用方法如下:
- 统一 APIs:
LLM提供商(如OpenAI或Google Vertex AI)和嵌入(向量)存储(如Pinecone或Milvus)都有自身专有API。LangChain4j框架提供了一个统一的API,避免了开发者单独学习使用每一个框架的API。
当开发人员要尝试不同的LLM或嵌入存储时,开发人员可以轻松切换它们,而无需重写代码。与这些单方框架的交互细节由LangChain4j框架内部实现。
LangChain4j目前支持20多家主流LLM提供商(
amazon-bedrock,anthropic,azure-open-ai,chatglm,阿里千问,github-models,google-ai-gemini,google-vertex-ai-anthropic,google-vertex-ai-gemini,gpullama3-java,hugging-face,jlama,local-ai,mistral-ai,oci-genai,ollama,open-ai,open-ai-official,openai-compatible,百度千帆,watsonx,workers-ai,xinference,智普ai)和30多个嵌入存储服务(alloydb,astra-db,azure-ai-search,azure-cosmos-mongo-vcore,azure-cosmos-nosql,cassandra,chroma,clickhouse,cloud-sql,coherence,couchbase,duckdb,elasticsearch,index,infinispan,jvector,mariadb,milvus,mongodb-atlas,neo4j,oceanbase,opensearch,oracle,pgvector,pinecone,qdrant,redis,sqlserver,tablestore,vearch,vespa,weaviate,yugabytedb) - 全面的 工具箱:
自2023年初以来,社区已构建了大量基于LLM的应用程序,识别常见的抽象概念、模式和技术实现。LangChain4j 已将这些提炼成一个开箱即用软件包。
我们的工具箱包含从提示模板、聊天记忆管理到函数调用等一系列工具到高级模式,如高级别代理和RAG。对于每个抽象概念,我们都提供了一个接口以及基于常见技术的多种开箱即用实现。无论您是在构建聊天机器人,还是开发一个包含从数据摄取到检索完整流程的RAG系统,LangChain4j都能提供丰富多样的选择。 - 众多例子:
examples 展示如何开始创建各种基于大语言模型(LLM)的应用程序。 提供软件开发灵感并让您能够快速上手开发。
LangChain4j的开发始于2023年初,正值ChatGPT热潮之际。 我们注意到当时缺乏与众多Python和JavaScript大语言模型库及框架相对应的Java版本, 因此我们决定填补这一空白!
虽然我们的名字里有“LangChain”,但这个项目融合了来自LangChain、Haystack、LlamaIndex以及更广泛社区的理念和概念,并加入了一点我们自己的创新元素。我们积极关注社区动态,旨在快速融入新技术和集成方案,确保您始终掌握最新进展。
该库正在积极开发中。虽然部分功能仍在完善, 但核心功能已经就绪,您现在就可以开始构建基于LLM的应用程序了!
为了便于集成,LangChain4j 还提供了与Quarkus 、Spring Boot、Helidon、Micronaut框架集成方案。
Quarkus, Spring Boot, Helidon and Micronaut
LangChain4j 特征
- 集成 20+ LLM providers
- 集成 30+ embedding (vector) stores
- 集成 20+ embedding models
- 集成 5+ chat memory stores
- 集成 5+ image generation models
- 集成 5+ scoring (re-ranking) models
- 与一个聊天模型的集成(OpenAI)
- 支持文本和图像作为输入(多模态)
- AI Services (高级LLM API)
- Agents and Agentic AI
- 提示模板
- 持久化和内存中实现 chat memory 算法:消息窗口和令牌窗口
- Streaming of responses from LLMs
- 常见Java类型和自定义POJO的输出解析器
- Tools (function calling)
- 动态工具(执行动态生成的LLM代码)
- RAG (Retrieval-Augmented-Generation):
- Ingestion:
- 从多个来源(文件系统、URL、GitHub、Azure Blob存储、Amazon S3等)导入各类文档(TXT、PDF、DOC、PPT、XLS等)
- 使用多种分割算法将文档分割成更小的片段
- 文档和段落的后期处理
- 使用嵌入模型嵌入片段
- 将嵌入存储在嵌入(向量)数据库
- Retrieval (simple and advanced):
- 查询转换(扩展、压缩)
- 查询路由
- 从向量存储和/或任何自定义源中检索
- 重排序
- 互惠排名融合
- RAG流程中每个步骤的定制化
- Ingestion:
- 文本分类
- 用于分词和标记计数的工具
- Kotlin Extensions: 利用Kotlin协程能力实现聊天交互的异步非阻塞处理。
两层抽象
LangChain4j在两个抽象层次上运行:
- 低级别。在这个级别上,您拥有最大的自由度,可以访问所有低级组件,例如
ChatModel,UserMessage,AiMessage,EmbeddingStore,Embedding, 等等.
这些是您基于LLM的应用程序的“基础构件”。 您可以完全控制如何组合它们,但需要编写更多的粘合代码。 - 高级别。在这个级别,您可以通过高级API(如)与LLM进行交互 AI Services,
它隐藏了所有的复杂性和样板代码, 同时保留了灵活调整和微调行为的空间,但这一切都以声明式的方式完成。

LangChain4j 类库结构
LangChain4j采用模块化设计,包含:
- langchain4j-core模块,定义了核心抽象概念(如ChatModel和EmbeddingStore)及其API。
- 主要的 langchain4j模块,包含有用的工具,如文档加载器、聊天记忆实现以及高级功能,如 AI 服务。
- 一系列langchain4j-{integration}模块,每个模块都提供了与不同LLM提供商和嵌入存储的集成,以便与LangChain4j结合使用。
你可以独立使用 langchain4j-{integration}模块。如需更多功能,只需导入主依赖项 langchain4j。
LangChain4j 仓库
LangChain4j 交流群

更多推荐
所有评论(0)