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.8.0.tar.gz (76.3 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.8.0-py3-none-any.whl (83.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: paygent_sdk-4.8.0.tar.gz
  • Upload date:
  • Size: 76.3 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.8.0.tar.gz
Algorithm Hash digest
SHA256 843dad484cf59801eaece16226f5ec32b8b72679b84ee24b0b8e15cdca227c87
MD5 d951a7ddbd22684a759bfa9d1c69f4af
BLAKE2b-256 007c65e52bbf88a25e342efbc0f7a0a25e869fed22ef9dcaec1f73fbe2b23a87

See more details on using hashes here.

File details

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

File metadata

  • Download URL: paygent_sdk-4.8.0-py3-none-any.whl
  • Upload date:
  • Size: 83.9 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.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f5b6d05221b57daeb75ce0058a35def8e16d15137e9ec6b1413e62cdecac9064
MD5 e7a1e69a1c1f75810973775284b90206
BLAKE2b-256 2852c1a0894e7535ec7ce3d40a8cef364207f65e977ad79a23c23f11f83002ae

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