Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Aallam/openai-kotlin
OpenAI API client for Kotlin with multiplatform and coroutines capabilities.
https://github.com/Aallam/openai-kotlin
api chatgpt client coroutines dall-e gpt kotlin llm multiplatform openai whisper
Last synced: 3 months ago
JSON representation
OpenAI API client for Kotlin with multiplatform and coroutines capabilities.
- Host: GitHub
- URL: https://github.com/Aallam/openai-kotlin
- Owner: aallam
- License: mit
- Created: 2021-03-06T19:45:05.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-07-22T20:23:45.000Z (4 months ago)
- Last Synced: 2024-08-01T19:46:06.823Z (3 months ago)
- Topics: api, chatgpt, client, coroutines, dall-e, gpt, kotlin, llm, multiplatform, openai, whisper
- Language: Kotlin
- Homepage:
- Size: 12 MB
- Stars: 1,385
- Watchers: 31
- Forks: 159
- Open Issues: 34
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE.md
Awesome Lists containing this project
- kmp-awesome - openai-kotlin - OpenAI SDK (Libraries / 𧊠Service SDK)
README
# OpenAI API client for Kotlin
[![Maven Central](https://img.shields.io/maven-central/v/com.aallam.openai/openai-client?color=blue&label=Download)](https://central.sonatype.com/namespace/com.aallam.openai)
[![License](https://img.shields.io/github/license/Aallam/openai-kotlin?color=yellow)](LICENSE.md)
[![Documentation](https://img.shields.io/badge/docs-api-a97bff.svg?logo=kotlin)](https://mouaad.aallam.com/openai-kotlin/)Kotlin client for [OpenAI's API](https://beta.openai.com/docs/api-reference) with multiplatform and coroutines
capabilities.## đĻ Setup
1. Install OpenAI API Kotlin client by adding the following dependency to your `build.gradle` file:
```groovy
repositories {
mavenCentral()
}dependencies {
implementation "com.aallam.openai:openai-client:3.8.2"
}
```2. Choose and add to your dependencies one of [Ktor's engines](https://ktor.io/docs/http-client-engines.html).
#### BOM
Alternatively, you can use [openai-client-bom](/openai-client-bom) by adding the following dependency to your `build.gradle` file
```groovy
dependencies {
// import Kotlin API client BOM
implementation platform('com.aallam.openai:openai-client-bom:3.8.2')// define dependencies without versions
implementation 'com.aallam.openai:openai-client'
runtimeOnly 'io.ktor:ktor-client-okhttp'
}
```### Multiplatform
In multiplatform projects, add openai client dependency to `commonMain`, and choose
an [engine](https://ktor.io/docs/http-client-engines.html) for each target.### Maven
Gradle is required for multiplatform support, but there's nothing stopping you from using the jvm client in a Maven
project. You still need to add to your dependencies one
of [Ktor's engines](https://ktor.io/docs/http-client-engines.html).Setup the client with maven
```xml
com.aallam.openai
openai-client-jvm
3.8.0
io.ktor
ktor-client-okhttp-jvm
2.3.2
runtime
```
The BOM is not supported for Maven projects.
## âĄī¸ Getting Started
> [!NOTE]
> OpenAI encourages using environment variables for the API key.
> [Read more](https://help.openai.com/en/articles/5112595-best-practices-for-api-key-safety).Create an instance of `OpenAI` client:
```kotlin
val openai = OpenAI(
token = "your-api-key",
timeout = Timeout(socket = 60.seconds),
// additional configurations...
)
```Or you can create an instance of `OpenAI` using a pre-configured `OpenAIConfig`:
```kotlin
val config = OpenAIConfig(
token = apiKey,
timeout = Timeout(socket = 60.seconds),
// additional configurations...
)val openAI = OpenAI(config)
```Use your `OpenAI` instance to make API requests. [Learn more](guides/GettingStarted.md).
### Supported features
- [Models](guides/GettingStarted.md#models)
- [Chat](guides/GettingStarted.md#chat)
- [Images](guides/GettingStarted.md#images)
- [Embeddings](guides/GettingStarted.md#embeddings)
- [Files](guides/GettingStarted.md#files)
- [Fine-tuning](guides/GettingStarted.md#fine-tuning)
- [Moderations](guides/GettingStarted.md#moderations)
- [Audio](guides/GettingStarted.md#audio)#### Beta
- [Assistants](guides/GettingStarted.md#assistants)
- [Threads](guides/GettingStarted.md#threads)
- [Messages](guides/GettingStarted.md#messages)
- [Runs](guides/GettingStarted.md#runs)#### Deprecated
- [Completions](guides/GettingStarted.md#completions)
- [Fine-tunes](guides/GettingStarted.md#fine-tunes)
- [Edits](guides/GettingStarted.md#edits)*Looking for a tokenizer? Try [ktoken](https://github.com/aallam/ktoken), a Kotlin library for tokenizing text.*
## đ Guides
Get started and understand more about how to use OpenAI API client for Kotlin with these guides:
- [Getting Started](guides/GettingStarted.md)
- [Chat & Function Call](guides/ChatToolCalls.md)
- [FileSource Guide](guides/FileSource.md)
- [Assistants](guides/Assistants.md)## âšī¸ Sample apps
Sample apps are available under `sample`, please check the [README](sample/README.md) for running instructions.
## đ ProGuard / R8
The specific rules are [already bundled](openai-core/src/jvmMain/resources/META-INF/proguard/openai.pro) into the Jar which can be interpreted by R8 automatically.
## đ¸ Snapshots
[![Snapshot](https://img.shields.io/badge/dynamic/xml?url=https://oss.sonatype.org/service/local/repositories/snapshots/content/com/aallam/openai/openai-client/maven-metadata.xml&label=snapshot&color=red&query=.//versioning/latest)](https://oss.sonatype.org/content/repositories/snapshots/com/aallam/openai/openai-client/)
Learn how to import snapshot version
To import snapshot versions into your project, add the following code snippet to your gradle file:
```groovy
repositories {
//...
maven { url 'https://oss.sonatype.org/content/repositories/snapshots/' }
}
```## đ ī¸ Troubleshooting
For common issues and their solutions, check the [Troubleshooting Guide](TROUBLESHOOTING.md).
## âī¸ Support
Appreciate the project? Here's how you can help:
1. **Star**: Give it a star at the top right. It means a lot!
2. **Contribute**: Found an issue or have a feature idea? Submit a PR.
3. **Feedback**: Have suggestions? Open an issue or start a discussion.## đ License
OpenAI Kotlin API Client is an open-sourced software licensed under the [MIT license](LICENSE.md).
**This is an unofficial library, it is not affiliated with nor endorsed by OpenAI**. Contributions are welcome.