Le mois dernier, j’ai eu besoin d’analyser 18 mois de données de trading sur 3 fichiers CSV. Les téléverser sur ChatGPT donnait l’impression de confier des clés API à un inconnu. La gestion des fichiers de Claude semblait plus sûre, mais je voulais savoir exactement ce que le modèle voyait avant qu’il ne touche quoi que ce soit. Voici ce que j’ai construit — et pourquoi la configuration est plus importante que le prompt.
Pourquoi les téléversements de fichiers comptent moins que vous ne le pensez
La plupart des praticiens traitent Claude et GPT comme des boîtes noires en matière de données. Téléversez un CSV, posez une question, obtenez une réponse. Le problème : vous perdez le contrôle dès que le fichier entre dans la fenêtre de contexte du modèle.
Vous ne pouvez pas auditer ce qui a été envoyé. Vous ne pouvez pas reproduire le contexte exact si les résultats changent. Vous ne pouvez pas réutiliser les mêmes données analysées pour plusieurs analyses sans re-téléverser. Et si votre fichier contient des données sensibles — identifiants clients, montants de transactions, métriques propriétaires — le téléverser signifie faire confiance à la gestion des données du fournisseur, point final.
L’alternative : analyser les données localement, envoyer uniquement ce dont le modèle a besoin, conserver les fichiers bruts sur votre machine.
Le Modèle : Analyse Locale + Prompts Ciblés
Voici le flux de travail qui fonctionne réellement.
Étape 1 : Analysez localement en Python ou JavaScript.
Ne laissez pas le modèle voir votre CSV entier. Extrayez des résumés : noms de colonnes, nombre de lignes, types de données et un échantillon de lignes. Cela sert deux objectifs : cela donne au modèle une entrée propre et vous oblige à comprendre ce que vous analysez avant même l’appel API.
import pandas as pd
import json
# Charger le CSV
df = pd.read_csv('trading_data.csv')
# Construire le résumé
summary = {
'shape': df.shape,
'columns': df.columns.tolist(),
'dtypes': df.dtypes.astype(str).to_dict(),
'sample_rows': df.head(3).to_dict(orient='records'),
'basic_stats': df.describe().to_dict()
}
print(json.dumps(summary, indent=2))
Étape 2 : Décidez de ce dont le modèle a réellement besoin.
Si vous demandez « Quelle est la corrélation entre ces colonnes ? », le modèle n’a pas besoin de chaque ligne. Il a besoin du résumé statistique. Si vous demandez « Trouver les lignes correspondant à ce modèle », envoyez l’ensemble des données — mais seulement les colonnes pertinentes.
Étape 3 : Construisez le prompt autour des données analysées.
C’est là que la précision l’emporte. Montrez au modèle exactement avec quoi il travaille.
# Mauvais prompt