Skip to main content

Python SDK for AI Cost Guard — track, analyze, and optimize your AI/LLM API costs

Project description

AI Cost Guard — Python SDK

Track, analyze, and optimize your AI/LLM API costs with a single line of code. Supports 50+ models from OpenAI, Anthropic, Google Gemini, Cohere, Mistral, and more.

PyPI version Python Downloads License: MIT

Why AI Cost Guard?

Problem Solution
💸 Surprise AI bills at month end Real-time cost tracking with budget alerts
🔍 Can't tell which features cost most Per-feature & per-user cost breakdowns
📊 No visibility into token usage Automatic token counting & analytics
🤝 Works only with one provider Universal support for OpenAI, Anthropic, Gemini, Cohere, Mistral

Installation

pip install ai-cost-guard-sdk

Before You Start — Get Your Free API Key

You cannot use this SDK without an API key. The key tells the server which project to save your cost data into. Getting one is free and takes less than 2 minutes.

Step 1 — Create a Free Account

Go to https://aicostguard.com and click the "Get Started" button (top-right corner).

Fill in:

  • Your name
  • Your email address
  • A password

Click "Sign Up". You land on your dashboard automatically.

Step 2 — Create a Project

A project is a container for one app. One project = one API key = one set of cost data in your dashboard.

  1. You are now on the Dashboard: https://aicostguard.com/dashboard
  2. Click "Projects" in the left sidebar
  3. Click the "New Project" button (top-right of the page)
  4. Fill in:
    • Project Name — e.g. My Chatbot App
    • Description — e.g. Tracks GPT-4o costs for my support bot
  5. Click "Create Project"
  6. Your new project card appears on the Projects page

Step 3 — Copy Your API Key

  1. On your project card, click the "API Keys" button
  2. You will see a default API key that looks like:
    acg_live_abc123def456ghi789...
    
  3. Click "Copy" to copy it to your clipboard
  4. Keep it safe — treat it like a password

💡 Tip: Click "Generate New Key" at any time to get a fresh key.


Quick Start

from ai_cost_guard import AICostGuard

guard = AICostGuard(api_key="acg_live_your_key_here")

# Track any AI API call
guard.track(
    provider="openai",
    model="gpt-4",
    input_tokens=500,
    output_tokens=150,
    latency_ms=1200,
    feature="chat",
)

# Provider-specific helpers
import openai
response = openai.chat.completions.create(model="gpt-4", messages=[...])
guard.track_openai(model=response.model, usage=response.usage)

# Don't forget to flush on shutdown
guard.shutdown()

Provider Helpers

OpenAI

guard.track_openai(model="gpt-4", usage=response.usage, feature="chat")

Anthropic

guard.track_anthropic(model="claude-3-opus", usage=response.usage, feature="analysis")

Google Gemini

guard.track_gemini(model="gemini-pro", usage=response.usage_metadata, feature="search")

Cohere

guard.track_cohere(model="command-r-plus", usage=response.meta.billed_units, feature="rag")

Configuration

guard = AICostGuard(
    api_key="acg_live_...",
    api_url="https://api.aicostguard.com/api/v1",  # Custom API URL
    debug=True,                    # Enable debug logging
    batch_events=True,             # Batch events (default: True)
    batch_interval_ms=5000,        # Batch flush interval (default: 5000ms)
    max_batch_size=50,             # Max events per batch (default: 50)
    max_retries=3,                 # Max retry attempts (default: 3)
    max_events_per_second=100,     # Rate limit (default: 100)
    default_feature="my-app",      # Default feature tag
)

Context Manager Support

from ai_cost_guard import AICostGuard

# Automatically flushes and shuts down on exit
with AICostGuard(api_key="acg_live_...") as guard:
    guard.track(provider="openai", model="gpt-4o", input_tokens=500, output_tokens=100)

Async Support

import asyncio
from ai_cost_guard import AsyncAICostGuard

async def main():
    guard = AsyncAICostGuard(api_key="acg_live_...")

    await guard.track(
        provider="openai",
        model="gpt-4o",
        input_tokens=1000,
        output_tokens=200,
        feature="async-chatbot",
    )

    await guard.shutdown()

asyncio.run(main())

FastAPI Integration

from fastapi import FastAPI
from ai_cost_guard import AICostGuard

app = FastAPI()
guard = AICostGuard(api_key="acg_live_...")

@app.post("/chat")
async def chat(prompt: str):
    import openai
    response = openai.chat.completions.create(
        model="gpt-4o",
        messages=[{"role": "user", "content": prompt}],
    )

    guard.track_openai(model=response.model, usage=response.usage, feature="chat-api")
    return {"reply": response.choices[0].message.content}

@app.on_event("shutdown")
def shutdown():
    guard.shutdown()

Django Integration

# settings.py
from ai_cost_guard import AICostGuard
AI_GUARD = AICostGuard(api_key="acg_live_...")

# views.py
from django.conf import settings

def chat_view(request):
    response = openai.chat.completions.create(model="gpt-4o", messages=[...])
    settings.AI_GUARD.track_openai(model=response.model, usage=response.usage, feature="django-chat")
    return JsonResponse({"reply": response.choices[0].message.content})

Supported Models (50+)

Provider Models
OpenAI GPT-4o, GPT-4o mini, GPT-4 Turbo, GPT-4, GPT-3.5, o3, o3-mini, o1, o1-mini
Anthropic Claude 3.5 Sonnet, Claude 3 Opus, Claude 3 Haiku, Claude 3 Sonnet
Google Gemini 1.5 Pro, Gemini 1.5 Flash, Gemini 1.0 Pro
Cohere Command R+, Command R, Command, Embed
Mistral Large, Medium, Small, Tiny

Ecosystem

Links

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

ai_cost_guard_sdk-1.0.1.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

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

ai_cost_guard_sdk-1.0.1-py3-none-any.whl (9.2 kB view details)

Uploaded Python 3

File details

Details for the file ai_cost_guard_sdk-1.0.1.tar.gz.

File metadata

  • Download URL: ai_cost_guard_sdk-1.0.1.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for ai_cost_guard_sdk-1.0.1.tar.gz
Algorithm Hash digest
SHA256 1d29b7610c0513632dba0db39d4d39929d7a3a22bc7fba6811ebc943dabeae5b
MD5 324ba9a30ea267fbede531d9cc33b8b1
BLAKE2b-256 68e9073bc8f014cf8c5099a24da3c488a3352c40e12e15fddf9bd474cfac0b6e

See more details on using hashes here.

File details

Details for the file ai_cost_guard_sdk-1.0.1-py3-none-any.whl.

File metadata

File hashes

Hashes for ai_cost_guard_sdk-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 7a64b2e87bbe04804e0b0231b4333e88f5462e6194cc570e907745404ae12084
MD5 8b9d448124604a21ae343a962832b968
BLAKE2b-256 afcce9bc6374d59e24bab7e511ba225af0885128667b87996e011e9e6aac5c21

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