Skip to main content

A simple tracker for OpenAI API calls for Pype App

Project description

pypeprompts

PyPI version Python Versions Downloads

A Python SDK for tracking and sending analytics data to Pype App.

Important Notice

This package is designed to send data to Pype App, a SaaS application. By using this package, you agree to the terms of service of Pype App. Please ensure you have the necessary rights and permissions to send this data.

Installation

For Production Use (PyPI Package)

You can install pypeprompts using pip:

pip install --upgrade pypeprompts

Or if you prefer using Poetry:

poetry add pypeprompts

For Development Use

If you're developing or contributing to pypeprompts, clone the repository and install it in editable mode:

git clone https://github.com/yourusername/pypeprompts.git
cd pypeprompts
poetry install

This will install the package in editable mode, allowing you to make changes to the code and immediately see the effects without reinstalling.

Requirements

  • Python 3.8.1 or higher

Obtaining Your Project Token

To use pypeprompts, you'll need a project token. This token is used to authenticate your requests and associate the analytics data with your account. You can obtain your project token by following these steps:

  1. Visit pypeai.com and log in to your account.
  2. Create a project.
  3. Click on Publish to generate the token.

If you encounter any issues or need assistance obtaining your project token, please contact dhruv@pypeai.com

Usage

Here's a quick example of how to use pypeprompts:

from pypeprompts import PromptAnalyticsTracker

# Initialize the tracker with your project token from pypeai.com
tracker = PromptAnalyticsTracker(project_token="your_project_token")

# Track an event and get the promptId
prompt_id = tracker.track("workflow_name", {
    "prompt": "Your input prompt",
    "output": "Generated output",
    "processingTime": 1.5,
    "tags": ["tag1", "tag2"],
    "attributes": {"key": "value"}
})
print(f"Prompt ID: {prompt_id}")

# Async tracking
import asyncio

async def async_track():
    prompt_id = await tracker.track_async("async_workflow", {
        "prompt": "Async input prompt",
        "output": "Async generated output",
        "processingTime": 0.8,
        "tags": ["async", "example"],
        "attributes": {"async_key": "async_value"}
    })
    print(f"Async Prompt ID: {prompt_id}")

asyncio.run(async_track())

Access Prompt Versions

You can use the accessPromptVersions method to retrieve prompt versions.

Get the Latest Prompt Version

prompt_text = tracker.accessPromptVersions()
print(prompt_text)

Get Specific Prompt Version

prompt_text = tracker.accessPromptVersions(version=2)
print(prompt_text)

Development Server Usage

When using pypeprompts in a development environment:

  1. Set up environment variables:

    export PYPE_PROJECT_TOKEN=your_development_token
    export PYPE_ENV=development
    
  2. In your development code:

    import os
    from pypeprompts import PromptAnalyticsTracker
    
    tracker = PromptAnalyticsTracker(
        project_token=os.getenv('PYPE_PROJECT_TOKEN'),
        enabled=os.getenv('PYPE_ENV') == 'development'
    )
    
    # Use tracker as normal...
    

This setup allows you to easily switch between development and production environments by changing the PYPE_ENV variable.

Features

  • Simple API for tracking and sending analytics data to Pype App
  • Synchronous and asynchronous tracking methods
  • Returns a unique promptId for each tracked event
  • Customizable logging
  • Error handling and reporting
  • Development mode for testing without affecting production data

Configuration

You can configure the PromptAnalyticsTracker with the following parameters:

  • project_token (required): Your project token for authentication (obtained from pypeai.com)
  • enabled (optional): Set to False to disable tracking (default: True)

Error Handling

The package uses a custom PromptAnalyticsError for error handling. Make sure to catch this exception in your code for proper error management.

Logging

pypeprompts uses Python's built-in logging module. Logs are written to both a file (prompt_analytics.log) and the console. You can adjust the log level as needed.

Data Privacy and Security

This package sends data to Pype App. Please ensure you comply with all applicable data protection laws and regulations when using this package. Do not send sensitive or personal information unless you have the necessary permissions and security measures in place.

Contributing

We welcome contributions! Please see our Contributing Guide for more details on how to get started.

License

This project is proprietary software. All rights reserved. You are granted a limited license to use this software in conjunction with Pype App services, subject to the terms of service of Pype App.

Support

If you encounter any problems or have any questions, please open an issue on the GitHub repository or contact the author at dhruv@pypeai.com.

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

pypeprompts-0.0.8.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

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

pypeprompts-0.0.8-py3-none-any.whl (7.0 kB view details)

Uploaded Python 3

File details

Details for the file pypeprompts-0.0.8.tar.gz.

File metadata

  • Download URL: pypeprompts-0.0.8.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.13.1 Darwin/24.2.0

File hashes

Hashes for pypeprompts-0.0.8.tar.gz
Algorithm Hash digest
SHA256 eee7c38847983d89e771d336fbf8fec1987732dc93ef448c16cd55d890e19647
MD5 927bddc7fd43e501c7786046bdf80014
BLAKE2b-256 775334393091640cb676ab9f865d5cec435e8b744c612eb680f065b8af7d4d2f

See more details on using hashes here.

File details

Details for the file pypeprompts-0.0.8-py3-none-any.whl.

File metadata

  • Download URL: pypeprompts-0.0.8-py3-none-any.whl
  • Upload date:
  • Size: 7.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.5 CPython/3.13.1 Darwin/24.2.0

File hashes

Hashes for pypeprompts-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 1fc70f1847d57f37d7d3aa523f8d08c0b44431363e40d4da97de9622c9529370
MD5 7a034643df7c0eaae7d2e6b2720fffd7
BLAKE2b-256 b21343929e179aa65c31a588e39baa9237697d2b537ca2da8d98354640565510

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