openai-java

官方 Java SDK,几行代码接入 OpenAI 接口

开源 🏷️完全免费 🔧 仅开源项目,无在线服务,需自行部署 开发框架 🍴 复刻 271 🐛 待处理 63 👀 关注 25
GitHub ↗
GitHub 星标 ★ 1557
维护状态 活跃
是否开源 开源
定价模式 🏷️完全免费 开源库免费使用,调用 API 需按 OpenAI 用量付费

项目预览

openai-java 项目界面预览图
图片来源:GitHub 官方仓库名片

项目数据

分类开发框架
开发团队openai
定价模式🏷️完全免费
价格说明开源库免费使用,调用 API 需按 OpenAI 用量付费
访问状态🔧 仅开源项目,无在线服务,需自行部署
是否开源是
开源协议Apache-2.0
主要语言Kotlin
GitHub 星标★ 1557
上线时间2024-10-31 00:00:00
代码更新2026-10-25
仓库体积55.3 MB
本站数据更新2026-10-26
维护状态活跃
收录时间2026-10-26
浏览次数0

项目介绍

openai-java 是 OpenAI 官方维护的 Java 客户端库,用 Kotlin 编写,面向 JVM 开发者提供调用 OpenAI API 的统一入口。它把 HTTP 请求、鉴权、重试、超时、分页、流式响应等底层细节封装成类型安全的 API,覆盖对话补全、嵌入、图像、音频、文件、微调、批处理等主要能力,并支持同步与异步调用。项目通过代码生成保持与官方 OpenAPI 规范同步,接口变更时能较快跟进,减少手写请求体与解析响应的重复劳动。对已有 Java/Kotlin 后端、需要把大模型能力嵌入业务系统的团队来说,它省去了自建 SDK 的维护成本,也便于统一错误处理和可观测性。整体定位是官方基础设施型依赖,适合作为企业 Java 技术栈接入 OpenAI 服务的标准组件。

Star 增长趋势

本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整

数据来源:GitHub API 逐日快照 · 收录于 2026-10-26 · 当前星标 ★ 1557

使用教程

难度:入门 约 10 分钟 部署方式:库/依赖 6 步

环境要求

  • Java 8 或更高版本
  • Gradle 或 Maven 构建工具
  • 一个可用的 OpenAI API Key
  • 能访问 https://api.openai.com/v1 的网络环境

安装与启动步骤

  1. 1添加 Gradle 依赖

    在 build.gradle.kts 的 dependencies 块中加入 SDK 坐标,重新同步项目即可下载依赖。

    implementation("com.openai:openai-java:4.91.0")
  2. 2或添加 Maven 依赖

    Maven 项目把 dependency 片段粘贴到 pom.xml 的 dependencies 中,版本号与仓库最新发布保持一致。

    
      com.openai
      openai-java
      4.91.0
    
  3. 3设置 API Key

    把密钥写入 OPENAI_API_KEY 环境变量,SDK 会通过 fromEnv() 自动读取,避免把密钥写进代码。

    export OPENAI_API_KEY=sk-xxxxxxxx
  4. 4创建客户端

    全局只创建一个 OpenAIClient,它内含连接池与线程池,多个实例反而浪费资源。

    OpenAIClient client = OpenAIOkHttpClient.fromEnv();
  5. 5调用 Responses API

    用 ResponseCreateParams 构建请求,指定 input 与 model,再通过 client.responses().create() 获取结果。

    ResponseCreateParams params = ResponseCreateParams.builder()
            .input("Say this is a test")
            .model(ChatModel.GPT_5_2)
            .build();
    Response response = client.responses().create(params);
  6. 6运行并验证

    编译运行程序,观察是否返回模型生成的文本;也可改用仓库示例目录中的完整示例代码。

    ./gradlew run

关键配置

配置项必填说明示例
apiKey否API 密钥,可用系统属性 openai.apiKey 或环境变量 OPENAI_API_KEY 传入sk-xxxxxxxx
adminApiKey否管理密钥,对应 openai.adminKey / OPENAI_ADMIN_KEYsk-admin-xxxxxxxx
organization否组织 ID,对应 openai.orgId / OPENAI_ORG_IDorg-xxxxxxxx
project否项目 ID,对应 openai.projectId / OPENAI_PROJECT_IDproj-xxxxxxxx
baseUrl是API 基础地址,对应 openai.baseUrl / OPENAI_BASE_URL,默认官方地址https://api.openai.com/v1
webhookSecret否Webhook 校验密钥,对应 openai.webhookSecret / OPENAI_WEBHOOK_SECRETwhsec-xxxxxxxx

如何确认成功

程序正常运行、无鉴权异常,并能打印出模型返回的文本内容,即表示依赖与配置生效。

常见问题

Q:不设置环境变量可以吗?

A:可以。用 OpenAIOkHttpClient.builder().apiKey("sk-xxxxxxxx").build() 直接传入密钥;也可以先用 fromEnv() 再用 setter 覆盖单个配置项。

Q:系统属性和环境变量哪个优先?

A:系统属性优先级高于环境变量,例如 -Dopenai.apiKey 会覆盖 OPENAI_API_KEY。

Q:需要给每个请求都创建客户端吗?

A:不需要。README 建议同一应用只创建一个客户端实例,共享连接池和线程池效率更高。

Q:如何临时修改某个配置?

A:在任意 client 或 service 上调用 withOptions(),例如 optionsBuilder.maxRetries(42),不会影响原客户端。

Q:对 JDK 版本有什么要求?

A:框架无关的 SDK 产物要求 Java 8 或更高;若要在本地构建仓库代码,需使用 gradle/version-support.properties 中 build.jdk 指定的开发 JDK。

注意事项

  • 系统属性优先于环境变量,配置冲突时以系统属性为准。
  • 同一应用内不要创建多个客户端,避免重复的连接池与线程池开销。
  • 完整可运行示例见仓库 openai-java-example 目录下 com.openai.example 包。
  • 本地构建仓库代码前先执行 ./scripts/check-env 与 ./scripts/lint 检查环境与代码风格。

核心亮点

  • OpenAI 官方维护,接口与 OpenAPI 规范同步更新,兼容性有保障
  • Kotlin 编写但完整支持 Java 调用,类型安全,IDE 补全和编译期检查友好
  • 内置重试、超时、流式响应、分页等通用能力,减少业务侧样板代码

不足之处

  • 仅覆盖 OpenAI 自家 API,切换其他模型厂商需另找 SDK 或自行适配
  • 版本迭代较快,升级时偶有破坏性变更,需要关注迁移说明

适用场景

  • Java 后端服务集成对话补全能力,做智能客服或知识问答
  • 企业批处理任务调用嵌入接口,构建向量检索与语义搜索
  • Spring 应用中异步调用图像、音频等多模态接口

替代项目

langchain4j、spring-ai、openai-java-sdk

上一篇:openai-go

下一篇:async-openai

同类项目推荐

markstream-vue 开源

让 AI 流式输出 Markdown 在多框架下流畅渲染,低延迟不卡顿

Multi-framework streaming Markdown renderers for AI apps: Vue/Nuxt, React/Next.js, S···

★ 3033 2026-08-09
liteflow 开源

像编排组件一样编排 AI Agent,轻松实现复杂流程。

Lightweight, fast, stable, programmable component-based rule engine — where AI Agen···

★ 3890 2026-08-09
bruno 开源

把 API 测试当代码管理,用 Git 搞定协作与版本追踪

Opensource IDE For Exploring and Testing API's (lightweight alternative to Postman/I···

★ 47836 2026-08-12
Turing.jl 开源

用几行 Julia 代码写概率模型,自动完成贝叶斯推断

Bayesian inference with probabilistic programming.

★ 2262 2026-10-25
open-autonomy 开源

用Python快速搭建可部署的去中心化自主智能体服务

A framework for the creation of autonomous agent services.

★ 130 2026-08-09
codex-multi-auth 开源

多账号一键切换,Codex 登录永不掉线

Codex CLI multi-account OAuth manager with account switching, health checks, runtime···

★ 555 2026-08-09
PaddleMIX 开源

飞桨多模态全家桶,一站式搞定图文理解与生成

Paddle Multimodal Integration and eXploration, supporting mainstream multi-modal tas···

★ 721 2026-08-09
prisma 开源

PHP 里一套接口调用多家多媒体大模型

Light-weight PHP package for integrating multi-media related Large Language Models (···

★ 239 2026-09-15
openai-agents-go 开源

用 Go 快速搭多智能体工作流,接 OpenAI 模型

A lightweight, powerful framework for multi-agent workflows in Go

★ 273 2026-10-13