File size: 1,093 Bytes
eba303d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
from os import environ

import requests

from .utils import *


def get_env_var(key):
    try:
        return environ[key]
    except KeyError:
        logger.debug(f"Missing {key} environment variable.")


def get_user_info(request):
    access_token = request.META.get('HTTP_AUTHORIZATION', '').split(' ')[1]
    userinfo_response = requests.get(
        'https://dev-jy1enj724oy2las3.us.auth0.com/userinfo',
        headers={'Authorization': f'Bearer {access_token}'}
    )
    if userinfo_response.status_code == 200:
        userinfo = userinfo_response.json()
        return userinfo


def get_model_prices(model_name: str):
    """
    Returns input and output prices for models for 1k tokens

    :param model_name: str["gpt-4o" | "gpt-4o-mini" | "gemini-1.5-pro" | "gemini-1.5-flash"]
    :return: Tuple[input_price, output_price]
    """
    env_model_name = model_name.upper().replace("-", "_")

    input_price = get_env_var(f'{env_model_name}_INPUT_PRICE_1K')
    output_price = get_env_var(f'{env_model_name}_OUTPUT_PRICE_1K')

    return float(output_price), float(input_price)