
openai-kotlin
用 Kotlin 协程轻松调用 OpenAI,多平台一套代码搞定
项目预览
项目数据
项目介绍
Star 增长趋势
本站每日记录该项目 GitHub 星标变化,观测越久曲线越完整
数据来源:GitHub API 逐日快照 · 收录于 2026-08-09 · 当前星标 ★ 1851
使用教程
ℹ 本教程由 AI 依据该项目 README 整理,个别步骤可能需要按你的环境微调。
环境要求
- Kotlin 项目(Gradle 构建,多平台项目需 Gradle)
- JDK 运行环境(用于 JVM 端调用)
- 一个 OpenAI API Key
- 选择一个 Ktor HTTP 引擎并加入依赖
安装与启动步骤
-
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添加 Ktor 引擎
README 要求必须从 Ktor 的引擎中挑一个加入依赖,官方示例用的是 okhttp 引擎;不添加引擎则无法发起 HTTP 请求。
dependencies { runtimeOnly "io.ktor:ktor-client-okhttp" } -
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多平台项目放 commonMain
多平台工程中把 openai client 依赖加到 commonMain,并为每个目标平台分别选择并添加对应的 Ktor 引擎。
-
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发起 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.0 | 4.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
上一篇:OpenAIKit
同类项目推荐
langgraph-gen-py
开源
写规格,一键生成 LangGraph 工作流骨架
CLI to generate LangGraph stubs from a specification
npi
开源
给 AI Agent 装上百宝工具箱,开箱即用
Action library for AI Agent
python-ai-agent-frameworks-demos
开源
照着示例跑通多个 Python Agent 框架,快速接入 Azure OpenAI
A repository of examples using Python AI Agent frameworks that work with GitHub Mode···
CopilotKit
开源
App 里塞进智能助手,用户动嘴就能使唤
The Frontend Stack for Agents & Generative UI. React, Angular, Mobile, Slack, and mo···
omni
开源
给AI编程代理的终端降噪,省token不丢信息
The one place for the skills, keys and memory of every agent you use. Formerly OMNI.
agent-service-toolkit
开源
用 LangGraph 快速搭出带界面的 AI 智能体服务
Full toolkit for running an AI agent service built with LangGraph, FastAPI and Strea···
trpc-agent-go
开源
用 Go 快速构建生产级 AI Agent,支持图编排与 MCP 生态
A Go framework for building production agent systems with graph workflows, tools, me···
comfy-cli
开源
用命令行快速安装、运行和管理 ComfyUI,告别繁琐点击。
CLI for using ComfyUI
LLMTornado
开源
用 .NET 快速构建多智能体应用,内置 30+ 连接器开箱即用
The .NET library to build AI agents with 30+ built-in connectors.