前言
最近在研究AI副业,发现一个有意思的事:很多开发者想接入大模型,但不知道从哪下手。网上教程大多是 Python 的,Java 的很少。
作为一个 Java 后端,我花了一个周末把 Spring Boot + 大模型 API 的完整链路跑通了,顺便写了个能跑的聊天机器人。今天把过程分享出来,希望能帮到同样用 Java 的朋友。
技术选型
- 后端框架: Spring Boot 3.x
- HTTP 客户端: OkHttp
- 大模型 API: 以 OpenAI 兼容格式为例
- 前端: 简单的 HTML + JS
第一步:获取 API Key
国内开发者推荐:
- 通义千问: dashscope.console.aliyun.com --- 有免费额度
- DeepSeek: platform.deepseek.com --- 价格便宜
第二步:核心代码
配置类
java
@Data
@Component
@ConfigurationProperties(prefix = "ai")
public class AiConfig {
private String apiKey;
private String baseUrl = "https://api.openai.com/v1";
private String model = "gpt-3.5-turbo";
}
聊天服务
java
@Service
public class ChatService {
@Autowired
private AiConfig aiConfig;
public String chat(String userMessage) {
JSONObject body = new JSONObject();
body.put("model", aiConfig.getModel());
body.put("messages", JSONArray.of(
JSONObject.of("role", "user", "content", userMessage)
));
Request request = new Request.Builder()
.url(aiConfig.getBaseUrl() + "/chat/completions")
.addHeader("Authorization", "Bearer " + aiConfig.getApiKey())
.post(RequestBody.create(body.toJSONString(), MediaType.parse("application/json")))
.build();
try (Response response = client.newCall(request).execute()) {
JSONObject json = JSON.parseObject(response.body().string());
return json.getJSONArray("choices")
.getJSONObject(0).getJSONObject("message").getString("content");
}
}
}
踩坑记录
- 超时问题 --- 大模型响应慢,readTimeout 建议 120 秒以上
- Token 计算 --- 中文大概 1 字 = 1-2 token,注意控制 context 长度
- 流式输出编码 --- SSE 返回 UTF-8,确保响应头编码正确
总结
- Java 接入大模型 API 不难,核心就是 HTTP 调用
- 注意超时、token、流式输出几个坑
- 跑通基础链路后,接入各平台只是套壳
- 这个技能可以直接变现
如果你也在用 Java 做 AI 相关的项目,欢迎评论区交流。