Skip to main content

A custom wrapper for the OpenAI Python package with modified response handling

Project description

custom-openai

A robust, user-friendly wrapper for the OpenAI Python package, featuring simplified response formatting and explicit error handling.

Features

  • Clean and consistent responses: Always get predictable output from your completions.
  • Automatic error handling: Exceptions are caught and returned in a structured way.
  • Async and sync support: Use the API in both synchronous and asynchronous Python projects.

Installation

pip install custom-openai

Usage

Synchronous

from custom_openai import CustomOpenAIClient

client = CustomOpenAIClient(api_key="your-api-key")
response = client.chat_completions_create(
    model="gpt-4",
    messages=[{"role": "user", "content": "Hello!"}],
    max_tokens=100
)
if response["success"]:
    print(response["content"])
else:
    print("Error:", response["error_type"], response["error_message"])

Asynchronous

import asyncio
from custom_openai import CustomAsyncOpenAIClient

async def main():
    client = CustomAsyncOpenAIClient(api_key="your-api-key")
    response = await client.chat_completions_create(
        model="gpt-4",
        messages=[{"role": "user", "content": "Hello!"}],
        max_tokens=100
    )
    if response["success"]:
        print(response["content"])
    else:
        print("Error:", response["error_type"], response["error_message"])

asyncio.run(main())

Response Format

All responses follow the same structure:

{
    "success": True, # or False if there was an error
    "text": "...", # model output (only if success)
    "model": "...", # model used
    "usage": {
        "prompt_tokens": ...,
        "completion_tokens": ...,
        "total_tokens": ...
    },
    "finish_reason": "...", # reason for completion
    # Error fields (only present if success is False):
    "error_type": "...",
    "error_message": "..."
}

License

MIT License

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

fq_test_release-0.2.0.tar.gz (3.7 kB view details)

Uploaded Source

Built Distribution

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

fq_test_release-0.2.0-py3-none-any.whl (4.2 kB view details)

Uploaded Python 3

File details

Details for the file fq_test_release-0.2.0.tar.gz.

File metadata

  • Download URL: fq_test_release-0.2.0.tar.gz
  • Upload date:
  • Size: 3.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for fq_test_release-0.2.0.tar.gz
Algorithm Hash digest
SHA256 bec2d5ca0ba696029f585d6be927f31ff0e76d9dc0e7d389c84bdd3da1f307a3
MD5 6191b26fbb9cb158706e0b4b90880b05
BLAKE2b-256 b1daa2c4199154eda09d4e1bf3dd634dd0a0e65bd892b954f750f604cc3fef7b

See more details on using hashes here.

File details

Details for the file fq_test_release-0.2.0-py3-none-any.whl.

File metadata

File hashes

Hashes for fq_test_release-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 df321ff115c05a3b080913892c963713b512c49fdfc702baffb94a594248a1ef
MD5 4d17b079a533612593907df322db3bf0
BLAKE2b-256 e6a0924160722228aaa9477d7ab5c1b3bbd46fe41b947fd7c964a4d0f9e77f3c

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