Skip to main content

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 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

budgetforge-0.1.1.tar.gz (4.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

budgetforge-0.1.1-py3-none-any.whl (4.6 kB view details)

Uploaded Python 3

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

Hashes for budgetforge-0.1.1.tar.gz
Algorithm Hash digest
SHA256 d7017e808ca5d9826e9f914cb175c30b616f71e410834e09845a97adcc2c8654
MD5 10647c59715629fbfdee4c13048a9c56
BLAKE2b-256 94163bdbd0c0f0aebdfbc5181c5bfd222c6a065d31babb9da819059f210c0fc1

See more details on using hashes here.

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

Hashes for budgetforge-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f57ba8ab3e33babc80f81fea7b3d8e44e9ea2156e70e38d006555dd03df7c887
MD5 9b3e4c52fc8b7c6e136b8060b74a6008
BLAKE2b-256 f97fcdc6f63b1e3dd6d56fc63b0b65c8c674e04c68931fbeb4ce993c574e01f0

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page