Tests
import tiktoken
# Conversation vide (juste les 2 tokens de fin)
assert compter_tokens_conversation([]) == 2, 'Conversation vide doit donner 2 tokens (fin)'
# Un message
msgs1 = [{'role': 'user', 'content': 'Bonjour'}]
enc = tiktoken.encoding_for_model('gpt-4o-mini')
attendu1 = 2 + 4 + len(enc.encode('Bonjour'))
assert compter_tokens_conversation(msgs1) == attendu1, 'Un message : 2 + 4 + tokens du contenu'
# Deux messages
msgs2 = [
{'role': 'system', 'content': 'Sois bref.'},
{'role': 'user', 'content': 'Salut'},
]
attendu2 = 2 + 4 + len(enc.encode('Sois bref.')) + 4 + len(enc.encode('Salut'))
assert compter_tokens_conversation(msgs2) == attendu2, 'Deux messages : les tokens doivent s additionner'
# Vérifier que c'est un entier
assert isinstance(compter_tokens_conversation(msgs1), int), 'Doit retourner un entier'
# Plus de messages = plus de tokens
msgs3 = msgs2 + [{'role': 'assistant', 'content': 'Bonjour, comment puis-je t aider ?'}]
assert compter_tokens_conversation(msgs3) > compter_tokens_conversation(msgs2), 'Plus de messages doit donner plus de tokens'