import sys import tiktoken # Inizializziamo l'encoder globalmente. # cl100k_base รจ lo standard di fatto per le misurazioni token moderne. _encoder = tiktoken.get_encoding("cl100k_base") def count_tokens(text: str) -> int: """ Calcola il numero esatto di token in ingresso per una data stringa. Fondamentale per il calcolo accurato dei costi LLM. """ if not text: return 0 return len(_encoder.encode(text)) def calculate_sqs_blocks(payload_json: str) -> int: """ Calcola i blocchi fatturabili per Amazon SQS. AWS addebita 1 richiesta per ogni payload (o frammento) fino a 64 KB (65536 bytes). """ # sys.getsizeof restituisce la dimensione in byte della stringa in memoria payload_size_bytes = sys.getsizeof(payload_json) # Calcolo dei blocchi (divisione intera + 1) return (payload_size_bytes // 65536) + 1