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 相关的项目,欢迎评论区交流。

相关推荐
captain3764 小时前
MyBatis(入门5)其他查询操作
java·数据库·spring boot·mybatis
Novproxy_Z5 小时前
商用代理避坑:如何识别商家拿机房 IP 冒充住宅 IP
java·网络·tcp/ip
文丑颜不良啊5 小时前
LeetCode1481~1500题目解析
java·leetcode
2601_962885725 小时前
quotes 字段全解:涨跌幅、振幅、换手率的口径与单位
java·前端·spring
前端精髓6 小时前
调用openrouter的免费API模型
java·前端·javascript
步行cgn6 小时前
Spring MVC 拦截器 Interceptor 详解:从执行流程到实战应用
java·spring·mvc
文丑颜不良啊6 小时前
LeetCode1381~1400题目解析
java·leetcode
开开心心_Every6 小时前
快速隐藏程序工具自定义快捷键一键切换
java·开发语言·前端·spring·智能手机·word·intellij-idea
萧瑟余晖7 小时前
Spring Batch核心模型与快速上手详解
java·spring·batch
缓慢更新7 小时前
AI 辅助生成单测:从接口定义到用例的流水线
java·服务器·前端·网络·数据库·人工智能