openai-kotlin

用 Kotlin 协程轻松调用 OpenAI,多平台一套代码搞定

openai-kotlin 是一个基于 Kotlin 的 OpenAI API 客户端,支持多平台(Kotlin Multiplatform)和协程(Coroutines)。它解决了 Kotlin 开发者无法使用官方 OpenAI SDK 的问题,提供了类型安全、异步非阻塞的 API 调用方式。核心能力包括:封装了 GPT、DALL-E、Whisper 等模型接口,支持文本生成、图像生成、语音转文字等任务;利用协程实现高效并发请求,并支持挂起函数,简化异步编程;通过多平台支持,可在 JVM、Android、iOS、macOS 等平台复用代码。项目结构清晰,API 设计贴近 Kotlin 惯用风格,适合 Kotlin 生态中的 LLM 应用开发。

开源 free 对话助手
访问官网 ↗ GitHub ↗ 文档 ↗
GitHub 星标 ★ 1847
维护状态 低维护
是否开源 是
定价模式 free

项目数据

分类对话助手
开发团队aallam
所属国家
官网地址
定价模式free
价格说明开源MIT协议,本地部署使用,无在线服务,完全免费。
访问状态
是否开源是
开源协议MIT
主要语言Kotlin
技术栈/模型api,chatgpt,client,coroutines,dall-e,gpt,kotlin,llm,multiplatform,openai,whisper
GitHub 星标★ 1847
30天Star增速
HF 下载量
上线时间2021-03-06 00:00:00
最近更新2026-09-22 00:00:00
维护状态低维护
中文支持
访问方式
移动端支持
综合评分
收录时间2026-08-09
浏览次数5

使用教程

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

环境要求

  • Kotlin 项目(Gradle 构建,多平台项目需 Gradle)
  • JDK 运行环境(用于 JVM 端调用)
  • 一个 OpenAI API Key
  • 选择一个 Ktor HTTP 引擎并加入依赖

安装与启动步骤

  1. 1添加客户端依赖

    在 build.gradle 的 repositories 中加入 mavenCentral(),并在 dependencies 里声明 openai-client 依赖,版本按 README 为 4.1.0。

    repositories {
        mavenCentral()
    }
    
    dependencies {
        implementation "com.aallam.openai:openai-client:4.1.0"
    }
  2. 2添加 Ktor 引擎

    README 要求必须从 Ktor 的引擎中挑一个加入依赖,官方示例用的是 okhttp 引擎;不添加引擎则无法发起 HTTP 请求。

    dependencies {
        runtimeOnly "io.ktor:ktor-client-okhttp"
    }
  3. 3或用 BOM 管理版本

    替代方案:引入 openai-client-bom 平台依赖后,其余依赖可不写版本号,便于统一版本管理。

    dependencies {
        implementation platform('com.aallam.openai:openai-client-bom:4.1.0')
        implementation 'com.aallam.openai:openai-client'
        runtimeOnly 'io.ktor:ktor-client-okhttp'
    }
  4. 4多平台项目放 commonMain

    多平台工程中把 openai client 依赖加到 commonMain,并为每个目标平台分别选择并添加对应的 Ktor 引擎。

  5. 5创建 OpenAI 实例

    用 API Key 创建 OpenAI 客户端,可同时配置超时等参数;也可先用 OpenAIConfig 配置好再传给 OpenAI。

    val openai = OpenAI(
        token = "your-api-key",
        timeout = Timeout(socket = 60.seconds),
        // additional configurations...
    )
    
    // 或使用预配置的 OpenAIConfig
    val config = OpenAIConfig(
        token = apiKey,
        timeout = Timeout(socket = 60.seconds),
    )
    
    val openAI = OpenAI(config)
  6. 6发起 API 请求

    用创建好的 OpenAI 实例调用接口,例如文本生成、图像生成、语音转文字等,具体用法见 README 链接的 GettingStarted 指南。

关键配置

配置项必填说明示例
token是OpenAI API Key,用于鉴权,创建客户端时必须提供"your-api-key"
timeout.socket否Socket 超时时间,README 示例为 60 秒Timeout(socket = 60.seconds)
openai-client 版本是依赖版本号,README 中为 4.1.04.1.0

如何确认成功

Gradle 同步依赖无报错,代码能成功构建出 OpenAI 实例并调用接口返回结果、不抛鉴权或网络异常即可。

常见问题

Q:必须使用 Gradle 吗?

A:多平台支持必须用 Gradle;JVM 客户端也可以在 Maven 项目中使用,但同样需要额外添加一个 Ktor 引擎依赖。

Q:为什么还要单独加 Ktor 引擎?

A:客户端本身不绑定具体 HTTP 引擎,README 要求从 Ktor 提供的引擎中选择一个加入依赖,否则请求无法发出。

Q:依赖写在哪里?

A:多平台项目把 openai client 依赖加到 commonMain,并为每个目标平台分别添加对应的 Ktor 引擎。

Q:API Key 怎么保存更安全?

A:README 提示 OpenAI 鼓励使用环境变量存放 API Key,而不是硬编码在代码里。

Q:用 BOM 有什么好处?

A:引入 openai-client-bom 作为 platform 后,其余依赖不必写版本号,版本由 BOM 统一决定。

注意事项

  • 本教程所有命令与配置均来自 README 节选,Maven 部分原文被截断,未给出完整示例。
  • README 未指定 Ktor 引擎的具体版本号与 JDK 版本,请按自己项目实际情况选择。
  • README 未提供完整可运行的调用示例,具体接口用法需参考仓库中的 guides/GettingStarted.md。

核心亮点

  • 原生 Kotlin 协程支持,异步调用简洁高效
  • 多平台覆盖 JVM/Android/iOS,减少跨平台重复开发
  • API 类型安全,编译期检查参数,降低运行时错误

不足之处

  • 文档和示例相对较少,上手需参考源码
  • 社区规模较小,问题反馈和更新速度待观察

适用场景

  • Kotlin 后端服务集成 GPT 对话能力
  • Android 应用内实现 AI 聊天或图像生成
  • 跨平台 Kotlin 项目统一调用 OpenAI 服务

替代项目

openai-java、chatgpt-java、OpenAI-Kotlin-Client

项目介绍

openai-kotlin 是开发框架领域的开源项目,由 aallam 开发,2021 年首次发布。

在全站 13,090 个收录项目中,它的 GitHub 星标数(1,847)位列前 30%,在开发框架分类中处于中上游。

项目已超过三个月没有代码更新,维护节奏明显放缓,最近一次代码更新于 2026-09-22。开源MIT协议,本地部署使用,无在线服务,完全免费。

它主要面向的使用场景是:Kotlin后端服务集成GPT对话能力。同类可对比的替代方案包括 openai-java、chatgpt-java、OpenAI-Kotlin-Client。

上一篇:OpenAIKit

下一篇:ai-agents-laravel

同类项目推荐

langchain 开源

组装 AI 应用的乐高积木,从想法到上线不换工具

The agent engineering platform.

★ 146874 2026-08-09
transformers 开源

全球最大的模型仓库全家桶,想用的模型一把抓

Transformers: the model-definition framework for state-of-the-art machine learning m···

★ 166529 2026-08-09
pi 开源

一套 TypeScript 工具包,快速搭出能写代码的 AI agent

AI agent toolkit: unified LLM API, agent loop, TUI, coding agent CLI

★ 108504 2026-09-12