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

相关推荐
咖啡八杯43 分钟前
GoF设计模式——解释器模式
java·后端·spring·设计模式
优橙教育1 小时前
5G网优培训 vs Java开发:转行选哪个?
java·开发语言·5g
糖果店的幽灵1 小时前
【DeepAgents 从入门到精通】Context Management 上下文管理
java·人工智能·后端·spring·中间件·langgraph·deepagents
腻害兔3 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:字典、短信、邮件、通知——后台系统的“基础设施四件套“!
java·前端·vue.js·产品经理·ai编程
碎光拾影3 小时前
ARM交叉工具链各工具作用及IMX6ULL平台LED+蜂鸣器裸机程序实现
java·开发语言·数据库
Miao121314 小时前
微服务 API 测试实践:海外某民宿平台如何构建模式驱动测试基础设施
java·开发语言
腻害兔4 小时前
【若依项目-产品经理视角】RuoYi-Vue-Pro 源码拆解:支付模块 yudao-module-pay,一个让产品经理都看懂的支付中台设计
java·前端·vue.js·产品经理·ai编程
CRMEB系统商城5 小时前
开源自建还是SaaS订阅?算一笔3年经济账
java·大数据·开发语言·开源
keyipatience6 小时前
线程栈与TLS和线程互斥
java·linux·服务器·开发语言·ubuntu
weixin_408099677 小时前
2026 图片去水印 API 接口完全指南:一键去除图片水印(附 Python/Java/PHP/C# 示例)
java·python·php·图片处理·api调用·图片去水印·石榴智能