LangChain4j HTTP 客户端定制:解锁 LLM API 交互的更多可能性

点击下方"JavaEdge",选择"设为星标"

第一时间关注技术干货!

免责声明~

任何文章不要过度深思!

万事万物都经不起审视,因为世上没有同样的成长环境,也没有同样的认知水平,更**「没有适用于所有人的解决方案」**;

不要急着评判文章列出的观点,只需代入其中,适度审视一番自己即可,能**「跳脱出来从外人的角度看看现在的自己处在什么样的阶段」才不为俗人**。

怎么想、怎么做,全在乎自己**「不断实践中寻找适合自己的大道」**

0 前言

一些 LangChain4j 模块(目前是 OpenAI 和 Ollama)支持自定义用于调用 LLM 提供程序 API 的 HTTP 客户端。

langchain4j-http-client 模块实现了一个 HttpClient SPI,这些模块用它来调用 LLM 提供程序的 REST API。即底层 HTTP 客户端可自定义,并通过实现 HttpClient SPI 来集成任何其他 HTTP 客户端。

1 实现方案

目前,有两种开箱即用的实现:

1.1 JdkHttpClient

langchain4j-http-client-jdk 模块中的 JdkHttpClient 。当使用受支持的模块(如 langchain4j-open-ai )时,默认使用它。

1.2 SpringRestClient

langchain4j-http-client-spring-restclient 中的 SpringRestClient 。当使用受支持的模块的 Spring Boot 启动器(例如 langchain4j-open-ai-spring-boot-starter )时,默认使用它。

2 自定义JDK的HttpClient

go 复制代码
HttpClient.Builder httpClientBuilder = HttpClient.newBuilder()
        .sslContext(...);

JdkHttpClientBuilder jdkHttpClientBuilder = JdkHttpClient.builder()
        .httpClientBuilder(httpClientBuilder);

OpenAiChatModel model = OpenAiChatModel.builder()
        .httpClientBuilder(jdkHttpClientBuilder)
        .apiKey(System.getenv("OPENAI_API_KEY"))
        .modelName("gpt-4o-mini")
        .build();

3 定制 Spring 的RestClient

go 复制代码
RestClient.Builder restClientBuilder = RestClient.builder()
        .requestFactory(new HttpComponentsClientHttpRequestFactory());

SpringRestClientBuilder springRestClientBuilder = SpringRestClient.builder()
        .restClientBuilder(restClientBuilder)
        .streamingRequestExecutor(new VirtualThreadTaskExecutor());

OpenAiChatModel model = OpenAiChatModel.builder()
        .httpClientBuilder(springRestClientBuilder)
        .apiKey(System.getenv("OPENAI_API_KEY"))
        .modelName("gpt-4o-mini")
        .build();

本文已收录在Github Java-Interview-Tutorial,关注我,紧跟本系列专栏文章,咱们下篇再续!

  • 🚀 魔都架构师 | 全网30W技术追随者

  • 🔧 大厂分布式系统/数据中台实战专家

  • 🏆 主导交易系统亿级流量调优 & 车联网平台架构

  • 🧠 AIGC应用开发先行者 | 区块链落地实践者

  • 🌍 以技术驱动创新,我们的征途是改变世界!

  • 👉 实战干货:编程严选网

关注我,紧跟本系列专栏文章,咱们下篇再续!

加我好友,一起AI探索交流:

写在最后

编程严选网 :http://www.javaedge.cn/

专注分享AI时代下软件开发全场景最新最佳实践,点击文末【阅读原文】即可直达~

相关推荐
盛世宏博智慧档案14 分钟前
TCP以太网温湿度传感器:从RS485痛点突围到工业组网实战
网络·网络协议·tcp/ip
富洋金锐18 分钟前
windows-winmtr与pathping命令-网络丢包排查
网络·windows
m0_547486661 小时前
《网络与信息安全》全套PPT课件2026
网络·网络安全
wdfk_prog1 小时前
LWIP教程 13:从 `dhcp_start()` 到 `DHCP_STATE_BOUND`——DHCPv4、ACD、Timer 与真实抓包
运维·网络协议
星云低代码开发平台1 小时前
AI 连接器运行健康度:指标、异常恢复和联调清单
大数据·运维·网络·数据库·人工智能·mcp
花间相见1 小时前
【计算基础|网络12】TCP 抓包与经典边界问题
网络·tcp/ip·策略模式
zoyation2 小时前
jrp 1.2.0 重磅发布|P2P打洞直连 · 端口自动分配 · 一端口多服务,这次全齐了!
网络·网络协议·p2p
励志师code2 小时前
RoCE 网络实战:从 NCCL 调优到 RDMA 硬件计数器排障
linux·运维·网络·云计算
砚凝霜2 小时前
【软考信息安全】第二十一章 网络设备安全增强技术与漏洞防护
网络·安全·web安全
Alinket2 小时前
毫米波雷达 vs 摄像头 vs 手环:养老跌倒监测三类方案怎么选
网络·数据库·健康医疗·信息与通信·iot