A simple tracker for OpenAI API calls for Pype App
Project description
pypeprompts
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:
- Visit pypeai.com and log in to your account.
- Create a project.
- 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:
-
Set up environment variables:
export PYPE_PROJECT_TOKEN=your_development_token export PYPE_ENV=development
-
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
promptIdfor 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 toFalseto 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
eee7c38847983d89e771d336fbf8fec1987732dc93ef448c16cd55d890e19647
|
|
| MD5 |
927bddc7fd43e501c7786046bdf80014
|
|
| BLAKE2b-256 |
775334393091640cb676ab9f865d5cec435e8b744c612eb680f065b8af7d4d2f
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1fc70f1847d57f37d7d3aa523f8d08c0b44431363e40d4da97de9622c9529370
|
|
| MD5 |
7a034643df7c0eaae7d2e6b2720fffd7
|
|
| BLAKE2b-256 |
b21343929e179aa65c31a588e39baa9237697d2b537ca2da8d98354640565510
|