141 个 LangChain4j Maven 组件分类解析、多场景实战攻略

1. 引言

LangChain4j 是一个强大的 Java 库,旨在简化大型语言模型(LLM)在 Java 应用程序中的集成。它提供了丰富的组件和工具,支持从低级别的原始组件(如 ChatModel、EmbeddingStore)到高级别的 AI 服务(如聊天机器人、文本分类等)。本文基于提供的 txt 文件内容,对 LangChain4j 的 141 个组件进行分类,并详细讲解每个分类下的组件。同时,本文还将介绍多个实际场景,展示如何使用这些组件构建 LLM 驱动的应用程序。

本文分为两部分:

  1. 组件分类:将 141 个组件分为多个类别,每个类别包含描述和详细的组件表格,表头包括 GroupId、ArtifactId 和功能描述。
  2. 多场景实战攻略:介绍多个常见场景,每个场景列出所需组件及其作用。

在这里插入图片描述

2. LangChain4j 组件分类

LangChain4j 的 141 个组件根据其功能和用途分为以下 9 个类别。每个类别包含一个描述和一个表格,列出该类别下的所有组件,包括 GroupId、ArtifactId 和功能描述。

2.1. 核心模块 (Core Modules)

描述: 这些是 LangChain4j 的基础模块,定义了核心抽象(如 ChatModel、EmbeddingStore)和主要功能(如文档加载器、聊天记忆实现)。它们是构建 LLM 应用的基础。

GroupId ArtifactId 功能描述
dev.langchain4j langchain4j 主模块,包含核心功能和文档加载器等
dev.langchain4j langchain4j-core 核心抽象,如 ChatModel、EmbeddingStore 等
dev.langchain4j langchain4j-bom Bill of Materials,用于版本管理
dev.langchain4j langchain4j-test 测试实用工具
dev.langchain4j langchain4j-parent 父 POM,用于管理依赖

2.2. LLM 集成 (LLM Integrations)

描述: 这些模块提供了与各种大型语言模型提供商的集成,允许用户通过统一的 API 使用不同的 LLM,如 OpenAI、Anthropic、Google Gemini 等。

GroupId ArtifactId 功能描述
dev.langchain4j langchain4j-anthropic Anthropic LLM 集成
dev.langchain4j langchain4j-azure-open-ai Azure OpenAI LLM 集成
dev.langchain4j langchain4j-bedrock AWS Bedrock LLM 集成
dev.langchain4j langchain4j-cohere Cohere LLM 集成
dev.langchain4j langchain4j-dashscope DashScope LLM 集成
dev.langchain4j langchain4j-google-ai-gemini Google AI Gemini LLM 集成
dev.langchain4j langchain4j-hugging-face Hugging Face LLM 集成
dev.langchain4j langchain4j-mistral-ai Mistral AI LLM 集成
dev.langchain4j langchain4j-open-ai OpenAI LLM 集成
dev.langchain4j langchain4j-ovh-ai OVH AI LLM 集成
dev.langchain4j langchain4j-vertex-ai Google Vertex AI LLM 集成
dev.langchain4j langchain4j-voyage-ai Voyage AI LLM 集成
dev.langchain4j langchain4j-workers-ai Cloudflare Workers AI LLM 集成
dev.langchain4j langchain4j-zhipu-ai Zhipu AI LLM 集成
dev.langchain4j langchain4j-chatglm ChatGLM LLM 集成
dev.langchain4j langchain4j-github-models GitHub Models LLM 集成
dev.langchain4j langchain4j-jina Jina LLM 集成
dev.langchain4j langchain4j-jlama JLama LLM 集成
dev.langchain4j langchain4j-local-ai Local AI LLM 集成
dev.langchain4j langchain4j-nomic Nomic AI LLM 集成
dev.langchain4j langchain4j-ollama Ollama LLM 集成
dev.langchain4j langchain4j-qianfan Qianfan LLM 集成
dev.langchain4j langchain4j-onnx-scoring ONNX Scoring LLM 集成
dev.langchain4j langchain4j-community-chatglm 社区版 ChatGLM LLM 集成
dev.langchain4j langchain4j-community-dashscope 社区版 DashScope LLM 集成
dev.langchain4j langchain4j-community-qianfan 社区版 Qianfan LLM 集成
dev.langchain4j langchain4j-community-xinference Xinference LLM 集成
dev.langchain4j langchain4j-community-zhipu-ai 社区版 Zhipu AI LLM 集成

2.3. 向量存储集成 (Embedding Store Integrations)

描述: 这些模块提供了与各种向量数据库或嵌入存储的集成,用于存储和检索嵌入向量,支持语义搜索、RAG 等任务。包括主流和社区贡献的存储。

GroupId ArtifactId 功能描述
dev.langchain4j langchain4j-chroma Chroma 向量存储集成
dev.langchain4j langchain4j-elasticsearch Elasticsearch 向量存储集成
dev.langchain4j langchain4j-milvus Milvus 向量存储集成
dev.langchain4j langchain4j-pinecone Pinecone 向量存储集成
dev.langchain4j langchain4j-qdrant Qdrant 向量存储集成
dev.langchain4j langchain4j-redis Redis 向量存储集成
dev.langchain4j langchain4j-weaviate Weaviate 向量存储集成
dev.langchain4j langchain4j-azure-ai-search Azure AI Search 向量存储集成
dev.langchain4j langchain4j-azure-cosmos-mongo-vcore Azure Cosmos DB Mongo vCore 向量存储集成
dev.langchain4j langchain4j-azure-cosmos-nosql Azure Cosmos DB NoSQL 向量存储集成
dev.langchain4j langchain4j-cassandra Cassandra 向量存储集成
dev.langchain4j langchain4j-couchbase Couchbase 向量存储集成
dev.langchain4j langchain4j-infinispan Infinispan 向量存储集成
dev.langchain4j langchain4j-mongodb-atlas MongoDB Atlas 向量存储集成
dev.langchain4j langchain4j-neo4j Neo4j 向量存储集成
dev.langchain4j langchain4j-opensearch OpenSearch 向量存储集成
dev.langchain4j langchain4j-oracle Oracle 向量存储集成
dev.langchain4j langchain4j-pgvector PGVector 向量存储集成
dev.langchain4j langchain4j-tablestore Tablestore 向量存储集成
dev.langchain4j langchain4j-vearch Vearch 向量存储集成
dev.langchain4j langchain4j-vespa Vespa 向量存储集成
dev.langchain4j langchain4j-community-alloydb-pg AlloyDB for Postgres 向量存储集成(社区版)
dev.langchain4j langchain4j-community-clickhouse ClickHouse 向量存储集成(社区版)
dev.langchain4j langchain4j-community-cloud-sql-pg Cloud SQL for Postgres 向量存储集成(社区版)
dev.langchain4j langchain4j-community-duckdb DuckDB 向量存储集成(社区版)
dev.langchain4j langchain4j-community-lucene Lucene 向量存储集成(社区版)
dev.langchain4j langchain4j-community-neo4j Neo4j 向量存储集成(社区版)
dev.langchain4j langchain4j-community-redis Redis 向量存储集成(社区版)
dev.langchain4j langchain4j-community-vearch Vearch 向量存储集成(社区版)

2.4. 文档加载器 (Document Loaders)

描述: 这些模块用于从各种来源加载文档,如云存储、GitHub、Web 页面等,为后续处理(如 RAG)提供数据。

GroupId ArtifactId 功能描述
dev.langchain4j langchain4j-document-loader-amazon-s3 从 Amazon S3 加载文档
dev.langchain4j langchain4j-document-loader-azure-storage-blob 从 Azure Blob 加载文档
dev.langchain4j langchain4j-document-loader-github 从 GitHub 加载文档
dev.langchain4j langchain4j-document-loader-google-cloud-storage 从 Google Cloud Storage 加载文档
dev.langchain4j langchain4j-document-loader-selenium 从 Web 页面加载文档
dev.langchain4j langchain4j-document-loader-tencent-cos 从 Tencent COS 加载文档

2.5. 文档解析器 (Document Parsers)

描述: 这些模块用于解析不同格式的文档(如 PDF、Excel、Word),将其转换为可处理的结构化数据。

GroupId ArtifactId 功能描述
dev.langchain4j langchain4j-document-parser-apache-pdfbox 使用 Apache PDFBox 解析 PDF 文档
dev.langchain4j langchain4j-document-parser-apache-poi 使用 Apache POI 解析 Excel 和 Word 文档
dev.langchain4j langchain4j-document-parser-apache-tika 使用 Apache Tika 解析多种文档格式
dev.langchain4j langchain4j-community-document-parser-llamaparse 使用 llamaparse 解析文档(社区版)

2.6. 嵌入模型 (Embedding Models)

描述: 这些模块提供了预训练的嵌入模型,用于将文本转换为嵌入向量,支持语义搜索和 RAG 等任务。

GroupId ArtifactId 功能描述
dev.langchain4j langchain4j-embeddings-all-minilm-l6-v2 使用 All-MiniLM-L6-v2 模型生成嵌入
dev.langchain4j langchain4j-embeddings-all-minilm-l6-v2-q 使用 All-MiniLM-L6-v2-Q 模型生成嵌入
dev.langchain4j langchain4j-embeddings-bge-small-en 使用 BGE-Small-En 模型生成嵌入
dev.langchain4j langchain4j-embeddings-bge-small-en-q 使用 BGE-Small-En-Q 模型生成嵌入
dev.langchain4j langchain4j-embeddings-bge-small-en-v15 使用 BGE-Small-En-v15 模型生成嵌入
dev.langchain4j langchain4j-embeddings-bge-small-en-v15-q 使用 BGE-Small-En-v15-Q 模型生成嵌入
dev.langchain4j langchain4j-embeddings-bge-small-zh 使用 BGE-Small-Zh 模型生成嵌入
dev.langchain4j langchain4j-embeddings-bge-small-zh-q 使用 BGE-Small-Zh-Q 模型生成嵌入
dev.langchain4j langchain4j-embeddings-bge-small-zh-v15 使用 BGE-Small-Zh-v15 模型生成嵌入
dev.langchain4j langchain4j-embeddings-bge-small-zh-v15-q 使用 BGE-Small-Zh-v15-Q 模型生成嵌入
dev.langchain4j langchain4j-embeddings-e5-small-v2 使用 E5-Small-v2 模型生成嵌入
dev.langchain4j langchain4j-embeddings-e5-small-v2-q 使用 E5-Small-v2-Q 模型生成嵌入
dev.langchain4j langchain4j-embeddings 嵌入模型的父模块
dev.langchain4j langchain4j-embeddings-bom 嵌入模型的 Bill of Materials
dev.langchain4j langchain4j-embeddings-parent 嵌入模型的父 POM

2.7. Spring Boot Starters

描述: 这些模块是 Spring Boot 的启动器,简化了 LangChain4j 在 Spring Boot 应用程序中的配置和集成。

GroupId ArtifactId 功能描述
dev.langchain4j langchain4j-anthropic-spring-boot-starter Anthropic LLM 的 Spring Boot 启动器
dev.langchain4j langchain4j-azure-ai-search-spring-boot-starter Azure AI Search 向量存储的 Spring Boot 启动器
dev.langchain4j langchain4j-azure-open-ai-spring-boot-starter Azure OpenAI LLM 的 Spring Boot 启动器
dev.langchain4j langchain4j-elasticsearch-spring-boot-starter Elasticsearch 向量存储的 Spring Boot 启动器
dev.langchain4j langchain4j-milvus-spring-boot-starter Milvus 向量存储的 Spring Boot 启动器
dev.langchain4j langchain4j-open-ai-spring-boot-starter OpenAI LLM 的 Spring Boot 启动器
dev.langchain4j langchain4j-github-models-spring-boot-starter GitHub Models LLM 的 Spring Boot 启动器
dev.langchain4j langchain4j-google-ai-gemini-spring-boot-starter Google AI Gemini LLM 的 Spring Boot 启动器
dev.langchain4j langchain4j-ollama-spring-boot-starter Ollama LLM 的 Spring Boot 启动器
dev.langchain4j langchain4j-qianfan-spring-boot-starter Qianfan LLM 的 Spring Boot 启动器
dev.langchain4j langchain4j-redis-spring-boot-starter Redis 向量存储的 Spring Boot 启动器
dev.langchain4j langchain4j-vertex-ai-gemini-spring-boot-starter Google Vertex AI Gemini LLM 的 Spring Boot 启动器
dev.langchain4j langchain4j-voyage-ai-spring-boot-starter Voyage AI LLM 的 Spring Boot 启动器
dev.langchain4j langchain4j-community-clickhouse-spring-boot-starter ClickHouse 向量存储的 Spring Boot 启动器(社区版)
dev.langchain4j langchain4j-community-dashscope-spring-boot-starter DashScope LLM 的 Spring Boot 启动器(社区版)
dev.langchain4j langchain4j-community-neo4j-spring-boot-starter Neo4j 向量存储的 Spring Boot 启动器(社区版)
dev.langchain4j langchain4j-community-qianfan-spring-boot-starter Qianfan LLM 的 Spring Boot 启动器(社区版)
dev.langchain4j langchain4j-community-redis-spring-boot-starter Redis 向量存储的 Spring Boot 启动器(社区版)
dev.langchain4j langchain4j-community-vearch-spring-boot-starter Vearch 向量存储的 Spring Boot 启动器(社区版)
dev.langchain4j langchain4j-community-xinference-spring-boot-starter Xinference LLM 的 Spring Boot 启动器(社区版)

2.8. 社区模块 (Community Modules)

描述: 这些是由社区贡献的模块,提供额外的集成或功能,如特定数据库或 LLM 的支持。

GroupId ArtifactId 功能描述
dev.langchain4j langchain4j-community 社区模块的父模块
dev.langchain4j langchain4j-community-bom 社区模块的 Bill of Materials
dev.langchain4j langchain4j-community-core 社区模块的核心功能
dev.langchain4j langchain4j-community-spring-boot-starters Spring Boot 启动器的社区版本

2.9. 其他实用工具 (Other Utilities)

描述: 这些模块提供了额外的功能,如 HTTP 客户端、Reactive 支持、Spring 集成等,增强了 LangChain4j 的灵活性。

GroupId ArtifactId 功能描述
dev.langchain4j langchain4j-http-client HTTP 客户端
dev.langchain4j langchain4j-http-client-jdk JDK-based HTTP 客户端
dev.langchain4j langchain4j-http-client-spring-restclient Spring RestClient-based HTTP 客户端
dev.langchain4j langchain4j-reactor Reactive 支持
dev.langchain4j langchain4j-spring Spring 集成工具
dev.langchain4j langchain4j-spring-bom Spring 的 Bill of Materials
dev.langchain4j langchain4j-code-execution-engine-graalvm-polyglot 使用 GraalVM Polyglot 的代码执行引擎
dev.langchain4j langchain4j-code-execution-engine-judge0 使用 Judge0 的代码执行引擎
dev.langchain4j langchain4j-document-transformer-jsoup 使用 Jsoup 的文档转换器
dev.langchain4j langchain4j-easy-rag 简化的 RAG 实现
dev.langchain4j langchain4j-experimental-sql 实验性的 SQL 功能
dev.langchain4j langchain4j-embedding-store-filter-parser-sql SQL 过滤器解析器
dev.langchain4j langchain4j-kotlin Kotlin 扩展支持
dev.langchain4j langchain4j-mariadb MariaDB 数据库集成
dev.langchain4j langchain4j-mcp MCP 集成
dev.langchain4j langchain4j-open-ai-official 官方 OpenAI LLM 集成
dev.langchain4j langchain4j-openrewrite-recipes OpenRewrite 配方支持
dev.langchain4j langchain4j-web-search-engine-google-custom Google 自定义搜索集成
dev.langchain4j langchain4j-web-search-engine-searchapi SearchAPI 搜索集成
dev.langchain4j langchain4j-web-search-engine-tavily Tavily 搜索集成
dev.langchain4j langchain4j-community-llm-graph-transformer LLM 图转换器(社区版)
dev.langchain4j langchain4j-community-oci-genai Oracle Cloud Infrastructure GenAI 集成(社区版)
dev.langchain4j langchain4j-community-web-search-engine-searxng SearxNG 搜索集成(社区版)
dev.langchain4j langchain4j-vertex-ai-gemini Google Vertex AI Gemini LLM 集成
dev.langchain4j langchain4j-community-neo4j-retriever Neo4j 检索器(社区版)
dev.langchain4j langchain4j-spring-boot-starter LangChain4j 的通用 Spring Boot 启动器
dev.langchain4j langchain4j-spring-boot-tests Spring Boot 测试支持

3. 多场景实战攻略

以下是五个常见的使用 LangChain4j 的场景,每个场景都说明了所需的组件及其作用。

3.1. 场景 1: 使用 OpenAI 构建简单聊天机器人

描述: 构建一个简单的聊天机器人,使用 OpenAI 的 LLM 来生成对话响应。

GroupId ArtifactId 使用作用
dev.langchain4j langchain4j-open-ai 使用 OpenAI 的 LLM 来生成聊天响应

3.2. 场景 2: 使用 Chroma 和 OpenAI 实现 RAG

描述: 实现一个基于检索增强生成(RAG)的问答系统,使用 Chroma 作为嵌入存储和 OpenAI 作为 LLM。

GroupId ArtifactId 使用作用
dev.langchain4j langchain4j-open-ai 使用 OpenAI 的 LLM 来生成答案
dev.langchain4j langchain4j-chroma 使用 Chroma 作为嵌入存储
dev.langchain4j langchain4j-embeddings-all-minilm-l6-v2 使用 All-MiniLM-L6-v2 作为嵌入模型
dev.langchain4j langchain4j 使用 FileSystemDocumentLoader 加载文档(包含在主模块中)

3.3. 场景 3: 使用 OpenAI 生成代码

描述: 使用 OpenAI 的 LLM 生成特定功能的代码,如 Java 函数。

GroupId ArtifactId 使用作用
dev.langchain4j langchain4j-open-ai 使用 OpenAI 的 LLM 来生成代码

3.4. 场景 4: 使用 PDF 文档实现问答系统

描述: 从 PDF 文档中提取信息,构建一个问答系统。

GroupId ArtifactId 使用作用
dev.langchain4j langchain4j-open-ai 使用 OpenAI 的 LLM 来生成答案
dev.langchain4j langchain4j-chroma 使用 Chroma 作为嵌入存储
dev.langchain4j langchain4j-embeddings-all-minilm-l6-v2 使用 All-MiniLM-L6-v2 作为嵌入模型
dev.langchain4j langchain4j-document-parser-apache-pdfbox 使用 Apache PDFBox 解析 PDF 文档
dev.langchain4j langchain4j 使用 FileSystemDocumentLoader 加载文档(包含在主模块中)

3.5. 场景 5: 使用 Anthropic 构建带记忆的聊天机器人

描述: 构建一个聊天机器人,使用 Anthropic 的 LLM 并维护对话历史。

GroupId ArtifactId 使用作用
dev.langchain4j langchain4j-anthropic 使用 Anthropic 的 LLM 来生成响应
dev.langchain4j langchain4j 使用聊天记忆实现(包含在主模块中)

4. 结语

LangChain4j 提供了丰富的组件和工具,支持从低级别到高级别的 LLM 集成。通过对 141 个组件的分类和多场景的实战攻略,本文旨在帮助开发者快速理解和掌握 LangChain4j 的使用方法。无论是构建聊天机器人、实现文本分类,还是开发基于文档的问答系统,LangChain4j 都能提供强大的支持。希望本文能为您的 LLM 应用开发提供启发和帮助!

Logo

火山引擎开发者社区是火山引擎打造的AI技术生态平台,聚焦Agent与大模型开发,提供豆包系列模型(图像/视频/视觉)、智能分析与会话工具,并配套评测集、动手实验室及行业案例库。社区通过技术沙龙、挑战赛等活动促进开发者成长,新用户可领50万Tokens权益,助力构建智能应用。

更多推荐