Slim Runner for batched OpenAI Requests
Project description
OpenAI Request Runner
A lightweight Python package designed to facilitate parallel processing of OpenAI API requests. This implementation is inspired by the OpenAI cookbook example but offers advanced customization capabilities and integration with OpenAI Functions (leaning on the great openai_function_call library). It ensures efficient and organized interactions with the OpenAI models. Features
- Parallel Processing: Handle multiple OpenAI API requests concurrently.
- Rate Limiting: Adheres to rate limits set by the OpenAI API.
- Advanced Customization: Allows for detailed input preprocessing and API response postprocessing.
- OpenAI Functions: Seamlessly integrates with OpenAI Functions for added capabilities.
- Error Handling: Efficiently manage and log errors, including rate limit errors.
- Extendable: Easily integrate with custom schemas and other extensions.
Installation
Using pip (wip)
pip install openai_request_runner
Git
pip install git@https://github.com/jphme/openai_request_runner
Using poetry
For local development and testing:
poetry install
Usage
Minimal example:
from openai_request_runner import run_openai_requests
example_input = [{"id": 0, "prompt": "What is 1+1?"}]
results = run_openai_requests(
example_input, system_prompt="Translate input to French"
)
#in a notebook env you need nest_asyncio, see below
print(results[0]["content"])
# "Qu'est-ce que 1+1 ?"
See examples/classify_languages.py
and examples/translate.py
for detailed examples of how to use the package for advanced usecases.
The package allows for extensive customization. You can set your desired preprocessing function, postprocessing function, and other parameters to suit your specific needs.
Refer to the inline documentation and docstrings in the code for detailed information on each function and its parameters.
Run inside a notbook
If you want to run openai_request_runner inside a notebook, use nest_asyncio
like this:
import nest_asyncio
nest_asyncio.apply()
Run Tests
poetry run pytest tests/
Contributing
Contributions are welcome! Please open an issue if you encounter any problems or would like to suggest enhancements. Pull requests are also appreciated.
License
MIT
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
Built Distribution
File details
Details for the file openai_request_runner-0.0.9.tar.gz
.
File metadata
- Download URL: openai_request_runner-0.0.9.tar.gz
- Upload date:
- Size: 11.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.0 CPython/3.10.13 Linux/6.2.0-1015-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | d8f0ea8005d2092448d12a6ef8659cd132eedfcea2fd2455714ee65af6c9de0f |
|
MD5 | 779a88a3ce1a24cee8b3ad749d5f842e |
|
BLAKE2b-256 | 846eda1d002645afb0acc4a382b0c2ff621be3a893a7be0ba4ac141f4f553cf2 |
File details
Details for the file openai_request_runner-0.0.9-py3-none-any.whl
.
File metadata
- Download URL: openai_request_runner-0.0.9-py3-none-any.whl
- Upload date:
- Size: 11.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.7.0 CPython/3.10.13 Linux/6.2.0-1015-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e222b1c6c4f64b6845034116ab0f33ab3153243bb7c4a536fe75fc36cb496709 |
|
MD5 | cdfac5be202069b21ec302de6c0acd57 |
|
BLAKE2b-256 | 9815877fb5381d46c5ace80a5666d6dde0bc974a1ae08344ace8991f455ee9ae |