Python SDK for AI Observability - Monitor LLM usage across 21+ models with smart routing, cost tracking, and budget management
Project description
AI Observability Python SDK
Monitor, track, and optimize your LLM usage across 21+ AI models with one SDK.
✨ Features
- 🚀 Smart Routing - Route prompts by cost, speed, or quality
- 📊 Cost Tracking - Track usage and costs across all models
- 💰 Budget Management - Set budgets and get alerts
- 🔍 Model Comparison - Compare 21+ models side-by-side
- 📚 RAG Knowledge Base - Search your documents
- 🖼️ Image Generation - Generate images from text
- ⚡ Async Support - High-throughput async operations
✅ Confirmed Working Models
| Provider | Model | Latency | Cost |
|---|---|---|---|
| Groq | llama-3.1-8b-instant | 58ms | ~$0.00003 |
| Groq | llama-3.3-70b-versatile | 386ms | ~$0.00003 |
| Groq | gpt-oss-120b | 308ms | ~$0.00014 |
| gemma-3-27b-it | 773ms | FREE | |
| gemma-3-1b-it | 694ms | FREE | |
| gemini-2.5-flash | 1640ms | ~$0.000002 |
📦 Installation
pip install freelanceflow
🚀 Quick Start
python
from aiobservability import AIObservability
# Initialize client
client = AIObservability(api_key="your_api_key")
# Route a prompt (automatically picks best model)
response = client.route("What is machine learning?", preference="speed")
print(f"Response: {response['response']}")
print(f"Cost: ${response['cost']}")
print(f"Latency: {response['latencyMs']}ms")
📊 Usage Examples
Track LLM Usage
python
from aiobservability import LLMUsage
usage = LLMUsage(
tenant_id="my-company",
user_id="user-123",
provider="groq",
model="llama-3.1-8b-instant",
prompt="What is AI?",
completion="AI is artificial intelligence...",
prompt_tokens=10,
completion_tokens=50,
duration_ms=150
)
client.track(usage)
Get Usage History
python
# Get history (uses default tenant)
history = client.get_usage_history(limit=10)
print(f"Found {len(history)} records")
# Or specify a different tenant
history = client.get_usage_history(tenant_id="other-tenant", limit=10)
# Compare Models
python
# Compare models side-by-side
comparison = client.compare_models("What is Python?")
for model in comparison['results']:
print(f"{model['model']}: ${model['cost']} - {model['latencyMs']}ms")
Clean Up
python
# Close the client connection
client.close()
📖 API Reference
Full documentation: https://ai-api.usefreelanceflow.com/docs
🔑 Authentication
Get your API key from the AI Observability Dashboard.
Demo key for testing: ai_demo_key_12345
🧪 Testing Your Installation
After installing, verify it works:
bash
python -c "from aiobservability import AIObservability; print('SDK works!')"
🤝 Contributing
Contributions welcome! Please see CONTRIBUTING.md.
📄 License
MIT License - see LICENSE file for details.
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
freelanceflow-1.0.0.tar.gz
(10.0 kB
view details)
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 freelanceflow-1.0.0.tar.gz.
File metadata
- Download URL: freelanceflow-1.0.0.tar.gz
- Upload date:
- Size: 10.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f9582a8952042dcdfbf97d7f8997318fb6edea82e9b0b5e1a9010c16f2e95ed3
|
|
| MD5 |
70c9bc361f40d952ecaa0bc5bef0d0d9
|
|
| BLAKE2b-256 |
25269b15e1483b67f75170631ad21a88b1812ecc0997837dd40a19fb1694a917
|
File details
Details for the file freelanceflow-1.0.0-py3-none-any.whl.
File metadata
- Download URL: freelanceflow-1.0.0-py3-none-any.whl
- Upload date:
- Size: 8.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.11.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ef3fb448379ddc05d3171a4229bc8e551ed04ac68270a7d0e5dcab3f900bb6e
|
|
| MD5 |
05e14f5d3c50a8f1d29f89e66ad5624a
|
|
| BLAKE2b-256 |
80a5b6e268b0d4e9ca7f1c5ac3a17fd0fd1c8977eca678f94eb3e406a18c9267
|