Skip to main content

Official Python SDK for Paygent - Track AI usage and costs across multiple providers (OpenAI, Anthropic, Google, DeepSeek, etc.)

Project description

Paygent SDK for Python

A Python SDK for integrating with the Paygent API to track usage and costs for AI models automatically.

Installation

pip install paygent-sdk

Usage

1. Automatic Tracking (Recommended)

Paygent can automatically track usage for popular LLM clients using monkeypatching. This is the easiest way to integrate Paygent into your application. Just call paygent_sdk.init() at the start of your application.

import os
import paygent_sdk
from openai import OpenAI

# Initialize Paygent and automatically instrument all supported providers
paygent_sdk.init(api_key="your-paygent-api-key")

# Normal OpenAI usage (or Anthropic, Gemini, etc.)
client = OpenAI(api_key="your-openai-api-key")

# Just add paygent_* kwargs to your standard calls!
# These are automatically extracted and not sent to the provider.
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Hello!"}],
    
    # Tracking parameters
    paygent_agent_id="my-agent-123",
    paygent_customer_id="customer-456",
    paygent_indicator="chat-interaction"
)

print(f"Response: {response.choices[0].message.content}")
# Cost and tokens are automatically tracked in the background!

Supported Providers (Automatic)

Paygent automatically tracks calls from:

  • OpenAI (chat.completions, completions, embeddings)
  • Anthropic (messages)
  • Google Gemini (generate_content)
  • Mistral AI, Cohere, Groq, Together AI, Ollama, LiteLLM
  • LangChain & LangGraph
  • CrewAI

2. Manual Tracking

If you prefer to send usage data manually, or if you are using a provider not yet supported by automatic tracking, you can use the Client directly.

import logging
from paygent_sdk import Client, UsageData

# Create a new client
client = Client.new_client("your-paygent-api-key")

# Define usage data
usage_data = UsageData(
    model="gpt-4o",
    prompt_tokens=100,
    completion_tokens=50,
    total_tokens=150
)

# Send usage data
try:
    client.send_usage("agent-123", "customer-456", "manual-tracking", usage_data)
    print("Usage data sent successfully!")
except Exception as e:
    print(f"Failed to send usage: {e}")

Tracking with Prompt/Output Strings

If you don't have token counts, Paygent can calculate them for you:

from paygent_sdk import UsageDataWithStrings

usage_data = UsageDataWithStrings(
    service_provider="OpenAI",
    model="gpt-4o",
    prompt_string="What is the capital of France?",
    output_string="The capital of France is Paris."
)

client.send_usage_with_token_string("agent-123", "customer-456", "qa-event", usage_data)

Model Constants

The SDK provides constants for all supported models and service providers:

from paygent_sdk import OpenAIModels, ServiceProvider

usage_data = UsageData(
    service_provider=ServiceProvider.OPENAI,
    model=OpenAIModels.GPT_4O,
    prompt_tokens=1000,
    completion_tokens=500
)

Available constants for: OpenAI, Anthropic, Google Gemini (DeepMind), Meta (Llama), Mistral, Cohere, DeepSeek, AWS, and more.

API Reference

Global Functions

paygent_sdk.init(api_key: str)

Initializes the SDK and enables automatic tracking (monkeypatching) for all supported LLM providers.

Client Methods

Client.new_client(api_key: str) -> Client

Creates a manual tracking client.

send_usage(agent_id: str, customer_id: str, indicator: str, usage_data: UsageData)

Sends pre-calculated usage data.

send_usage_with_token_string(agent_id: str, customer_id: str, indicator: str, usage_data: UsageDataWithStrings)

Sends usage based on strings; Paygent counts tokens and calculates costs.

Data Models

UsageData

Field Type Description
model str Model identifier
prompt_tokens int Input tokens
completion_tokens int Output tokens
total_tokens int Optional total (defaults to prompt + completion)
cached_tokens int Optional cached tokens

UsageDataWithStrings

Field Type Description
service_provider str Provider (e.g., "OpenAI")
model str Model identifier
prompt_string str The input text
output_string str The generated text

Development

Running Tests

python -m pytest tests/

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

paygent_sdk-4.9.2.tar.gz (99.2 kB view details)

Uploaded Source

Built Distribution

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

paygent_sdk-4.9.2-py3-none-any.whl (110.7 kB view details)

Uploaded Python 3

File details

Details for the file paygent_sdk-4.9.2.tar.gz.

File metadata

  • Download URL: paygent_sdk-4.9.2.tar.gz
  • Upload date:
  • Size: 99.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for paygent_sdk-4.9.2.tar.gz
Algorithm Hash digest
SHA256 f8ace34a3198cbec3b73b2dffbed7ae6e556eeb4e97203f32e13eb47b41e6ddb
MD5 8732bea172848feac7e3c9750c06977a
BLAKE2b-256 cba0a3ff9b0a2588865b1c75227af1a0cbf3d9f2c00b7e7e512e15d927971932

See more details on using hashes here.

File details

Details for the file paygent_sdk-4.9.2-py3-none-any.whl.

File metadata

  • Download URL: paygent_sdk-4.9.2-py3-none-any.whl
  • Upload date:
  • Size: 110.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for paygent_sdk-4.9.2-py3-none-any.whl
Algorithm Hash digest
SHA256 962be868f64815655374a889ec85b42e7ed0b7f0250406227ac09c2e872434f0
MD5 cb9841594b9c252f8cdc3a39d185c001
BLAKE2b-256 ab925eca25b837e526a7082c2c507376d689458deca362109fdbcc3ae48729c0

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