BudgetForge SDK — LLM proxy with budget enforcement
Project description
BudgetForge SDK Simple
SDK léger et simple pour intégrer BudgetForge dans vos projets Python.
Installation
Aucune installation nécessaire ! Copiez simplement le fichier budgetforge_sdk.py dans votre projet.
from budgetforge_sdk import BudgetForgeLLM, BudgetForgeChat
Utilisation rapide
LLM simple
from budgetforge_sdk import BudgetForgeLLM
llm = BudgetForgeLLM(
api_key="votre-cle-api-budgetforge",
model="gpt-4",
provider="openai"
)
response = llm.invoke("Bonjour, comment vas-tu?")
print(response)
Chat simple
from budgetforge_sdk import BudgetForgeChat
chat = BudgetForgeChat(
api_key="votre-cle-api-budgetforge",
model="claude-3-sonnet",
provider="anthropic"
)
messages = [
{"role": "user", "content": "Bonjour!"},
{"role": "assistant", "content": "Bonjour! Comment puis-je vous aider?"},
{"role": "user", "content": "Explique-moi l'IA"}
]
result = chat.invoke(messages)
print(result["content"])
Streaming
# Streaming LLM
for chunk in llm.stream("Raconte-moi une histoire:"):
print(chunk, end="", flush=True)
# Streaming Chat
for generation in chat.stream(messages):
print(generation["content"], end="", flush=True)
Configuration
Paramètres du LLM
api_key: Votre clé API BudgetForgemodel: Modèle cible ("gpt-4", "claude-3-sonnet", etc.)provider: Fournisseur ("openai", "anthropic", "google", etc.)api_base_url: URL de base de l'API (défaut: localhost:8000)max_tokens: Nombre maximum de tokens par appeltemperature: Température de réponse (0.0-2.0)timeout: Timeout des requêtes en secondes
Fonctionnalités BudgetForge
Le SDK bénéficie automatiquement de toutes les fonctionnalités BudgetForge :
- ✅ Enforcement du budget - Les appels sont bloqués si le budget est dépassé
- ✅ Tracking des coûts - Suivi en temps réel des dépenses par projet
- ✅ Fallback automatique - Bascule vers des providers moins chers
- ✅ Alertes - Notifications email/webhook pour les seuils de budget
- ✅ Analytics détaillées - Breakdown par provider, modèle, agent
Exemples avancés
Appel asynchrone
import asyncio
async def main():
llm = BudgetForgeLLM(api_key="votre-cle")
response = await llm.invoke_async("Question asynchrone")
print(response)
asyncio.run(main())
Paramètres personnalisés
llm = BudgetForgeLLM(
api_key="votre-cle",
model="gpt-4",
temperature=0.5,
max_tokens=500,
timeout=60
)
# Paramètres par appel
response = llm.invoke(
"Prompt complexe",
temperature=0.8,
max_tokens=1000
)
Multi-providers
# Différents providers pour différents usages
openai_llm = BudgetForgeLLM(api_key="cle", model="gpt-4", provider="openai")
anthropic_llm = BudgetForgeLLM(api_key="cle", model="claude-3-sonnet", provider="anthropic")
# Utiliser le provider approprié pour chaque tâche
complex_task = openai_llm.invoke("Analyse complexe...")
creative_task = anthropic_llm.invoke("Tâche créative...")
Gestion des erreurs
try:
response = llm.invoke("Votre prompt")
except ValueError as e:
if "budget exceeded" in str(e).lower():
print("Budget épuisé!")
elif "provider unavailable" in str(e).lower():
print("Provider indisponible")
else:
print(f"Erreur: {e}")
Intégration avec d'autres frameworks
Langchain (manuellement)
from langchain.llms.base import LLM
from typing import Optional, List
class BudgetForgeLangchainWrapper(LLM):
def __init__(self, api_key: str, model: str = "gpt-4", provider: str = "openai"):
super().__init__()
self.budgetforge_llm = BudgetForgeLLM(api_key, model, provider)
def _call(self, prompt: str, stop: Optional[List[str]] = None) -> str:
return self.budgetforge_llm.invoke(prompt)
@property
def _llm_type(self) -> str:
return "budgetforge"
# Utilisation
llm = BudgetForgeLangchainWrapper(api_key="votre-cle")
Support
- Documentation: BudgetForge Docs
- Issues: GitHub Issues
- Email: ceo@maxiaworld.app
Licence
MIT License
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 budgetforge-0.1.1.tar.gz.
File metadata
- Download URL: budgetforge-0.1.1.tar.gz
- Upload date:
- Size: 4.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d7017e808ca5d9826e9f914cb175c30b616f71e410834e09845a97adcc2c8654
|
|
| MD5 |
10647c59715629fbfdee4c13048a9c56
|
|
| BLAKE2b-256 |
94163bdbd0c0f0aebdfbc5181c5bfd222c6a065d31babb9da819059f210c0fc1
|
File details
Details for the file budgetforge-0.1.1-py3-none-any.whl.
File metadata
- Download URL: budgetforge-0.1.1-py3-none-any.whl
- Upload date:
- Size: 4.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.10
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f57ba8ab3e33babc80f81fea7b3d8e44e9ea2156e70e38d006555dd03df7c887
|
|
| MD5 |
9b3e4c52fc8b7c6e136b8060b74a6008
|
|
| BLAKE2b-256 |
f97fcdc6f63b1e3dd6d56fc63b0b65c8c674e04c68931fbeb4ce993c574e01f0
|