Zero-config OpenAI API cost tracking - just one import and you're done!
Project description
OpenAI Cost Tracker
Zero-config OpenAI API cost tracking - just one import and you're done!
Track all your OpenAI API usage automatically without modifying your existing code. Supports GPT-4, GPT-3.5, DALL-E, Sora, and more.
��� Features
- ��� Zero Configuration - Just one import line
- ��� Automatic Tracking - No code changes needed
- ��� Multi-Key Support - Track multiple API keys separately
- ��� Real-time Costs - See costs as they happen
- ��� SQLite Database - All data stored locally and securely
- ��� CLI Tools - Easy-to-use command-line interface
- ��� Daily Reports - Optional email summaries
���� Quick Start (2 Steps)
Step 1: Install
pip install ai-cost-tracker
Step 2: Add ONE Line
In your main Python file (the one that runs first):
import openai_cost_tracker.services.zero_config_tracker
That's it! All your OpenAI calls are now automatically tracked.
# Your existing code works as-is - no changes needed!
from openai import OpenAI
client = OpenAI()
response = client.chat.completions.create(
model="gpt-4",
messages=[{"role": "user", "content": "Hello"}]
)
# This call is automatically tracked! ���
���� View Your Costs
# View cost summary
openai-cost-view
# View last 7 days
openai-cost-view --days 7
# View by service
openai-cost-view --service my_service
# Export to JSON
openai-cost-view --export costs.json
���� Examples
Flask App
# app.py
from flask import Flask
import openai_cost_tracker.services.zero_config_tracker # Add this line
app = Flask(__name__)
from openai import OpenAI
client = OpenAI()
@app.route('/chat')
def chat():
# Automatically tracked!
response = client.chat.completions.create(...)
return response
FastAPI App
# main.py
from fastapi import FastAPI
import openai_cost_tracker.services.zero_config_tracker # Add this line
app = FastAPI()
from openai import OpenAI
client = OpenAI()
@app.post("/chat")
async def chat():
# Automatically tracked!
response = await client.chat.completions.create(...)
return response
Python Script
# my_script.py
import openai_cost_tracker.services.zero_config_tracker # Add this line
from openai import OpenAI
client = OpenAI()
# All calls automatically tracked!
response = client.chat.completions.create(...)
���� Advanced Usage
Manual Tracking (Optional)
If you prefer manual tracking:
from openai_cost_tracker import get_tracker
from openai import OpenAI
client = OpenAI()
tracker = get_tracker()
response = client.chat.completions.create(...)
usage = response.usage
tracker.log_api_call(
api_key=os.getenv("OPENAI_API_KEY"),
api_type="chat",
model="gpt-4",
operation="create",
cost=tracker.calculate_chat_cost(
model="gpt-4",
tokens_input=usage.prompt_tokens,
tokens_output=usage.completion_tokens
),
tokens_input=usage.prompt_tokens,
tokens_output=usage.completion_tokens
)
Scan Your Codebase
Find all OpenAI usage in your project:
openai-cost-scan
# Scan specific directory
openai-cost-scan --scan-root /path/to/project
Daily Email Reports (Optional)
Set up daily email summaries:
# Install email support
pip install "ai-cost-tracker[email]"
# Configure email
mkdir -p ~/.openai_cost_tracker
cat > ~/.openai_cost_tracker/.env << EOF
SMTP_USER=your-email@gmail.com
SMTP_PASSWORD=your-app-password
COST_REPORT_EMAIL=recipient@gmail.com
EOF
# Run monitor
openai-cost-monitor
���� What Gets Tracked
- Chat Completions (GPT-4, GPT-3.5, etc.)
- Image Generation (DALL-E 2, DALL-E 3)
- Video Generation (Sora)
- Embeddings
- API Keys (hashed for privacy)
- Service Names (auto-detected)
- Tokens (input/output)
- Costs (calculated automatically)
���� Data Storage
All data is stored locally in SQLite:
- Default location:
~/.openai_cost_tracker/openai_usage.db - Custom location: Set via
CostTracker(db_path="/custom/path")
���� CLI Commands
openai-cost-view
View cost summaries and usage statistics.
openai-cost-view [--days N] [--service NAME] [--api-key HASH] [--recent N] [--json] [--export FILE]
openai-cost-scan
Scan codebase for OpenAI usage.
openai-cost-scan [--scan-root PATH] [--output FILE]
openai-cost-monitor
Run monitoring service with email reports.
openai-cost-monitor [--config PATH] [--db-path PATH] [--no-scan]
���� Pricing Support
Automatically calculates costs based on current OpenAI pricing:
- GPT-4: $30/$60 per 1M tokens (input/output)
- GPT-4o: $2.50/$10 per 1M tokens
- GPT-3.5-turbo: $0.50/$1.50 per 1M tokens
- DALL-E 3: $0.04-0.08/image
- Sora 2: $0.015/second
������� Configuration
Environment Variables
Optional environment variables:
# Enable verbose output
export OPENAI_COST_TRACKER_VERBOSE=1
# Custom database location
export COST_TRACKER_DB=/path/to/openai_usage.db
���� API Reference
CostTracker
from openai_cost_tracker import CostTracker, get_tracker
tracker = get_tracker() # Get global tracker
# or
tracker = CostTracker(db_path="/custom/path") # Custom tracker
# Calculate costs
cost = tracker.calculate_chat_cost("gpt-4", tokens_input=1000, tokens_output=500)
image_cost = tracker.calculate_image_cost("dall-e-3", size="1024x1024")
video_cost = tracker.calculate_video_cost("sora-2", seconds=8)
# Get summary
summary = tracker.get_usage_summary(days=7)
���� Contributing
Contributions welcome! Please see our contributing guidelines.
���� License
MIT License - see LICENSE file
���� Support
- Issues: GitHub Issues
- Documentation: See docs in repository
Made with ������ for developers who want to track their AI costs without the hassle.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ai_cost_tracker-0.1.0.tar.gz.
File metadata
- Download URL: ai_cost_tracker-0.1.0.tar.gz
- Upload date:
- Size: 28.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0c2566f07cf67f20f1b777d30e4f1d2849f76b80f72512b19a93b3765ba998c2
|
|
| MD5 |
d139f5b0d9b665275dabd55f8ee6722a
|
|
| BLAKE2b-256 |
78b886cbc291f769a6ad47d2a0d9fa27d96e5f54a16f31702190b40b6753d3ef
|
File details
Details for the file ai_cost_tracker-0.1.0-py3-none-any.whl.
File metadata
- Download URL: ai_cost_tracker-0.1.0-py3-none-any.whl
- Upload date:
- Size: 35.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1859496ea829ef4c71217347429e88cb7762e309dd0cd74480a6a4bbeef9aca2
|
|
| MD5 |
e86fa415433685d0e8a2f126aa9e0f32
|
|
| BLAKE2b-256 |
daf119007f01a3bf2f5e8324d93311b6cbcb4a75484969d0665db923da330d30
|