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.3.tar.gz (99.6 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.3-py3-none-any.whl (111.2 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: paygent_sdk-4.9.3.tar.gz
  • Upload date:
  • Size: 99.6 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.3.tar.gz
Algorithm Hash digest
SHA256 6e49450be178a148f50f682e61030c4a3c2f74ae43ba2e934652675842cc26b6
MD5 25cea687ffccca66221fe75d0ffddc73
BLAKE2b-256 d89322fcc521718d404e96e0818ded04587588628b987c9e266d86c2e0c7716d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: paygent_sdk-4.9.3-py3-none-any.whl
  • Upload date:
  • Size: 111.2 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 a87410cf264a5988a66b216ab1762e1780f4c3f0fdff87ae82e1ee175d1151d8
MD5 644d3dee60e2d5e94d7c467a5bc9afa1
BLAKE2b-256 10e2de98f5a016b93450514cb41e757e6ded5592ec6b8153638e25adeb4334c7

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