A decorator for logging OpenAI API requests and responses.
Project description
hrai_python
A Python package designed to log and monitor interactions with OpenAI’s API, supporting both local and remote logging. It enables structured logging for OpenAI API calls and facilitates asynchronous remote logging for scalability.
Installation
Install the package using pip:
pip install hrai_python
Configuration
Initialize the logger with options for configuring the OpenAI client, logging preferences, and remote logging.
from hrai_python.hrai_logger import hrai_logger
# Initialize the Logger
logger_instance = hrai_logger(
client_attr_name='client', # Attribute name of the OpenAI client in your class
enable_remote=True, # Enable remote logging
enable_async=True, # Use asynchronous remote logging
return_type=hrai_logger.Return_Type.content_only
)
Basic Usage Example
import os
from openai import OpenAI
from dotenv import load_dotenv
from hrai_python.hrai_logger import hrai_logger
# Initialize the logger
logger = hrai_logger()
class GPTClient:
def __init__(self):
load_dotenv()
self.model = os.environ.get("OPENAI_MODEL")
self.client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))
@logger.readable
def basic_completion(self, messages):
completion = self.client.chat.completions.create(
model=self.model,
messages=messages
)
return completion
Configuration Options
hrai_logger
offers flexible configuration options:
- client_instance (Optional[openai.ChatCompletion]): OpenAI client instance if standalone.
- client_attr_name (Optional[str]): Attribute name of the OpenAI client in your class (
default: "client"
). - base_url (Optional[str]): Remote server URL for logging (
default: "https://api.humanreadable.ai/"
). - apikey (Optional[str]): API key for authenticating with the remote logging server.
- log_file (str): Log file name (
default: "hrai.log"
). - log_level (str): Logging level, e.g., "INFO", "DEBUG", "WARNING".
- log_format (Optional[str]): Log message format (
default: "%(asctime)s - %(levelname)s - %(message)s"
). - enable_remote (bool): Enable/disable remote logging (
default: True
). - enable_async (bool): Use asynchronous remote logging (
default: False
). - return_type (Return_Type): Format of the response from API calls (
default: content_only
).
Return Types
Return_Type
defines the format of responses from OpenAI API calls:
- content_only (1): Returns only the message content.
- json (2): Returns the response as a JSON object.
- openai_object (3): Returns the full OpenAI response object.
Utilities with hrai_utils
Tool Creation
hrai_utils.create_tool
helps build tool structures for OpenAI function calls.
from hrai_python.hrai_utils import hrai_utils
# Define tool properties
name = "my_tool"
description = "This is a tool that does something"
properties = {
"answer": "The answer to the tool",
"request": "The request to the tool"
}
# Create a tool dictionary
my_tool = hrai_utils.create_tool(name, description, properties)
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 hrai_python-0.3.3.tar.gz
.
File metadata
- Download URL: hrai_python-0.3.3.tar.gz
- Upload date:
- Size: 8.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.13.0 Darwin/23.5.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2338bd6b2e9b3da8c2103f2f69de4cb7c055635579194f83190ea48217f41ec |
|
MD5 | 0bb74cb2fd8fd0063ec87e4b61750abd |
|
BLAKE2b-256 | aea7ac8b256d36fc770722d1aa1bc97163283e6bceeaf984c1d4e6f4b44689f5 |
File details
Details for the file hrai_python-0.3.3-py3-none-any.whl
.
File metadata
- Download URL: hrai_python-0.3.3-py3-none-any.whl
- Upload date:
- Size: 9.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.13.0 Darwin/23.5.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1bc895943d9fe4e5acf9f7e2151fd705499efc19e57dc5e28af294fab5c9b7c0 |
|
MD5 | 4c01fb49f1b32f8c1ec7603466201ac6 |
|
BLAKE2b-256 | cab1a98aab737959590295ea3163486934aea8e326b12069d560d30dd1510b73 |