Exercices Prompt Engineering Calculer le cout d'un appel API
🎉

Bravo!

Intermédiaire 🧠 Fondamentaux 20 XP 0 personnes ont réussi

Calculer le cout d'un appel API

Quand tu deploies une appli qui utilise l'API OpenAI en production, la premiere question de ton manager c'est : "Ca va couter combien ?" Les prix varient selon le modele et la direction (les tokens envoyes coutent moins cher que les tokens recus). Savoir estimer le cout d'un appel, c'est indispensable.

Voici les prix approximatifs pour 1 million de tokens (en dollars) :

gpt-4o-mini : 0.15$ en input, 0.60$ en output
gpt-4o : 2.50$ en input, 10.00$ en output
gpt-4-turbo : 10.00$ en input, 30.00$ en output

Pour calculer le cout d'un appel, la formule est :

cout = (tokens_input * prix_input / 1_000_000) + (tokens_output * prix_output / 1_000_000)

Écris une fonction calculer_cout(prompt_tokens, completion_tokens, modèle='gpt-4o-mini') qui retourne le cout en dollars (un float). Utilise le dictionnaire de prix suivant dans ta fonction :

prix = {
'gpt-4o-mini': (0.15, 0.60),
'gpt-4o': (2.50, 10.00),
'gpt-4-turbo': (10.00, 30.00),
}

Le premier élément du tuple est le prix input, le deuxieme le prix output, tous les deux pour 1 million de tokens.

Exemple :
calculer_cout(1000, 500, 'gpt-4o-mini') retourne 0.00045
calculer_cout(1000000, 1000000, 'gpt-4o') retourne 12.5

Tests (1/1)

Tests
import math
assert math.isclose(calculer_cout(1000, 500, 'gpt-4o-mini'), 0.00045, rel_tol=1e-6), 'Cout gpt-4o-mini incorrect pour 1000/500'
assert math.isclose(calculer_cout(1000000, 1000000, 'gpt-4o'), 12.5, rel_tol=1e-6), 'Cout gpt-4o incorrect pour 1M/1M'
assert math.isclose(calculer_cout(0, 0, 'gpt-4o-mini'), 0.0, rel_tol=1e-6), 'Zero tokens doit donner zero cout'
assert math.isclose(calculer_cout(500000, 500000, 'gpt-4-turbo'), 20.0, rel_tol=1e-6), 'Cout gpt-4-turbo incorrect pour 500k/500k'
assert calculer_cout(100, 100, 'gpt-4o-mini') < calculer_cout(100, 100, 'gpt-4o'), 'gpt-4o-mini doit etre moins cher que gpt-4o'

Indices (3 disponibles)

solution.py
Non stockée