ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

LangChain4j 语言模型集成全景:能力对比矩阵与选型实战指南

LangChain4j 语言模型集成全景:能力对比矩阵与选型实战指南 LangChain4j 语言模型集成全景能力对比矩阵与选型实战指南【免费下载链接】langchain4jLangChain4j is an idiomatic, open-source Java library for building LLM-powered applications on the JVM. It offers a unified API over popular LLM providers and vector stores, and makes implementing tool calling (including MCP support), agents and RAG easy. It integrates seamlessly with enterprise Java frameworks like Quarkus and Spring Boot.项目地址: https://gitcode.com/GitHub_Trending/la/langchain4j导读LangChain4j 为 JVM 生态提供了统一的 LLM 应用构建 API其 docs/docs/integrations/language-models/index.md 是一份语言模型能力对比总表横跨 22 家主流大模型服务商与本地部署方案逐项标注了流式输出、工具调用、结构化输出、思考模式、多模态等能力。本文以该对比矩阵为核心骨架逐列拆解每个能力项的真实含义并结合仓库中各集成模块的源码与官方文档说明如何依据能力差异完成模型选型、快速接入与常见坑规避。一、对比矩阵概览一张表看懂 22 家语言模型集成索引文档开篇即给出了一张完整的语言模型对比表覆盖以下 Provider按表格原始顺序Provider仓库文档路径Amazon Bedrockdocs/docs/integrations/language-models/amazon-bedrock.mdAnthropicdocs/docs/integrations/language-models/anthropic.mdAzure OpenAIdocs/docs/integrations/language-models/azure-open-ai.mdChatGLMdocs/docs/integrations/language-models/chatglm.mdDashScopedocs/docs/integrations/language-models/dashscope.mdGoogle AI Geminidocs/docs/integrations/language-models/google-ai-gemini.mdGoogle Vertex AI Geminidocs/docs/integrations/language-models/google-vertex-ai-gemini.mdHugging Facedocs/docs/integrations/language-models/hugging-face.mdJlamadocs/docs/integrations/language-models/jlama.mdGPULlama3.javadocs/docs/integrations/language-models/gpullama3-java.mdLocalAIdocs/docs/integrations/language-models/local-ai.mdMistral AIdocs/docs/integrations/language-models/mistral-ai.mdOllamadocs/docs/integrations/language-models/ollama.mdOpenAIdocs/docs/integrations/language-models/open-ai.mdOpenAI Officialdocs/docs/integrations/language-models/open-ai-official.mdOracle Cloud Infrastructure GenAIdocs/docs/integrations/language-models/oci-genai.mdQianfandocs/docs/integrations/language-models/qianfan.mdCloudflare Workers AIdocs/docs/integrations/language-models/workers-ai.mdZhipu AIdocs/docs/integrations/language-models/zhipu-ai.mdwatsonx.aidocs/docs/integrations/language-models/watsonx.mdCoheredocs/docs/integrations/language-models/cohere.md对比表的列维度共 11 项覆盖了从模型能做什么到应用怎么接的完整选型考量Streaming流式输出Tools工具调用同步 / 流式 / 部分 / 完整JSON Schema结构化输出JSON ModeJSON 模式Thinking (Reasoning)思考/推理模式Supported Modalities (Input)多模态输入Observability可观测性Customizable HTTP Client可定制 HTTP 客户端Local Deployment本地部署Supports Native ImageGraalVM 原生镜像Comments备注如 OpenAI 兼容方案、DeepSeek/Granite 推理模型说明等完整对比矩阵原始内容ProviderStreamingTools (sync/streaming/partial/complete)JSON SchemaJSON ModeThinking (Reasoning)Modalities (Input)ObservabilityCustomizable HTTP ClientLocal DeploymentSupports Native ImageCommentsAmazon Bedrock✅✅/✅/❌/✅✅✅text, image, PDF✅Anthropic✅✅/✅/✅/✅✅✅text, image✅✅✅Azure OpenAI✅✅/✅/✅/✅✅✅text, image✅ChatGLMtextDashScope✅✅/✅text, image, audio✅Google AI Gemini✅✅/✅/❌/✅✅✅✅text, image, audio, video, PDF✅✅Google Vertex AI Gemini✅✅/✅/❌/✅✅✅text, image, audio, video, PDF✅Hugging FacetextJlama✅✅/✅//text✅✅GPULlama3.java✅text✅✅LocalAI✅✅/✅text, image, audio✅Mistral AI✅✅/✅/❌/✅✅✅✅text, image, audio, PDF✅✅Ollama✅✅/✅/❌/✅✅✅✅text, image✅✅✅OpenAI✅✅/✅/✅/✅✅✅✅ (DeepSeek)text, image, audio, video, PDF✅✅见 OpenAI-Compatible Language ModelsOrcaRouter、Ollama、LM Studio、GPT4All、Docker Model Runner 等✅见 OpenAI-Compatible Language ModelsOrcaRouter、Groq 等OpenAI Official✅✅/✅/✅/✅✅✅✅text, image, audio, PDF✅✅见 OpenAI-Compatible Language Models✅见 OpenAI-Compatible Language ModelsOracle Cloud Infrastructure GenAI✅✅/✅text, image✅Qianfan✅✅/✅textCloudflare Workers AItextZhipu AI✅✅/✅text, image✅watsonx.ai✅✅/✅/✅/✅✅✅✅ (Granite)text, image✅✅Cohere✅✅/✅/✅/✅✅✅✅text, image✅图例Legend说明对比表使用统一符号标记能力状态语义必须严格区分✅— 该功能已支持supported— 尚未支持欢迎社区贡献实现not supported yet; please help us implement it— 正在实现中请耐心等待it is being implemented; please wait❌— 服务商侧不支持该能力not supported by the LLM provider空白无标记— 状态未确认需要二次核实not sure, need to double-check。特别提醒❌ 与空白含义不同。❌ 表示提供商明确不支持如 Amazon Bedrock 的流式工具部分回调而空白表示仓库文档尚未核实。选型时若某能力格为空白建议以对应 Provider 的官方 API 文档为准。二、能力列逐项拆解每个 ✅ 背后是什么2.1 Streaming流式输出能力Streaming 列标记的是该集成是否提供StreamingChatModel实现。LangChain4j 中所有模型统一实现 StreamingChatModel 接口通过StreamingChatResponseHandler回调onPartialResponse/onCompleteResponse/onError逐 token 接收输出。完整用法参见 docs/docs/tutorials/response-streaming.md。表中标记为空白的 ProviderChatGLM、Hugging Face、Cloudflare Workers AI即当前未提供流式实现或未标注。2.2 Tools工具调用Function CallingTools 列是最复杂的维度格式为sync / streaming / partial / complete四段式标记sync同步非流式模式下支持工具调用streaming流式模式下支持工具调用partial流式模式下是否支持部分工具调用回调即工具调用尚未结束时就开始上报complete流式模式下是否支持完整工具调用回调。例如Anthropic✅/✅/✅/✅四段全支持Amazon Bedrock / Google AI Gemini / Google Vertex AI Gemini / Mistral AI / Ollama / watsonx.ai / Cohere✅/✅/❌/✅即流式工具调用不提供 partial 回调DashScope / LocalAI / Qianfan / Zhipu AI✅/✅仅标注了同步与流式两项Jlama✅/✅//partial 与 complete 待社区实现。流式场景下工具调用的处理细节可参考 docs/docs/tutorials/tools.md 中 Using StreamingChatModel 一节。值得一提的兼容性细节在 openai-compatible.mdOpenAiStreamingChatModel的accumulateToolCallId参数默认true控制流式分块中工具调用 ID 的拼接方式——标准 OpenAI 行为是跨 chunk 累积拼接chunk1 abc chunk2 def → abcdef而 DeepSeek、Qwen 等 API 会在每个 chunk 都发送完整 ID此时需设为false每个 chunk 的 ID 直接替换前一个否则会得到错误的拼接 ID。2.3 JSON Schema / JSON Mode结构化输出的两种层次JSON Mode强制模型输出 JSON但不保证符合特定 schema适合只需要是 JSON的场景JSON Schema强制模型输出符合指定 JSON Schema 的结构化数据Structured Outputs适合数据抽取、类型安全映射等场景也是AiServices中 POJO 返回类型自动生成 schema 的基础。完整教程见 docs/docs/tutorials/structured-outputs.md 与 docs/docs/tutorials/ai-services.md 的 JSON Mode 一节。从表格可以看出Anthropic、Azure OpenAI、Google AI Gemini、Google Vertex AI Gemini、Mistral AI、Ollama、OpenAI、OpenAI Official、watsonx.ai、Cohere 同时支持两种模式Amazon Bedrock 仅支持 JSON Schema而 DashScope、Jlama、LocalAI、Qianfan、Zhipu AI 等当前均未标注。2.4 Thinking (Reasoning)思考/推理模式该列标注集成是否支持思考过程的收发。以仓库文档为准各家的实现各有特色Anthropic支持 extended/adaptive thinking通过thinkingType、thinkingBudgetTokens、thinkingDisplay、returnThinking、sendThinking等参数控制见 anthropic.mdGoogle AI Gemini通过GeminiThinkingConfigincludeThoughts、thinkingBudget、Gemini 3 Pro 的thinkingLevel与returnThinking/sendThinking控制见 google-ai-gemini.mdOpenAI表格备注明确标注 Thinking ✅ (DeepSeek)——即通过returnThinking解析 DeepSeek API 响应的reasoning_content字段并放入AiMessage.thinking()OpenAiStreamingChatModel则触发onPartialThinking()回调见 open-ai.mdwatsonx.ai标注 ✅ (Granite)针对 Granite 推理模型Ollama通过thinktrue/false/null三种语义与returnThinking控制null时推理模型会将思考内容以think标签前缀形式附在响应中见 ollama.md。2.5 多模态输入Supported Modalities各家的输入模态覆盖面差异显著是纯文本应用与多模态应用选型的关键text image audio video PDFGoogle AI Gemini、Google Vertex AI Gemini、OpenAItext image audio PDFMistral AI、OpenAI Officialtext image PDFAmazon Bedrocktext imageAnthropic、Azure OpenAI、DashScope、LocalAI、Ollama、Oracle OCI GenAI、Zhipu AI、watsonx.ai、Cohere仅 textChatGLM、Hugging Face、Jlama、GPULlama3.java、Qianfan、Cloudflare Workers AI。以 google-ai-gemini.md 为例图片以ImageContent、视频以VideoContent、音频以AudioContent、PDF 以PdfFileContent与文本混合传入UserMessage。多模态概念的通用讲解见 docs/docs/tutorials/chat-and-language-models.md 的 Multimodality 小节。2.6 Observability可观测性标记该集成的模型是否接入 LangChain4j 的 Chat Model ObservabilityChatModelListener接口定义见 ChatModelListener.java。表格中 ✅ 的 ProviderAmazon Bedrock、Anthropic、Azure OpenAI、DashScope、Google AI Gemini、Google Vertex AI Gemini、Mistral AI、Ollama、OpenAI、OpenAI Official、Zhipu AI、watsonx.ai、Cohere。详细接入方式见 docs/docs/tutorials/observability.md。2.7 Customizable HTTP Client可定制 HTTP 客户端标注 ✅ 的 ProviderAnthropic、Google AI Gemini、Mistral AI、Ollama、OpenAI、OpenAI Official、watsonx.ai允许通过httpClientBuilder(...)注入自定义 HTTP 客户端实现。以 OpenAI 集成文档 open-ai.md 为准Plain Java默认使用 JDK 的java.net.http.HttpClientSpring Boot使用 Spring 的RestClient。LM Studio 场景是一个经典案例见 openai-compatible.mdLM Studio 本地服务不支持 HTTP/2需要引入langchain4j-http-client-jdk依赖并通过JdkHttpClient.builder().httpClientBuilder(...)强制 HTTP/1.1。完整机制见 docs/docs/tutorials/customizable-http-client.md。2.8 Local Deployment本地部署能力表格中标注 ✅ 的本地运行方案Jlamajlama.md纯 Java 实现GPULlama3.javagpullama3-java.mdGPU 加速的 Llama3 Java 实现LocalAIlocal-ai.mdOllamaollama.mdOpenAI / OpenAI Official通过 OpenAI-Compatible Language Models 一节接入 OrcaRouter、Ollama、LM Studio、GPT4All、Docker Model Runner 等本地或网关方案。2.9 Supports Native ImageGraalVM 原生镜像标注 ✅ 的 Provider 可在 GraalVM Native Image 下运行表格中为 Anthropic、Jlama、GPULlama3.java、OpenAI、OpenAI Official、Oracle OCI GenAI。对部署在 Quarkus Native、Spring Native 等场景的开发者而言这是重要的运行时兼容性信号。2.10 Comments 备注列备注列集中说明了两种特殊情形OpenAI / OpenAI Official的本地部署与 Native Image 支持均经由 OpenAI 兼容接口方案实现指向 openai-compatible.mdOrcaRouter、Groq、Ollama、LM Studio、GPT4All、Docker Model Runner 等Thinking 列的特殊标注OpenAI 的推理能力针对 DeepSeekwatsonx.ai 的推理能力针对 Granite说明推理支持与具体模型绑定而非 Provider 级通用能力。三、三种 OpenAI 系集成的取舍OpenAI / OpenAI Official / Azure OpenAI对比表把 OpenAI 拆成了三条独立集成这是选型时最容易混淆的地方。以 open-ai.md 顶部说明为准OpenAIlangchain4j-open-ai使用 LangChain4j 自研的 OpenAI REST API 自定义 Java 实现与 QuarkusQuarkus REST client和 SpringSprings RestClient配合最佳OpenAI Official SDKlangchain4j-open-ai-official使用 OpenAI 官方 Java SDKAzure OpenAIlangchain4j-azure-open-ai使用微软 Azure SDK适合微软 Java 技术栈支持 Azure 高级认证机制如 DefaultAzureCredentialBuilder 令牌认证见 azure-open-ai.md。三者能力对齐情况也反映在对比表中Azure OpenAI 在 Tools 四段式✅/✅/✅/✅、JSON Schema、JSON Mode 上与 OpenAI 一致但 Thinking 列留空而 OpenAI 与 OpenAI Official 均标注了 Thinking ✅。此外Azure OpenAI 还有几个差异化特性必须先部署模型才能使用支持音频转写AzureOpenAiAudioTranscriptionModel可用non-azure-api-key直连非 Azure 的 OpenAI 端点。四、快速上手从对比表到第一个 ChatModel选型确定后接入流程统一为加依赖 → 建模型 → 调用核心接口是 ChatModel同步与StreamingChatModel流式。4.1 添加 Maven 依赖以 OpenAI 集成为例open-ai.mddependency groupIddev.langchain4j/groupId artifactIdlangchain4j-open-ai/artifactId version1.20.0/version /dependencySpring Boot 4 使用 starterSpring Boot 3 请使用langchain4j-open-ai-spring-boot-starter详见 docs/docs/tutorials/spring-boot-integration.mddependency groupIddev.langchain4j/groupId artifactIdlangchain4j-open-ai-spring-boot4-starter/artifactId version1.20.0-beta30/version /dependency其余集成Anthropic、Azure OpenAI、Google AI Gemini、Ollama 等的依赖坐标均可从对应文档页获取模块名与langchain4j-provider一一对应。4.2 一个最小可运行的例子import dev.langchain4j.model.chat.ChatModel; import dev.langchain4j.model.openai.OpenAiChatModel; ChatModel model OpenAiChatModel.builder() .apiKey(System.getenv(OPENAI_API_KEY)) .modelName(gpt-4o-mini) .build(); String answer model.chat(Say Hello World); System.out.println(answer);本地部署Ollama版本同样只需替换baseUrl与modelName且无需 API Keyollama.mdChatModel model OllamaChatModel.builder() .baseUrl(http://localhost:11434) .modelName(llama3.1) .build();4.3 接入 OpenAI 兼容服务四步走对任何暴露 OpenAI 兼容 API 的服务OrcaRouter、Groq、Docker Model Runner、GPT4All、Ollama、LM Studio 等openai-compatible.md 给出了统一四步流程确定 Base URL找到服务的 API 端点通常以/v1结尾获取 API Key需要认证则取 Key本地无认证服务可传占位符指定模型名按服务商文档确定modelName配置OpenAiChatModel/OpenAiStreamingChatModelChatModel model OpenAiChatModel.builder() .baseUrl(http://localhost:8000/v1) // 本地服务端点 .apiKey(sk-yourkey) // 或本地服务用 none 占位 .modelName(gpt-3.5-turbo) // 或服务商自定义模型名 .logRequests(true) .logResponses(true) .build();几个常见 OpenAI 兼容端点的 Base URL 速查出处同上服务Base URL部署形态说明OrcaRouterhttps://api.orcarouter.ai/v1SaaSKey 以sk-orca-开头Groqhttps://api.groq.com/openai/v1SaaS极速推理Docker Model Runnerhttp://localhost:12434/engines/llama.cpp/v1本地需在 Docker Desktop 实验特性中开启GPT4Allhttp://localhost:4891/v1本地需在设置中启用 Local API ServerOllamahttp://localhost:11434/v1/本地也有专用langchain4j-ollama模块LM Studiohttp://127.0.0.1:1234/v1本地需强制 HTTP/1.1五、选型建议如何利用对比矩阵做决策先定部署形态数据合规或离线场景直接锁定 Local Deployment ✅ 的行Jlama、GPULlama3.java、LocalAI、Ollama或走 OpenAI 兼容本地服务Ollama / LM Studio / GPT4All / Docker Model Runner需要 Native Image 部署则过滤 Supports Native Image 列再定功能需求需要结构化输出优先看 JSON Schema ✅需要流式工具调用看 Tools 列是否✅/✅/✅/✅需要多模态看 Modalities 列覆盖最后看生态契合企业级 Java 技术栈Quarkus / Spring Boot下OpenAI 系自定义实现Quarkus REST client / Spring RestClient与 Azure OpenAIAzure SDK各有适配侧重留意特殊标注Thinking 列带括号说明DeepSeek、Granite表示能力与特定模型绑定 表示待社区实现可自行贡献revapi.json等工程文件在各模块根目录如 langchain4j-open-ai/revapi.json。六、小结本文围绕 docs/docs/integrations/language-models/index.md 的对比矩阵逐列解析了 22 家语言模型集成的 11 项能力维度并结合仓库内各集成文档open-ai.md、anthropic.md、google-ai-gemini.md、ollama.md、openai-compatible.md 等与核心接口源码ChatModel.java、StreamingChatModel.java给出了能力差异背后的实现依据与实操配置。在动手接入前建议结合对比表快速圈定 23 个候选 Provider再进入对应集成文档按依赖 → 构建 → 调用三步完成接入。【免费下载链接】langchain4jLangChain4j is an idiomatic, open-source Java library for building LLM-powered applications on the JVM. It offers a unified API over popular LLM providers and vector stores, and makes implementing tool calling (including MCP support), agents and RAG easy. It integrates seamlessly with enterprise Java frameworks like Quarkus and Spring Boot.项目地址: https://gitcode.com/GitHub_Trending/la/langchain4j创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表