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.2.tar.gz (13.1 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.2-py3-none-any.whl (9.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: ai_cost_guard_sdk-1.0.2.tar.gz
  • Upload date:
  • Size: 13.1 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.2.tar.gz
Algorithm Hash digest
SHA256 ea81dff58085a4297c3674276f8724f283d2c6e9b3b76b1918bc70c7a30b1544
MD5 a3c1ad22980de82c5536fccaaa34e60d
BLAKE2b-256 f01f707fc813644ec4236408e05efafb92d785320fb8c08c804f3e1dab820864

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for ai_cost_guard_sdk-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 66ccfb71de192c4c474bdcb11aeb6e487c23abbf4756df4a4f18834f0367a9a4
MD5 6897162cf7e40ed6a9c7bde3d8062465
BLAKE2b-256 02145160086bfa911e43f0639f3bb51f724ab362a220201f8a4b89ce89ec5aa6

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