尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

LangChain4j 快速上手:在 Java 17+ 项目中 5 分钟接入 OpenAI 大模型

LangChain4j 快速上手:在 Java 17+ 项目中 5 分钟接入 OpenAI 大模型 LangChain4j 快速上手在 Java 17 项目中 5 分钟接入 OpenAI 大模型【免费下载链接】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 官方入门指南docs/docs/get-started.md的完整实战化讲解你将从零开始在一个 Java 17 的 Maven/Gradle 项目中引入 LangChain4j 依赖配置 OpenAI API Key并通过几行代码构建OpenAiChatModel完成第一次与 GPT 的对话。读完本文你将掌握 LangChain4j 的最小可运行链路以及从低层ChatModel到高层 AI Services、再到 Quarkus/Spring Boot 集成的后续升级路径。前置要求与环境约束LangChain4j 对运行环境的要求非常简单从官方文档可以提炼出两条硬性前提JDK 版本最低支持JDK 17。也就是说任何 17 及以上的 JDK17、21、23……都可以直接使用。一个可用的 LLM 提供商账号LangChain4j 通过统一的 API 屏蔽各家提供商的差异每个提供商都有独立的 Maven 依赖。本文以 OpenAI 为例。此外LangChain4j 的设计是模块化的核心抽象定义在langchain4j-core主模块langchain4j提供文档加载、聊天记忆、AI Services 等高级能力而langchain4j-{integration}系列模块才是与各家 LLM 提供商、向量库对接的桥梁。官方文档明确指出每个集成都有自己的 Maven 依赖因此你可以按需引入而不是一次性拉入整个框架。框架用户请看这里如果你使用的是 Quarkus、Spring Boot 或 Helidon官方建议直接走对应的框架集成教程而不是手动管理依赖分别参见 Quarkus 集成指南、Spring Boot 集成指南 和 Helidon 集成指南。第一步引入 OpenAI 集成依赖Maven 方式pom.xml在pom.xml中加入以下依赖即可获得与 OpenAI API 通信的全部能力dependency groupIddev.langchain4j/groupId artifactIdlangchain4j-open-ai/artifactId version1.20.0/version /dependency可选引入主模块以使用 AI Services 等高层 APIlangchain4j-open-ai只负责与 OpenAI 对接。如果你想使用AI Services这类高层 API通过注解声明式地定义 LLM 服务接口由框架自动生成实现还需要额外添加主模块依赖dependency groupIddev.langchain4j/groupId artifactIdlangchain4j/artifactId version1.20.0/version /dependency从当前仓库的 langchain4j-open-ai/pom.xml 可以看出langchain4j-open-ai本身只依赖langchain4j-core核心抽象、langchain4j-http-clientHTTP 客户端抽象等少量模块这印证了最小化依赖、按需组合的设计原则。Gradle 方式build.gradleGradle 用户对应添加implementation dev.langchain4j:langchain4j-open-ai:1.20.0 implementation dev.langchain4j:langchain4j:1.20.0第二步用 BOM 统一管理版本推荐当项目中需要引入多个 LangChain4j 模块时手工为每个依赖维护版本号容易产生版本漂移。官方提供了Bill of MaterialsBOM机制只需在dependencyManagement中导入一次后续所有 LangChain4j 依赖都无需再写版本号dependencyManagement dependencies dependency groupIddev.langchain4j/groupId artifactIdlangchain4j-bom/artifactId version1.20.0/version typepom/type scopeimport/scope /dependency /dependencies /dependencyManagementBOM 的实现在仓库中的 langchain4j-bom/pom.xml它通过langchain4j.stable.version与langchain4j.beta.version两个属性统一管理全部模块版本涵盖langchain4j-core、langchain4j、langchain4j-http-client、langchain4j-open-ai等所有模块。需要注意两点langchain4j-bom始终包含所有 LangChain4j 模块的最新版本因此引入 BOM 相当于自动跟随主仓库的版本节奏。由于 LangChain4j 的稳定版与 beta 版并行发布BOM 版本为1.20.0时部分模块的实际版本仍可能是1.20.0-beta30。这些 beta 模块后续可能存在破坏性变更breaking changes在生产环境引入前需要关注版本说明。第三步尝鲜 SNAPSHOT 版本可选如果你希望在功能正式发布前体验最新特性可以使用SNAPSHOT依赖。需要在pom.xml中额外声明 Sonatype 的 SNAPSHOT 仓库repositories repository nameCentral Portal Snapshots/name idcentral-portal-snapshots/id urlhttps://central.sonatype.com/repository/maven-snapshots//url releases enabledfalse/enabled /releases snapshots enabledtrue/enabled /snapshots /repository /repositories dependencies dependency groupIddev.langchain4j/groupId artifactIdlangchain4j/artifactId version1.20.0-SNAPSHOT/version /dependency /dependenciesSNAPSHOT 版本意味着持续集成、随时可能变化只建议在开发环境或预发布阶段使用不要直接用于生产。第四步安全地配置 API Key官方文档给出的最佳实践是将 API Key 存放在环境变量中而不是硬编码在代码或提交到版本库以降低泄露风险String apiKey System.getenv(OPENAI_API_KEY);代码运行前需要先在操作系统层面导出该环境变量例如export OPENAI_API_KEYsk-xxxx这种从环境变量读取凭证的方式在仓库的集成测试中也是标准做法。查看 OpenAiChatModelIT.java测试类标注了EnabledIfEnvironmentVariable(named OPENAI_API_KEY, matches .)即只有设置了OPENAI_API_KEY环境变量时测试才会执行而测试内部也是通过System.getenv(OPENAI_API_KEY)读取密钥——与官方文档的推荐方式完全一致。第五步构建模型并完成第一次对话创建 OpenAiChatModel 实例使用 LangChain4j 惯用的Builder 模式构建聊天模型OpenAiChatModel model OpenAiChatModel.builder() .apiKey(apiKey) .modelName(gpt-4o-mini) .build();这里modelName(gpt-4o-mini)也可以替换为OpenAiChatModelName枚举中的常量。仓库的 OpenAiChatModelName.java 中收录了 OpenAI 主流模型及其别名包括GPT_4_O_MINIgpt-4o-mini、GPT_4_Ogpt-4o、O1、O3_MINI、O4_MINI、GPT_5_MINI等使用枚举可以避免手写字符串拼写错误。发起聊天String answer model.chat(Say Hello World); System.out.println(answer); // Hello WorldOpenAiChatModel实现了langchain4j-core中定义的统一ChatModel接口见 ChatModel.java。因此哪怕以后要把 OpenAI 换成其他提供商也只需要替换模型实现类上层代码几乎不用改动——这正是 LangChain4j 统一 API、易于切换 的核心价值。深入Builder 背后还有哪些可配置项上面最小示例只用了apiKey和modelName两个参数但结合 OpenAiChatModel.java 的源码OpenAiChatModel.builder()实际暴露了非常丰富的配置入口分为几大类分类常用 Builder 方法说明连接与凭证baseUrl自定义 API 地址默认指向 OpenAI 官方地址DEFAULT_OPENAI_URL对接兼容 OpenAI 协议的网关/代理时非常有用连接与凭证apiKey、organizationId、projectIdOpenAI 的凭证信息连接与凭证timeout超时时间源码默认连接超时 15 秒、读取超时 60 秒连接与凭证maxRetries失败重试次数源码默认2 次见OpenAiChatModel构造器中getOrDefault(builder.maxRetries, 2)模型行为temperature、topP采样随机性控制影响输出的创造性与确定性模型行为maxTokens/maxCompletionTokens限制最大输出 token 数仓库测试 OpenAiChatModelIT.java 中通过将其设为1验证了输出 token 数与FinishReason.LENGTH的联动行为模型行为stop停止序列、presencePenalty、frequencyPenalty控制生成终止与重复惩罚工具与结构化toolSpecifications、toolChoice、strictTools、parallelToolCalls函数调用Tools相关配置是 Agent 能力的基石工具与结构化responseFormat、strictJsonSchema结构化输出 / JSON Schema 强制模式可观测性logRequests、logResponses、logger开启请求/响应日志排查问题必备自定义扩展customHeaders、customQueryParams、customParameters附加自定义 HTTP 头、查询参数与请求体字段兼容网关类场景高级特性seed、user、store、serviceTier、reasoningEffort、returnThinking/sendThinking确定性采样、用户标识、结果存储、服务层级、推理强度以及思维链内容解析后两者主要面向 DeepSeek 等推理模型的reasoning_content字段这些配置在构造时会被合并进OpenAiChatRequestParameters作为每次请求的默认参数下发。构建完成后调用model.chat(...)时请求会经由统一的ChatModel接口进入doChat最终由OpenAiClient通过 HTTP 客户端发往 OpenAI Chat Completions 端点——整条调用链在源码中清晰可见。运行验证与常见问题运行程序确保OPENAI_API_KEY环境变量已生效然后直接运行包含上述代码的main方法控制台应打印Hello World。看不到输出 / 401 报错优先检查环境变量是否已正确导出可通过echo $OPENAI_API_KEY确认以及 API Key 是否有效。想跟踪请求细节在 Builder 中开启.logRequests(true).logResponses(true)LangChain4j 会打印完整的 HTTP 请求与响应内容便于快速定位问题。网络受限或使用代理网关通过.baseUrl(...)指向兼容 OpenAI 协议的端点即可这也是仓库测试中通过OPENAI_BASE_URL环境变量覆盖地址的用法见 OpenAiChatModelIT.java。接下来从能对话到构建应用本文完成的是 LangChain4j 的最小可运行闭环它属于框架的低层抽象直接操作ChatModel、UserMessage、AiMessage等原语自由度高但需要自己写胶水代码。官方还提供了一条高层抽象路径AI Services用注解声明接口即可获得 LLM 能力框架自动处理提示词、解析与工具调用参见 AI Services 教程更多模型提供商与向量库LangChain4j 集成了大量 LLM 提供商OpenAI、Google Gemini、Anthropic、Ollama 本地模型等与 Embedding/向量存储完整清单见 语言模型集成列表 与 向量存储集成列表框架集成企业级场景下推荐直接使用 Quarkus 集成、Spring Boot 集成 或 Helidon 集成利用依赖注入与配置体系进一步降低开发成本。至此你已经具备在 Java 项目中独立接入 LangChain4j OpenAI 的完整能力可以在此基础上继续探索工具调用Tools、Agent 与 RAG 等进阶主题。【免费下载链接】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),仅供参考
返回列表