Java开发者接入大模型API实战:从0到聊天机器人

前言

最近在研究AI副业,发现一个有意思的事:很多开发者想接入大模型,但不知道从哪下手。网上教程大多是 Python 的,Java 的很少。

作为一个 Java 后端,我花了一个周末把 Spring Boot + 大模型 API 的完整链路跑通了,顺便写了个能跑的聊天机器人。今天把过程分享出来,希望能帮到同样用 Java 的朋友。

技术选型

  • 后端框架: Spring Boot 3.x
  • HTTP 客户端: OkHttp
  • 大模型 API: 以 OpenAI 兼容格式为例
  • 前端: 简单的 HTML + JS

第一步:获取 API Key

国内开发者推荐:

第二步:核心代码

配置类

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");
        }
    }
}

踩坑记录

  1. 超时问题 --- 大模型响应慢,readTimeout 建议 120 秒以上
  2. Token 计算 --- 中文大概 1 字 = 1-2 token,注意控制 context 长度
  3. 流式输出编码 --- SSE 返回 UTF-8,确保响应头编码正确

总结

  1. Java 接入大模型 API 不难,核心就是 HTTP 调用
  2. 注意超时、token、流式输出几个坑
  3. 跑通基础链路后,接入各平台只是套壳
  4. 这个技能可以直接变现

如果你也在用 Java 做 AI 相关的项目,欢迎评论区交流。

相关推荐
Flynt20 分钟前
OpenJDK禁AI代码半年了,现在执行得怎么样?答案是:全靠自觉
java·开源·ai编程
古法安卓5 小时前
Android-日志系统源码解析
android·java·android studio
小夏coding7 小时前
从"一把梭"到"精妙拆解" —— 滑动窗口计时框架的设计演进
java·后端
MacroZheng8 小时前
同事问我:"Claude Code经常失忆,不怕它把项目搞炸?",我:"怕,三个Markdown文件给它装个永不丢失的外置大脑!"
java·人工智能·后端
十年Java程序媛9 小时前
深度实战:JDK21 虚拟线程 + HikariCP 生产正确配比、坑点、监控全套
java·spring boot
xiaoqiMikko9 小时前
有人在搜一个不存在的 Tomcat 版本
java·tomcat
用户31268748772013 小时前
ConcurrentHashMap 怎么保证线程安全?从分段锁到 CAS+synchronized
java
vipxieliang13 小时前
ValidX vs Apache Commons Validator:功能与性能对比
java·spring boot
SimonKing13 小时前
升级Spring Boot 4后,从 Jackson 2 到 3,到底有哪些变化
java·后端·程序员
吃饱了得干活13 小时前
一篇讲清楚Spring Boot:自动装配、启动器、过滤器、拦截器、设计模式
java·spring boot·后端