OpenAI API使用教程:快速接入AI能力(新手友好版)
大家好!我是一名从培训班出来的前端开发,现在也在带一些刚入门的同学。最近很多小伙伴问我:“能不能用AI帮我们做点实际的东西?比如自动写文案、分析用户反馈之类的?”——这其实完全可行!而最直接的方式,就是调用 OpenAI API。
我当初学的时候,也以为“调用AI”是大厂工程师才能干的事,结果发现:只要你会写几行代码,就能把GPT的能力集成到自己的项目里!今天这篇教程,就手把手带你从零开始,用 Spring Boot 接入 OpenAI API,做一个能回答问题的小应用。全程不用懂复杂的算法,只要会基础 Java 就行!
✅ 本教程关键词覆盖:运营、Spring Boot、教程、实战经验
一、OpenAI API 是什么?能用来做什么?
简单说,OpenAI API 就是一个“AI服务接口”。你发一段文字过去,它就能返回一段智能生成的文字回来。
常见应用场景(尤其适合运营同学!):
- 自动生成商品描述、营销文案
- 回答用户常见问题(客服机器人)
- 分析用户评论情感倾向
- 给文章起标题、写摘要
- 生成测试数据(比如模拟用户留言)
🎯 对于运营人员来说,哪怕不会写代码,也可以让开发同事帮你接一个简单的页面,输入需求,AI自动生成内容,效率翻倍!
二、环境准备:5分钟搞定开发环境
1. 注册 OpenAI 账号并获取 API Key
- 访问 https://platform.openai.com/
- 登录或注册账号(需绑定信用卡,但新用户有免费额度)
- 进入 API Keys 页面 → 点击 Create new secret key
- 复制生成的密钥(像
sk-xxxxxx这样的字符串),不要泄露!
⚠️ 新手注意:API Key 相当于你的“AI通行证”,一旦泄露别人可以用你的额度,记得保存好!
2. 安装开发工具
你需要以下工具(都是免费的):
- JDK 17(Java 开发工具包)
- Maven(项目依赖管理)
- IDEA 或 VS Code(代码编辑器)
- Postman(测试 API 用,可选)
💡 我当初学 Spring Boot 时,连 JDK 版本都搞错,结果跑不起来。记住:用 JDK 17 最稳妥!
3. 创建 Spring Boot 项目
访问 https://start.spring.io/,按如下配置:
| 配置项 | 值 |
|---|---|
| Project | Maven |
| Language | Java |
| Spring Boot | 3.2.x(最新稳定版) |
| Group | com.example |
| Artifact | openai-demo |
| Dependencies | Spring Web, Lombok |
点击 Generate 下载 ZIP 包,解压后用 IDEA 打开即可。
三、核心概念:用大白话讲清楚
1. 什么是 “调用 API”?
想象你去餐厅点菜:
- 你(程序)告诉服务员(OpenAI 服务器):“我要一份宫保鸡丁”
- 厨房做好后,服务员把菜端给你
调用 API 就是“点菜”:你发请求(request),AI 返回结果(response)。
2. 关键参数说明
调用 OpenAI 时,主要传这几个东西:
| 参数名 | 说明 | 示例值 |
|---|---|---|
model |
使用哪个 AI 模型 | gpt-3.5-turbo |
messages |
对话内容(角色 + 内容) | [{"role":"user","content":"你好"}] |
temperature |
创意程度(0~2) | 0.7(默认值) |
🔍
messages是重点!它是个数组,每条消息有role(角色)和content(内容)。
role: "user"表示用户说的话role: "assistant"表示 AI 的回答role: "system"可以设定 AI 的行为(比如“你是一个客服”)
四、实战项目:用 Spring Boot 接入 OpenAI
我们要做一个简单的接口:用户输入问题,后端调用 OpenAI,返回答案。
步骤 1:添加 HTTP 客户端依赖
在 pom.xml 中加入 OkHttp(用于发送 HTTP 请求):
<dependency>
<groupId>com.squareup.okhttp3</groupId>
<artifactId>okhttp</artifactId>
<version>4.12.0</version>
</dependency>
步骤 2:配置 API Key
在 application.yml 中添加:
openai:
api-key: sk-你的密钥放这里
model: gpt-3.5-turbo
🔐 安全提示:不要把 API Key 提交到 Git! 实际项目中建议用环境变量:
openai: api-key: ${OPENAI_API_KEY}
步骤 3:创建请求/响应的数据类
// OpenAiRequest.java
@Data
public class OpenAiRequest {
private String model = "gpt-3.5-turbo";
private List<Message> messages;
private double temperature = 0.7;
@Data
public static class Message {
private String role;
private String content;
}
}
// OpenAiResponse.java
@Data
public class OpenAiResponse {
private List<Choice> choices;
@Data
public static class Choice {
private Message message;
}
@Data
public static class Message {
private String role;
private String content;
}
}
步骤 4:编写调用 OpenAI 的 Service
@Service
@RequiredArgsConstructor
public class OpenAiService {
private final OkHttpClient httpClient = new OkHttpClient();
@Value("${openai.api-key}")
private String apiKey;
@Value("${openai.model}")
private String model;
public String ask(String question) {
// 1. 构造请求体
OpenAiRequest request = new OpenAiRequest();
OpenAiRequest.Message userMessage = new OpenAiRequest.Message();
userMessage.setRole("user");
userMessage.setContent(question);
request.setMessages(List.of(userMessage));
// 2. 转成 JSON
ObjectMapper mapper = new ObjectMapper();
String jsonBody;
try {
jsonBody = mapper.writeValueAsString(request);
} catch (Exception e) {
throw new RuntimeException("JSON序列化失败", e);
}
// 3. 发送 POST 请求
Request httpRequest = new Request.Builder()
.url("https://api.openai.com/v1/chat/completions")
.addHeader("Authorization", "Bearer " + apiKey)
.addHeader("Content-Type", "application/json")
.post(RequestBody.create(jsonBody, MediaType.get("application/json")))
.build();
try (Response response = httpClient.newCall(httpRequest).execute()) {
if (!response.isSuccessful()) {
throw new RuntimeException("OpenAI API 调用失败: " + response.code());
}
String responseBody = response.body().string();
OpenAiResponse aiResponse = mapper.readValue(responseBody, OpenAiResponse.class);
return aiResponse.getChoices().get(0).getMessage().getContent();
} catch (Exception e) {
throw new RuntimeException("调用 OpenAI 出错", e);
}
}
}
步骤 5:创建 Controller 接口
@RestController
@RequiredArgsConstructor
public class AiController {
private final OpenAiService openAiService;
@PostMapping("/ask")
public ResponseEntity<String> ask(@RequestBody Map<String, String> request) {
String question = request.get("question");
if (question == null || question.trim().isEmpty()) {
return ResponseEntity.badRequest().body("问题不能为空");
}
String answer = openAiService.ask(question);
return ResponseEntity.ok(answer);
}
}
步骤 6:启动项目并测试
- 运行 Spring Boot 应用
- 用 Postman 或 curl 发送请求:
curl -X POST http://localhost:8080/ask \
-H "Content-Type: application/json" \
-d '{"question":"你好,请介绍一下你自己"}'
✅ 如果一切顺利,你会收到类似这样的回复:
“你好!我是由 OpenAI 开发的语言模型……”
🎉 恭喜!你已经成功把 AI 能力接入自己的项目了!
五、新手常见问题 & 解决方案
| 问题现象 | 可能原因 | 解决方案 |
|---|---|---|
401 Unauthorized |
API Key 错误或过期 | 检查 application.yml 中的 key 是否正确 |
429 Too Many Requests |
免费额度用完或请求太频繁 | 等待重置,或升级付费套餐 |
| 返回空内容或乱码 | JSON 解析错误 | 检查 ObjectMapper 是否正确处理了响应 |
| 项目启动报错 | JDK 版本不对 | 确保使用 JDK 17 |
| 中文显示乱码 | 编码问题 | 在 OkHttpClient 中显式设置 UTF-8 |
💡 我当初第一次调用时,忘了加
Bearer前缀(注意有个空格!),一直 401,折腾了半小时……
六、学习建议 & 下一步方向
✅ 你可以尝试的进阶功能:
- 增加对话历史:把之前的问答存下来,实现多轮对话
- 添加系统提示词:比如
你是一个电商运营专家,请用简洁语言回答 - 限流与缓存:避免重复提问消耗额度
- 前端页面:用 Vue/React 做个聊天界面,真正给运营同学用!
📚 推荐学习路径:
- 先掌握 RESTful API 设计
- 学习 Spring Boot 异常处理 & 日志
- 了解 API 安全(如 JWT、CORS)
- 尝试集成 数据库,保存用户对话记录
最后说一句:别怕犯错。我当初连 Maven 依赖都不会加,现在都能带项目了。只要你动手写代码,就离“会”不远了!
希望这篇《OpenAI API 使用教程》能帮你迈出 AI 开发的第一步。如果你是运营同学,不妨把这篇文章转给你们的开发,一起做个提效小工具!
有任何问题,欢迎留言交流。下期我们讲:如何用 AI 自动生成商品详情页? 敬请期待!

评论 0