La formule de coût de requête RAG
Chaque requête RAG exécute quatre opérations en séquence. Voici la formule avec chaque couche isolée :
``` per_query_cost = # Couche 1 : intégrer la requête utilisateur (query_tokens / 1_000_000) × embed_$/M # Couche 2 : lecture base de données vectorielle + vector_read_cost_per_query # Couche 3 : reclasseur (optionnel) + (use_reranker ? rerank_$/query : 0) # Couche 4 : génération LLM (cela domine) + (llm_input_tokens / 1_000_000) × llm_input_$/M + (llm_output_tokens / 1_000_000) × llm_output_$/M ```
Le nombre de tokens d'entrée LLM est la somme de : le prompt système (partagé entre les requêtes), la question de l'utilisateur, et les chunks de contexte récupérés. C'est le levier clé. Un prompt système de 800 tokens + une question de 100 tokens + 5 chunks de 400 tokens chacun = 2 900 tokens d'entrée. Au taux d'entrée de Sonnet 4.6 de 3 $/1M, cela représente 0,0087 $ en tokens d'entrée seuls — avant la sortie. Ajoutez 500 tokens de sortie à 15 $/1M = 0,0075 $. Total LLM : 0,0162 $ par requête.
Le nombre de chunks récupérés est le levier de coût le plus contrôlable après la sélection du modèle. Passer des 10 meilleurs aux 5 meilleurs chunks réduit le contexte d'environ 40 % sur un RAG typique, réduisant le coût d'entrée LLM proportionnellement. Mesurez la précision de la récupération pour trouver le nombre minimum de chunks qui maintient la qualité des réponses.