news 2026/3/22 17:16:04

Langchain4j-集成模式分析

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Langchain4j-集成模式分析

集成模式分析

请关注公众号【碳硅化合物AI】

目录

  • 概述
  • LLM 提供商集成模式
  • 向量存储集成模式
  • 集成测试模式
  • HTTP 客户端集成
  • 配置和构建器模式
  • 异常处理和重试机制
  • 总结

概述

LangChain4j 支持 20+ LLM 提供商和 30+ 向量数据库。通过统一接口抽象实现无缝切换。集成新提供商主要工作:实现ChatModelEmbeddingStore接口,处理 HTTP 调用、错误处理、重试等细节。

LLM 集成模式

所有 LLM 集成遵循相同模式:实现ChatModel接口、使用构建器模式、处理 HTTP 请求/响应、转换数据格式、处理错误和重试。

以 OpenAI 为例:

publicclassOpenAiChatModelimplementsChatModel{privatefinalOpenAiClientclient;privatefinalIntegermaxRetries;@OverridepublicChatResponsedoChat(ChatRequestchatRequest){// 转换格式ChatCompletionRequestopenAiRequest=toOpenAiChatRequest(chatRequest);// 调用 API(带重试)ParsedAndRawResponse<ChatCompletionResponse>response=withRetryMappingExceptions(()->client.chatCompletion(openAiRequest),maxRetries);// 转换响应returnChatResponse.builder().aiMessage(aiMessageFrom(response.parsed())).tokenUsage(tokenUsageFrom(response.parsed())).finishReason(finishReasonFrom(response.parsed())).build();}}

关键点:OpenAiClient封装 HTTP 调用,toOpenAiChatRequest()做格式转换,withRetryMappingExceptions()处理重试,最后转换响应为ChatResponse

集成类关系图

集成方式

两种方式:有官方 SDK 直接用 SDK,没有则用langchain4j-http-client构建 HTTP 请求。实际项目中,OpenAI、Anthropic 等大厂都有官方 SDK,直接用更稳定;小厂或自建服务需要用 HTTP 客户端。

向量存储集成

向量存储集成模式类似,实现EmbeddingStore接口。核心方法:add()添加嵌入向量和原始内容,findRelevant()根据查询向量找最相似的。实现类包括PineconeEmbeddingStoreMilvusEmbeddingStoreInMemoryEmbeddingStore等。

集成流程

集成测试

所有集成必须通过统一测试套件,确保行为一致。ChatModel实现继承AbstractChatModelIT,只需实现models()返回测试实例,基础测试(消息处理、工具调用、流式响应、图片输入、结构化输出、错误处理等)自动运行。这确保了所有集成行为一致。

HTTP 客户端和配置

langchain4j-http-client提供 HTTP 客户端抽象,默认使用 Java 11+ 的java.net.http.HttpClient,也可自定义(OkHttp、Apache HttpClient 等)。

所有集成使用构建器模式:可选参数、链式调用、不可变对象、build()时验证。参数分三层:构建器参数(默认值)、RequestParameters(请求级)、ChatRequest.parameters()(调用级,优先级最高)。

异常处理和重试

不同提供商错误格式不同,需要统一映射(401 认证失败、429 限流、5xx 服务器错误等)。RetryUtils.withRetryMappingExceptions()提供统一重试:捕获可重试异常(网络错误、5xx、429),指数退避,达到最大次数后抛出。可重试:网络错误、5xx、429;不可重试:4xx(除 429)、认证失败。

总结

集成模式设计清晰:统一接口无缝切换、标准化测试确保一致、灵活 HTTP 客户端、构建器模式配置清晰、完善的错误处理和重试。集成新提供商主要工作:实现接口、数据格式转换、HTTP 调用(或官方 SDK)、写集成测试。通过统一抽象,使用体验完全一致。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/15 23:49:06

Argo CD持续交付:VibeThinker生成Application CRD定义

Argo CD持续交付&#xff1a;VibeThinker生成Application CRD定义 在现代云原生架构的演进中&#xff0c;一个看似微小却影响深远的问题始终困扰着团队&#xff1a;如何快速、准确地为新服务创建符合规范的部署配置&#xff1f;尤其是在使用 Argo CD 实现 GitOps 的场景下&…

作者头像 李华
网站建设 2026/3/15 13:27:20

Terraform基础设施即代码:VibeThinker构建AWS VPC模块

Terraform基础设施即代码&#xff1a;VibeThinker构建AWS VPC模块 在现代云原生开发中&#xff0c;一个常见的挑战是——如何快速、准确地搭建一套符合安全规范的网络架构&#xff1f;比如在AWS上创建一个具备公有子网、私有子网和NAT网关的VPC。传统做法需要查阅大量文档、手动…

作者头像 李华
网站建设 2026/3/18 21:45:46

机器学习面试题解析:VibeThinker讲解梯度下降推导过程

VibeThinker-1.5B&#xff1a;小模型如何颠覆高性能推理的认知&#xff1f; 在AI大模型动辄千亿参数、训练成本破百万美元的今天&#xff0c;一个仅15亿参数的小模型却悄然登顶多项数学与编程基准测试——这不是科幻&#xff0c;而是VibeThinker-1.5B-APP带来的现实冲击。它用不…

作者头像 李华
网站建设 2026/3/15 13:27:32

[精品]基于微信小程序的旧衣回收系统=积分兑换商品 UniApp

关注博主迷路&#xff0c;收藏文章方便后续找到&#xff0c;以防迷路&#xff0c;最下面有联系博主 项目介绍 微信小程序的旧衣回收系统是一种专为环保生活设计的应用软件。这款小程序的主要功能包括&#xff1a;系统首页、个人中心、用户管理、回收人员管理、旧衣服分类管理、…

作者头像 李华
网站建设 2026/3/17 4:53:48

问答系统十年演进(2015–2025)

问答系统十年演进&#xff08;2015–2025&#xff09; 一句话总论&#xff1a; 2015年问答系统还是“检索规则匹配浅层阅读理解”的信息检索时代&#xff0c;2025年已进化成“万亿级多模态VLA大模型实时意图级推理量子鲁棒自进化全域知识/具身行动问答”的通用智能时代&#xf…

作者头像 李华