Skip to main content

Unofficial 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

Latest Version: PyPI version

Official Client

Features

  • Asyncio based with Sync and Async Support with httpx

  • Supports all API endpoints

  • 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

  • Supports Local and Remote Cloud Object Storage File Handling Asyncronously through file-io

    • Supports S3: s3://bucket/path/to/file.txt

    • Supports GCS: gs://bucket/path/to/file.txt

    • Supports Minio: minio://bucket/path/to/file.txt

  • Supports limited cost tracking for Completions and Edits requests (when stream is not enabled)


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, CompletionResponse

# Environment variables should pick up the defaults
# however, you can also set them explicitly.

# `api_key` - Your OpenAI API key.                  Env: [`OPENAI_API_KEY`]
# `url` - The URL of the OpenAI API.                Env: [`OPENAI_URL`]
# `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` - The timeout in seconds to be used.    Env: [`OPENAI_TIMEOUT`]
# `max_retries` - The number of retries to be used. Env: [`OPENAI_MAX_RETRIES`]

OpenAI.configure(
    api_key = "sk-XXXX",
    organization = "org-XXXX",
    debug_enabled = False,
)

# Alternatively you can configure the settings through environment variables
# settings.configure(
#    api_key = "sk-XXXX",
#     organization = "org-XXXX",
# )


# [Sync] create a completion
# Results return a CompletionResult object
result: CompletionResponse = 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.text)

# print the number of choices returned
print(len(result))

# get the cost consumption for the request
print(result.consumption)

# [Async] create a completion
# All async methods are generally prefixed with `async_`

result: CompletionResponse = 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:

  • aiohttpx: Unified Async / Sync HTTP Client that wraps around httpx

    • httpx: Async / Sync HTTP Requests

    • lazyops: Provides numerous utility functions for working with Async / Sync code and data structures

  • pydantic: Type Support

  • file-io: Async Cloud-based File Storage I/O

  • backoff: Retries with Exponential Backoff

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

async_openai-0.0.21.tar.gz (30.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

async_openai-0.0.21-py3-none-any.whl (40.1 kB view details)

Uploaded Python 3

File details

Details for the file async_openai-0.0.21.tar.gz.

File metadata

  • Download URL: async_openai-0.0.21.tar.gz
  • Upload date:
  • Size: 30.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for async_openai-0.0.21.tar.gz
Algorithm Hash digest
SHA256 6357184faa0f7b16ba0b0da04f00f51a01211f0ebdb4ba42724b33d4f20d3d2e
MD5 7b444e02a223087b13aeaef9f089ca0f
BLAKE2b-256 483f2ceb22a9d5e4b42b784f03cf8e225170390c69c84ef9f474ce73671ff923

See more details on using hashes here.

File details

Details for the file async_openai-0.0.21-py3-none-any.whl.

File metadata

  • Download URL: async_openai-0.0.21-py3-none-any.whl
  • Upload date:
  • Size: 40.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.9.16

File hashes

Hashes for async_openai-0.0.21-py3-none-any.whl
Algorithm Hash digest
SHA256 329a1113c0edc19ab466d8428fa68ed87607af83278e98d5be1c1aeb58a818f8
MD5 33b22cd6f502e341ddf1cd6824d41fea
BLAKE2b-256 c571372a90c7345ae545115afa08997783a257d1764eb91f7ff4a44a6d269996

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page