Async Python client library for the OpenAI API
Project description
async-openai
Unofficial Async Python client library for the OpenAI API based on Documented Specs
Features
-
Asyncio based with Sync and Async Support with
httpx
-
Supports all API endpoints
-
[Images] (https://beta.openai.com/docs/api-reference/images)
-
[Search]
-
Strongly typed validation of requests and responses with
Pydantic
Models with transparent access to the raw response and object-based results. -
Handles Retries automatically through
backoff
-
Enables Remote Cloud Object Storage File Handling through
file-io
Installation
# Install from stable
pip install async-openai
# Install from dev/latest
pip install git+https://github.com/GrowthEngineAI/async-openai.git
Quick Usage
import asyncio
from async_openai import OpenAI, settings
# Environment variables should pick up the defaults
# however, you can also set them explicitly.
# `api_key` - Your OpenAI API key. Env: [`OPENAI_API_KEY`]
# `api_base` - The base URL of the OpenAI API. Env: [`OPENAI_API_BASE`]
# `api_type` - The OpenAI API type. Env: [`OPENAI_API_TYPE`]
# `api_version` - The OpenAI API version. Env: [`OPENAI_API_VERSION`]
# `organization` - The OpenAI organization. Env: [`OPENAI_ORGANIZATION`]
# `proxies` - A dictionary of proxies to be used. Env: [`OPENAI_PROXIES`]
# `timeout_secs` - The timeout in seconds to be used. Env: [`OPENAI_TIMEOUT_SECS`]
# `max_retries` - The number of retries to be used. Env: [`OPENAI_MAX_RETRIES`]
settings.configure(
api_key = "sk-XXXX",
organization = "org-XXXX",
)
# [Sync] create a completion
# Results return a CompletionResult object
result = OpenAI.completions.create(
prompt = 'say this is a test',
max_tokens = 4,
stream = True
)
# print the completion text
# which are concatenated together from the result['choices'][n]['text']
print(result.completion_text)
# print the number of choices returned
print(len(result))
# [Async] create a completion
# All async methods are generally prefixed with `async_`
result = asyncio.run(
OpenAI.completions.async_create(
prompt = 'say this is a test',
max_tokens = 4,
stream = True
)
)
Alternative Usage
Following a similar pattern to the original openai python project, you can additionally use the methods as a drop-in replacement for most functions
import asyncio
import async_openapi as openai
# Environment variables should pick up the defaults
# however, you can also set them explicitly.
openai.settings.configure(
api_key = "sk-XXXX",
organization = "org-XXXX",
)
# [Sync] create a completion
# Results return a CompletionResult object
# Note, the only difference in this method is that the `Completion` is capitalized to match the OpenAI API
result = openai.Completions.create(
prompt = 'say this is a test',
max_tokens = 4,
stream = True
)
# print the completion text
# which are concatenated together from the result['choices'][n]['text']
print(result.completion_text)
# print the number of choices returned
print(len(result))
# [Async] create a completion
result = asyncio.run(
openai.Completions.async_create(
prompt = 'say this is a test',
max_tokens = 4,
stream = True
)
)
Dependencies
The aim of this library is to be as lightweight as possible. It is built on top of the following libraries:
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for async_openai-0.0.2-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 38e2b60bb0771a06fef861b95ca4a58bb899be100a84704b15c2d3b06deafce3 |
|
MD5 | 74bb78ec54242ab2caad1b59df6f9257 |
|
BLAKE2b-256 | 14e78affb3092a87f982cb90b94bec60a2b7ff07cfad83d29186c0cf9bc7aa35 |