OpenAI 接口协议 & 大模型Java调用 核心总结
一、核心协议认知
-
行业通用标准
OpenAI Chat Completions 接口是大模型API通用规范,国内DeepSeek、通义千问、SiliconFlow 等平台全部兼容,一套代码适配全平台 ,切换模型仅修改
baseURL与API Key。 -
请求核心结构
model:指定调用模型messages:核心对话数组,三大角色system:设定模型身份、规则、约束(RAG核心,限制回答范围)user:用户提问内容assistant:模型历史回答,用于实现多轮上下文
- 通用参数:
temperature控制随机性、max_tokens限制输出长度、stream开关流式返回
- 响应核心结构
choices:模型回答主体,普通模式取message.contentusage:统计输入/输出/总Token,用于计费监控finish_reason:标识结束状态(stop正常、length截断)
二、SiliconFlow 平台要点
- 国内可直连、新用户免费额度、低成本,适配Java开发
- 核心模型:对话
Qwen/Qwen3-32B、向量bge-m3、重排bge-reranker-v2-m3 - 鉴权方式:请求头
Authorization: Bearer 密钥
三、两种调用模式(Java 实现)
1. 非流式调用(stream=false)
- 特性:一次性返回完整响应、代码简单、调试友好
- 适用:后台任务、批量处理、RAG向量生成、重排任务
- 技术:普通Http同步请求,直接解析完整JSON
2. 流式调用(stream=true)
- 底层:基于SSE服务端长推送协议
- 特性:逐字增量输出、首延迟低、打字机交互体验
- 适用:前端实时对话、用户直接交互场景
- 关键:解析
delta增量内容、拼接完整文本、捕获[DONE]结束标记
四、Java 技术栈
- 网络:OkHttp(自定义超时,适配大模型慢响应)
- 序列化:Gson 手动构建/解析JSON
- 统一流程:组装请求体→发起Post请求→解析响应数据
五、关键区别与选型
| 维度 | 非流式 | 流式 |
|---|---|---|
| 数据返回 | 全量一次性 | 分段持续推送 |
| 开发难度 | 低 | 较高(SSE逐行解析) |
| 应用场景 | 后台业务、批量计算 | 前端对话、实时交互 |
六、核心实战要点
- 大模型无原生记忆,多轮对话必须手动拼接完整messages历史
system提示词是控制模型行为的关键,也是RAG问答的核心手段- 开发优先使用非流式调试,上线用户端再改为流式
- 流式接口多数不返回Token统计,业务计费优先非流式
七、后续铺垫
所有RAG模块(问答、向量化、结果重排)均基于该OpenAI统一协议开发,请求、解析逻辑完全复用。