跳到主要内容

Java调用大模型全景图

作为Java开发者,当你决定在项目中集成大模型能力时,第一个问题往往是:我该选哪个框架?

市面上的选择还真不少:可以自己用HTTP客户端硬撸,也可以用Spring AI这种官方框架,还有阿里云搞的Spring AI Alibaba,以及从Python圈子移植过来的LangChain4j。

这篇文章会把这几种方案掰开了揉碎了讲清楚,帮你做出明智的选择。

方案一:原生HTTP调用

最直接的方式,就是用Java的HTTP客户端直接请求大模型的API。来看个例子:

public class RawHttpCaller {

private static final String API_URL = "https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions";

public String chat(String message, String apiKey) throws Exception {
String requestBody = """
{
"model": "qwen-plus",
"messages": [
{"role": "system", "content": "你是一个有帮助的助手"},
{"role": "user", "content": "%s"}
]
}
""".formatted(message);

HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(API_URL))
.header("Content-Type", "application/json")
.header("Authorization", "Bearer " + apiKey)
.POST(HttpRequest.BodyPublishers.ofString(requestBody))
.build();

HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());

// 还需要解析JSON提取实际内容...
return parseResponse(response.body());
}
}

这种方式的问题在哪?

原生HTTP调用的弊端

第一,代码冗余度高。每次调用都要手动构建JSON请求体、设置Header、解析响应。如果项目中有十几个地方要调用大模型,这些样板代码会让你吐血。

第二,切换模型成本高。不同厂商的API格式不一样,OpenAI是一套、阿里云是一套、DeepSeek又是一套。今天用通义千问,明天老板说换成GPT-5,又得改一堆代码。

第三,高级功能难实现。流式输出、对话记忆、工具调用这些功能,用原生HTTP实现起来非常繁琐。

适用场景:学习理解大模型API原理,或者只有极简单的调用需求且不想引入额外依赖。

方案二:Spring AI

Spring AI是Spring官方推出的AI开发框架,目标是让Java开发者能用熟悉的Spring风格开发AI应用。

核心设计理念

Spring AI 设计哲学

Spring AI的设计哲学可以用三个词概括:统一抽象、开箱即用、可扩展性

它把各种大模型的API差异屏蔽掉了,你只需要面向统一的接口编程,底层对接的是OpenAI还是DeepSeek,代码基本不用改。

Spring AI 分层架构示意
Spring AI 分层架构示意

代码长什么样

用 Spring AI 实现同样的功能,代码量能可以直接砍半了:

付费内容提示

该文档的全部内容仅对「JavaUp项目实战&技术讲解」知识星球用户开放

加入星球后,你可以获得:

  • 超级八股文:100万+字的全栈技术知识库,涵盖技术核心、数据库、中间件、分布式等深度剖析的讲解
  • 讲解文档:超级AI智能体、黑马点评Plus、大麦、大麦pro、大麦AI、流量切换、数据中台的从0到1的详细文档
  • 讲解视频:超级AI智能体、黑马点评Plus、大麦、大麦pro、大麦AI、流量切换、数据中台的核心业务详细讲解
  • 1 对 1 解答:可以对我进行1对1的问题提问,而不仅仅只限于项目
  • 针对性服务:有没理解的地方,文档或者视频还没有讲到可以提出,本人会补充
  • 面试与简历指导:提供面试回答技巧,项目怎样写才能在简历中具有独特的亮点
  • 中间件环境:对于项目中需要使用的中间件,可直接替换成我提供的云环境
  • 面试后复盘:小伙伴去面试后,如果哪里被面试官问住了,可以再找我解答
  • 远程的解决:如果在启动项目遇到问题,本人可以帮你远程解决
进入星球后,即可享受上述所有服务,保证不会再有其他隐藏费用。
知识星球二维码

1. 打开微信 -> 扫描左侧二维码 -> 加入「JavaUp项目实战&技术讲解」知识星球

2. 查看星球使用指导,获取完整项目讲解资料索引

👉 点击解锁全部付费内容
🎁优惠