Java 通用 AI 大模型调用工具类(兼容 OpenAI/智谱/百度千帆,支持流式响应)
引言
当前 AI 大模型生态中,OpenAI、智谱、百度千帆等平台层出不穷,但各平台接口规范不统一、调用逻辑重复开发、异常处理繁琐等问题,给 Java 开发者带来了诸多困扰。
本文分享一套「通用 AI 大模型调用工具类」,核心优势:
- 一键切换平台/模型(兼容主流 OpenAI 规范平台)
- 完整异常处理(401 密钥无效、429 限流、网络异常等全覆盖)
- 支持流式/非流式响应(适配对话场景实时交互)
- 灵活配置(超时、代理、实时打印等可自定义)
- 开箱即用,可直接导入项目生产环境
一、工具类设计思路
采用「配置分离 + 核心逻辑封装」的设计模式,结构如下:
- 自定义异常类:统一封装 AI 调用全流程异常,便于上层捕获处理
- 配置类:聚合所有可配置参数,提供常用平台快捷配置方法,实现一键切换
- 核心工具类:封装 OkHttp 请求、流式/非流式响应处理、JSON 解析等核心逻辑
整体架构解耦,配置与业务逻辑分离,后续扩展新平台只需新增配置,无需修改核心调用逻辑。
二、核心代码实现
2.1 自定义异常类(AIInvokeException.java)
统一异常格式,包含错误信息和 HTTP 状态码,方便定位问题:
package com.ai.client;
/**
* AI 调用通用异常类
* 包含错误信息和响应状态码,便于上层统一处理
*/
public class AIInvokeException extends RuntimeException {
// 存储 HTTP 响应状态码(如 401/403/429 等)
private Integer code;
// 构造方法重载,适配不同异常场景
public AIInvokeException(String message) {
super(message);
}
public AIInvokeException(String message, Integer code) {
super(message);
this.code = code;
}
public AIInvokeException(String message, Throwable cause) {
super(message, cause);
}
// Getter & Setter
public Integer getCode() {
code;
}
{
.code = code;
}
}


