Skip to main content

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 BudgetForge
  • model: 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 appel
  • temperature: 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

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)

Source distribution for budgetforge 0.1.1
File Size Uploaded
budgetforge-0.1.1.tar.gz 4.9 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for budgetforge 0.1.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page