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.6.tar.gz (111.9 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.6-py3-none-any.whl (123.5 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: paygent_sdk-4.9.6.tar.gz
  • Upload date:
  • Size: 111.9 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.6.tar.gz
Algorithm Hash digest
SHA256 4c5ef9428c87069a1d7b5ca2d427e5a1e36295d3443b6747b89c0c266a8b955f
MD5 92f9941252d2c7aad56801b1256477e1
BLAKE2b-256 7ac681db29d0b9d8b2e2fecf0593af0fa80f3b5435069645b421700b637d90cf

See more details on using hashes here.

File details

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

File metadata

  • Download URL: paygent_sdk-4.9.6-py3-none-any.whl
  • Upload date:
  • Size: 123.5 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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 642d2109fc14ae67608aa158178395bf491eb284ee98d65f122735525581fc67
MD5 3de491802da7a52f67ef78b9ba04a6d4
BLAKE2b-256 5268813500e57cbd7e969476aec8a7d549d14485504372962c1370d461a1f7d2

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