import os
import json
import requests

GENESIS_COST_TRACKER_URL = os.environ.get("GENESIS_COST_TRACKER_URL")


def log_usage(model_name: str, prompt_tokens: int, completion_tokens: int, cost: float):
    """Logs usage data to the Genesis cost tracker."""
    if not GENESIS_COST_TRACKER_URL:
        print("GENESIS_COST_TRACKER_URL not set. Skipping usage logging.")
        return

    payload = {
        "model_name": model_name,
        "prompt_tokens": prompt_tokens,
        "completion_tokens": completion_tokens,
        "cost": cost
    }

    try:
        response = requests.post(GENESIS_COST_TRACKER_URL, json=payload)
        response.raise_for_status()  # Raise HTTPError for bad responses (4xx or 5xx)
        print(f"Usage logged successfully. Response: {response.json()}")
    except requests.exceptions.RequestException as e:
        print(f"Error logging usage: {e}")


if __name__ == '__main__':
    # Example Usage
    os.environ["GENESIS_COST_TRACKER_URL"] = "http://localhost:8000/usage"
    log_usage(model_name="gpt-3.5-turbo", prompt_tokens=100, completion_tokens=50, cost=0.01)
