Skip to main content

Hivetrace SDK for monitoring LLM applications

Project description

Hivetrace SDK

Description Hivetrace SDK is designed for integration with the Hivetrace service, providing monitoring of user prompts and LLM responses.

Installation Install the SDK via pip:

pip install hivetrace

Usage

from hivetrace.hivetrace import HivetraceSDK

Synchronous and Asynchronous Modes

Hivetrace SDK supports both synchronous and asynchronous execution modes.

Initialization with Sync/Async Mode

By default, the SDK operates in asynchronous mode. You can explicitly specify the mode during initialization:

# Async mode (default)
hivetrace = HivetraceSDK(async_mode=True)

# Sync mode
hivetrace = HivetraceSDK(async_mode=False)

Send a user prompt

# Async mode
response = hivetrace.input_async(
    application_id="your-application-id", # get after registering the application in the UI
    message="User prompt here"
)
# Sync mode
response = hivetrace.input(
    application_id="your-application-id", # get after registering the application in the UI
    message="User prompt here"
)

Send a response from your LLM

# Async mode
response = hivetrace.output_async(
    application_id="your-application-id", # get after registering the application in the UI
    message="LLM response here"
)
# Sync mode
response = hivetrace.output(
    application_id="your-application-id", # get after registering the application in the UI
    message="LLM response here"
)

Example with additional parameters

response = hivetrace.input(
    application_id="your-application-id", 
    message="User prompt here",
    additional_parameters={
        "session_id": "your-session-id",
        "user_id": "your-user-id",
        "agents": {
            "agent-1-id": {"name": "Agent 1", "description": "Agent description"},
            "agent-2-id": {"name": "Agent 2"},
            "agent-3-id": {}
        }
    }
)

session_id, user_id, agent_id - must be a valid UUID

API

input(application_id: str, message: str, additional_parameters: dict = None) -> dict

Sends a user prompt to Hivetrace.

  • application_id - Application identifier (must be a valid UUID, created in the UI)
  • message - User prompt
  • additional_parameters - Dictionary of additional parameters (optional)

Response Example:

{
    "status": "processed",
    "monitoring_result": {
        "is_toxic": false,
        "type_of_violation": "benign",
        "token_count": 9,
        "token_usage_warning": false,
        "token_usage_unbounded": false
    }
}

output(application_id: str, message: str, additional_parameters: dict = None) -> dict

Sends an LLM response to Hivetrace.

  • application_id - Application identifier (must be a valid UUID, created in the UI)
  • message - LLM response
  • additional_parameters - Dictionary of additional parameters (optional)

Response Example:

{
    "status": "processed",
    "monitoring_result": {
        "is_toxic": false,
        "type_of_violation": "safe",
        "token_count": 21,
        "token_usage_warning": false,
        "token_usage_unbounded": false
    }
}

Sending Requests in Async Mode

When using async mode, you can send requests asynchronously:

import asyncio

async def main():
    hivetrace = HivetraceSDK(async_mode=True)
    response = await hivetrace.input_async(
        application_id="your-application-id", # get after registering the application in the UI
        message="User prompt here"
    )
    await hivetrace.close()

asyncio.run(main())

Sending Requests in Sync Mode

If you prefer synchronous execution, you can send requests normally:

def main():
    hivetrace = HivetraceSDK(async_mode=False)
    response = hivetrace.input(
        application_id="your-application-id", # get after registering the application in the UI
        message="User prompt here"
    )

main()

Closing the Async Client

When using async mode, remember to close the session when done:

await hivetrace.close()

Configuration

The SDK loads configuration from environment variables. The allowed domain (HIVETRACE_URL) and API token (HIVETRACE_ACCESS_TOKEN) are automatically retrieved from the environment.

Configuration Sources

Hivetrace SDK can retrieve the configuration from the following sources:

.env File:

HIVETRACE_URL=https://your-hivetrace-instance.com
HIVETRACE_ACCESS_TOKEN=your-access-token # get in the UI (API Tokens page)

The SDK will automatically load this.

License

This project is licensed under the Apache License 2.0.

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

hivetrace-1.2.7.tar.gz (12.1 kB view details)

Uploaded Source

Built Distribution

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

hivetrace-1.2.7-py3-none-any.whl (19.1 kB view details)

Uploaded Python 3

File details

Details for the file hivetrace-1.2.7.tar.gz.

File metadata

  • Download URL: hivetrace-1.2.7.tar.gz
  • Upload date:
  • Size: 12.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.10

File hashes

Hashes for hivetrace-1.2.7.tar.gz
Algorithm Hash digest
SHA256 9d444c59a034f3e9c06a9493f5f3ef39128a2723d0c520b9bc70ed36b88219ad
MD5 27dbf83be977d0e22aa5784fcda08448
BLAKE2b-256 f2429d2ab3dd1adbd1b46d8cb7655866560b2b9698db34771eeef0216991fc4e

See more details on using hashes here.

File details

Details for the file hivetrace-1.2.7-py3-none-any.whl.

File metadata

  • Download URL: hivetrace-1.2.7-py3-none-any.whl
  • Upload date:
  • Size: 19.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.8.10

File hashes

Hashes for hivetrace-1.2.7-py3-none-any.whl
Algorithm Hash digest
SHA256 67db47fa31db8157fcfd09bc271648634f97f3c3fcfe1f9294b8e4b40d9b45eb
MD5 5ba2ba91adebdf8a0a8599c6a10d27e1
BLAKE2b-256 c64f04d82b93cefff31d7831da93f23904e9d9ce4592d4321fa48771115ce2d0

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