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
Release files for budgetforge 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| budgetforge-0.1.1.tar.gz | 4.9 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| budgetforge-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 9.5 kB
Release files / budgetforge-0.1.1.tar.gz
| Download URL | budgetforge-0.1.1.tar.gz |
|---|---|
| Size | 4.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
d7017e808ca5d9826e9f914cb175c30b616f71e410834e09845a97adcc2c8654
|
|
BLAKE2b-256 checksum How to use checksums |
94163bdbd0c0f0aebdfbc5181c5bfd222c6a065d31babb9da819059f210c0fc1
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.10
|
Release files / budgetforge-0.1.1-py3-none-any.whl
| Download URL | budgetforge-0.1.1-py3-none-any.whl |
|---|---|
| Size | 4.6 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
f57ba8ab3e33babc80f81fea7b3d8e44e9ea2156e70e38d006555dd03df7c887
|
|
BLAKE2b-256 checksum How to use checksums |
f97fcdc6f63b1e3dd6d56fc63b0b65c8c674e04c68931fbeb4ce993c574e01f0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.12.10
|