L'analyse de documentations techniques denses, de rapports financiers de plusieurs centaines de pages et de contrats commerciaux multipartites dépasse régulièrement les capacités des outils d'IA conventionnels limités par des fenêtres de contexte réduites. Développé par Moonshot AI, Kimi résout ce goulot d'étranglement grâce à un raisonnement natif sur contextes ultra-longs, prenant en charge jusqu'à un million de tokens sur ses modèles phares, associé à un traitement multi-documents robuste. Ce guide explique comment utiliser Kimi pour analyser des documents volumineux individuels, réaliser des extractions d'informations comparatives entre plusieurs fichiers, tirer parti de la mise en cache de contexte (Context Caching) dans des pipelines automatisés et appliquer des contrôles rigoureux de vérification au sein de flux de travail critiques en recherche et en entreprise.
Comprendre l'architecture à contexte long et les spécifications de fichiers de Kimi
Kimi élimine le besoin de découper manuellement les documents en fragments avant d'interroger un modèle d'IA. Ses modèles sous-jacents — notamment Kimi K3, qui repose sur une architecture hybride associant Kimi Delta Attention (KDA) et Gated Multi-Head Latent Attention (MLA) — permettent une compréhension globale portant sur des centaines de milliers de mots, sans perte de cohérence ni omission de détails enfouis.
Formats de fichiers pris en charge et spécifications techniques
Kimi accepte un large éventail de formats de documents et de données sur son interface web, son application de bureau et son API pour développeurs :
- Documents texte et bureautique :
.pdf,.docx,.doc,.txt,.md,.epub,.dot,.mobi,.html - Feuilles de calcul :
.xlsx,.xls,.csv - Présentations :
.pptx,.ppt - Fichiers de code et de configuration :
.py,.js,.ts,.tsx,.json,.yaml,.yml,.go,.java,.cpp,.c,.cs,.sql,.log,.ini,.conf
Dans les applications destinées aux développeurs, les fichiers téléversés pour l'extraction textuelle reçoivent la mention purpose="file-extract". La taille maximale d'un fichier unique est de 100 MiB. Bien que les organisations disposent par défaut d'un plafond de stockage de 10 GiB, il n'existe aucune limite stricte quant au nombre total de fichiers téléversés. Les utilisateurs de Kimi Web et de Kimi Work peuvent importer jusqu'à 50 documents distincts dans une même session d'analyse.
Extraction de texte versus analyse visuelle native
Kimi distingue nettement le mécanisme d'extraction textuelle du traitement visuel natif :
- Extraction de texte (
file-extract) : Transforme les documents, feuilles de calcul et présentations en texte structuré. Le moteur d'extraction de Kimi conserve fidèlement la hiérarchie des titres, la structure globale, les formules mathématiques complexes ainsi que les tableaux de données mis en forme. - Traitement visuel multimodal (
imageouvideo) : Les fichiers PDF numérisés sous forme d'images pures et les ressources visuelles autonomes contournent l'extraction de texte standard et sont directement acheminés vers l'encodeur visuel de Kimi (tel que MoonViT) pour l'OCR et la compréhension de la mise en page.
Guide pas à pas pour l'analyse d'un document long individuel
Qu'il s'agisse d'examiner une thèse universitaire, un rapport financier annuel 10-K ou les conclusions d'un essai clinique, l'analyse d'un document exhaustif avec Kimi s'organise selon un cheminement rigoureux, depuis l'importation jusqu'à la vérification ciblée.
Option A : Exploration interactive de documents via Kimi Web
Cette méthode convient aux analystes, équipes juridiques et professionnels utilisant un navigateur ou l'application de bureau :
- Accéder à l'interface : Rendez-vous sur
kimi.ai(oukimi.com) et ouvrez une nouvelle conversation. - Joindre le document : Cliquez sur l'icône de pièce jointe ou glissez-déposez directement le fichier dans la zone de saisie.
- Attendre le traitement : Le système analyse le document et affiche une étiquette confirmant l'achèvement de l'extraction intégrale du texte.
- Générer un aperçu préliminaire : Demandez une synthèse structurée afin de cerner l'étendue générale du document avant d'aborder des détails précis.
- Approfondir de manière interactive : Posez des questions ciblées en référençant des sections spécifiques, des périodes comptables ou des définitions techniques.
Option B : Analyse programmatique de documents via l'API Kimi
Pour les développeurs qui intègrent l'analyse de documents à des pipelines backend automatisés, Kimi propose un point de terminaison d'API compatible OpenAI hébergé à l'adresse https://api.moonshot.cn/v1. La procédure s'exécute en quatre étapes simples :
import os
from pathlib import Path
from openai import OpenAI
# Initialisation du client pointant vers l'API Moonshot
client = OpenAI(
api_key=os.environ["MOONSHOT_API_KEY"],
base_url="https://api.moonshot.cn/v1",
)
# Étape 1 : Téléversement du document pour extraction de texte
uploaded_file = client.files.create(
file=Path("annual_report_2025.pdf"),
purpose="file-extract",
)
# Étape 2 : Récupération du contenu textuel extrait
extracted_text = client.files.content(file_id=uploaded_file.id).text
# Étape 3 : Injection du texte extrait dans les messages système
system_persona = (
"You are Kimi, an AI assistant developed by Moonshot AI. Provide accurate, "
"well-structured, and verified answers based strictly on provided documentation."
)
messages = [
{"role": "system", "content": system_persona},
{"role": "system", "content": extracted_text},
{
"role": "user",
"content": "Fournis un résumé exécutif des principaux facteurs de revenus et identifie les trois risques opérationnels majeurs mentionnés dans ce document.",
},
]
# Étape 4 : Exécution de l'inférence avec Kimi K3
response = client.chat.completions.create(
model="kimi-k3",
messages=messages,
temperature=0.3,
)
print(response.choices[0].message.content)
[!IMPORTANT] Lors de l'interrogation de documents par l'API, récupérez systématiquement la chaîne textuelle extraite et transmettez-la directement dans le tableau
messages. Ne transmettez jamais l'identifiant brutfile_idcomme contenu du message et n'intégrez pas de documents volumineux sous forme de chaînes base64, ce qui provoquerait une consommation superflue de tokens et contournerait les optimisations de traitement de texte.
Modèles de requêtes clés pour l'analyse approfondie d'un document unique
Pour obtenir la meilleure qualité d'extraction à partir d'un texte volumineux, privilégiez des angles d'interrogation précis :
- Synthèses structurelles : Demandez à Kimi de décomposer le document par chapitres thématiques ou sections de rapport, en résumant les arguments clés et conclusions de chacun.
- Extraction de données précises : Enjoignez au modèle de localiser des chiffres exacts, tels que l'évolution de la marge brute, le total des dépenses d'investissement ou les échéanciers de dette, accompagnés de leurs notes explicatives.
- Évaluation de cohérence logique : Sollicitez Kimi pour déceler d'éventuelles contradictions internes, passifs éventuels ou hypothèses non étayées figurant dans des contrats complexes.
Extraction d'informations et analyse comparative multi-fichiers
L'un des avantages opérationnels majeurs de Kimi réside dans sa faculté d'évaluer simultanément plusieurs documents denses. Au lieu d'examiner les fichiers un par un pour en regrouper manuellement les éléments, vous pouvez injecter plusieurs documents d'un coup afin d'obtenir des synthèses croisées, des comparaisons contractuelles (redlines) et des analyses de tendances chronologiques.
Schéma d'ingestion pour l'analyse multi-fichiers
Dans l'API, chaque document distinct est transmis sous la forme d'un message system individuel placé au début du tableau messages :
def prepare_multi_file_context(file_paths: list[str]) -> list[dict]:
"""Téléverse plusieurs fichiers et génère un message système pour chaque document extrait."""
file_messages = []
for path in file_paths:
file_obj = client.files.create(file=Path(path), purpose="file-extract")
file_text = client.files.content(file_id=file_obj.id).text
file_messages.append({"role": "system", "content": file_text})
return file_messages
# Ingestion de plusieurs rapports annuels ou études concurrentielles
docs = ["filing_2023.pdf", "filing_2024.pdf", "filing_2025.pdf"]
file_messages = prepare_multi_file_context(docs)
multi_doc_messages = [
*file_messages,
{"role": "system", "content": system_persona},
{
"role": "user",
"content": (
"Compare la performance financière sur 2023, 2024 et 2025. "
"Construis un tableau Markdown comparant les Revenus Totaux, la Marge Opérationnelle "
"et le Flux de Trésorerie Disponible, suivi d'une explication des variations majeures de marge."
),
},
]
completion = client.chat.completions.create(
model="kimi-k3",
messages=multi_doc_messages,
)
print(completion.choices[0].message.content)
Cas d'usage à forte valeur ajoutée en multi-documents
L'analyse conjointe de plusieurs documents au sein d'une même fenêtre de contexte rend possibles des flux de travail avancés :
| Cas d'usage | Documents en entrée | Objectif d'extraction et de synthèse | Format de restitution |
|---|---|---|---|
| Tendances financières pluriannuelles | Rapports annuels consécutifs (10-K, états financiers audités) | Identifier les trajectoires de croissance du chiffre d'affaires, l'évolution de la dette et des facteurs de risque | Tableau comparatif d'indicateurs et analyse des écarts |
| Comparaison de contrats et alignement des fournisseurs | Contrat-cadre de prestations (MSA) type versus version de la contrepartie | Repérer les écarts de plafonds de responsabilité, de droits de propriété intellectuelle, d'indemnisation et de modalités de paiement | Matrice de divergence clause par clause |
| Analyse comparative de la concurrence | Livres blancs techniques, spécifications d'architecture ou fiches produits | Comparer le débit d'architecture, la latence, la conformité sécuritaire et les restrictions de licence | Liste d'équivalence des fonctionnalités avec analyse d'arbitrage |
| Synthèse bibliographique interdisciplinaire | Multiples articles scientifiques étudiant des hypothèses communes | Dégager les méthodologies faisant consensus, isoler les résultats expérimentaux contradictoires et cerner les lacunes | Revue systématique et thématique de la littérature |
Formuler des requêtes comparatives performantes
Lors de la comparaison de plusieurs documents, des questions trop ouvertes comme « dis-moi ce qui change » débouchent souvent sur des généralités. Privilégiez des consignes imposant des axes de comparaison rigoureux :
- Exiger des tableaux comparatifs en vis-à-vis : Attribuez une colonne par document et des lignes dédiées à des critères définis (par exemple tarifs, conditions de résiliation, droit applicable).
- Imposer la mention de l'origine de l'information : Exigez que Kimi fasse précéder chaque constat ou donnée du nom de fichier ou de la référence du document correspondant.
- Vérifier directement les incohérences : Incitez le modèle à vérifier si des déclarations du Document B entrent en contradiction avec des engagements ou affirmations du Document A.
Optimiser la latence et les coûts grâce au Context Caching
Transmettre des dizaines de pages lors d'échanges conversationnels itératifs peut s'avérer très onéreux en puissance de calcul si le document entier doit être réanalysé à chaque requête. Kimi neutralise ce problème grâce à son moteur automatisé de Context Caching (mise en cache de contexte).
Fonctionnement du Context Caching de Kimi
Le Context Caching stocke l'état calculé d'un long préfixe d'entrée sur les clusters de serveurs. Dès lors que les requêtes successives partagent un contexte initial rigoureusement identique, Kimi ignore le recalcul de ce préfixe et facture une fraction minime du tarif d'entrée standard.
- Activation entièrement automatique : Inutile d'enregistrer manuellement des objets de cache, de gérer des identifiants ou de paramétrer des durées de vie (TTL).
- Seuil de déclenchement du préfixe : La mise en cache s'enclenche automatiquement dès que le préfixe initial et stable de l'instruction dépasse 256 tokens. Tout document extrait dans la pratique dépassant largement ce seuil, les processus de questions-réponses en bénéficient immédiatement.
- Économies substantielles : Les tokens d'invite pris en charge par le cache de contexte permettent de réduire les coûts d'inférence en entrée jusqu'à 90 %.
- Réduction du temps jusqu'au premier jeton (TTFT) : La latence moyenne de réponse sur les contextes longs s'abaisse sous la barre des 5 secondes grâce à la réutilisation des états d'attention précalculés.
Règle d'architecture essentielle : Garantir la stabilité du préfixe
Pour porter au plus haut le taux de succès du cache, la disposition du tableau messages doit demeurer parfaitement stable. Conservez les composantes statiques de l'invite (contenu des documents, consignes système et règles de mise en page) au début de la liste, et n'ajoutez les nouvelles répliques de dialogue qu'exclusivement à la suite :
# Préfixe fixe des documents (mis en cache entre les tours de parole)
base_context = [
*file_messages,
{"role": "system", "content": system_persona},
{"role": "system", "content": "Format all tabular data in GitHub Flavored Markdown."},
]
# Tour 1
conversation = list(base_context)
conversation.append({"role": "user", "content": "Quel est le montant total des actifs mentionnés ?"})
turn1_reply = client.chat.completions.create(model="kimi-k3", messages=conversation)
# Tour 2 : Préserve le préfixe d'origine, bénéficie du cache de contexte
conversation.append({"role": "assistant", "content": turn1_reply.choices[0].message.content})
conversation.append({"role": "user", "content": "Comment ce montant se compare-t-il aux réserves de trésorerie ?"})
turn2_reply = client.chat.completions.create(model="kimi-k3", messages=conversation)
# Vérification de l'utilisation du cache dans les métadonnées de consommation de tokens
usage = turn2_reply.usage
cached_tokens = getattr(usage.prompt_tokens_details, "cached_tokens", 0)
print(f"Total des Tokens d'Entrée : {usage.prompt_tokens}")
print(f"Tokens Réutilisés depuis le Cache : {cached_tokens}")
Context Caching versus Génération augmentée de récupération (RAG)
Savoir quand intégrer des documents complets dans la fenêtre de contexte de Kimi et quand déployer une architecture externe de RAG vectoriel est essentiel pour équilibrer complexité technique et budget :
| Critère d'évaluation | Long contexte Kimi avec Context Caching | RAG traditionnel par découpage (Chunks) |
|---|---|---|
| Intégrité contextuelle | Contexte global complet ; zéro perte à la récupération ; préserve les tableaux multipages et les dépendances inter-chapitres | Sujet aux pertes aux frontières de découpage ; risque d'omettre des nuances dispersées entre plusieurs chapitres |
| Complexité d'ingénierie | Minimale : charger le texte et interroger le modèle ; aucun modèle d'embedding, de découpage ni de base vectorielle | Élevée : nécessite des modèles d'embedding, des heuristiques de découpage, le paramétrage d'index vectoriels et des reclasseurs |
| Profil de latence | TTFT inférieur à 5 secondes une fois le préfixe en cache ; temps de réponse prévisibles | Récupération initiale rapide, mais la latence se cumule lors des phases successives de recherche et de reclassement |
| Modèle économique | Jusqu'à 90 % d'économie sur préfixe en cache ; très rentable pour des requêtes poussées et répétées sur un corpus fixe | Coût brut par requête unitaire plus bas sur des corpus gigantesques, mais frais fixes d'infrastructure vectorielle |
| Champ d'application idéal | Analyse ciblée de dossiers documentaires restreints (1 à 50 fichiers, audits financiers, due diligence juridique) | Recherche d'entreprise généralisée à travers des millions de tickets internes, e-mails ou pages wiki |
Bonnes pratiques d'ingénierie d'invite et gouvernance des sorties
Pour obtenir des résultats d'une fiabilité irréprochable lors du dépouillement de centaines de pages, il est indispensable de structurer rigoureusement ses invites, d'encadrer strictement les réponses et de procéder à des contrôles factuels systématiques.
Encadrer les réponses au moyen de règles explicites
Laissés libres de toute consigne, les modèles tendent à produire des développements verbeux et généralistes. Vous pouvez imposer des réponses concises et vérifiables en adjoignant un ensemble de règles spécifiques au message système :
structured_rules = """
Respecte scrupuleusement les contraintes de réponse suivantes :
1. Fournis 5 points au maximum sous forme de puces.
2. Pour chaque affirmation ou donnée chiffrée, cite précisément la section, le numéro de page ou le titre du tableau d'origine.
3. Si une réponse ne peut pas être déduite formellement des fichiers fournis, indique textuellement : "Information non présente dans les documents sources."
4. Ne fais aucune extrapolation, spéculation, ni ne cite de généralités du secteur.
"""
governed_messages = [
*file_messages,
{"role": "system", "content": system_persona},
{"role": "system", "content": structured_rules},
{"role": "user", "content": "Résume le taux d'attrition des clients et les indicateurs de fidélisation."},
]
Vérification des faits financiers et juridiques à forts enjeux
Même si l'attention sur contexte long de Kimi limite grandement les hallucinations liées à la recherche documentaire, les décisions stratégiques exigent une validation méthodique :
- Contrôle des notes explicatives : Les métriques financières comportent couramment des ajustements non-GAAP ou des retraitements logés dans les annexes comptables. Donnez pour instruction à Kimi de faire ressortir toute note d'explication rattachée aux chiffres énoncés.
- Contrôles d'omission (recherches négatives) : Enjoignez à Kimi de rechercher activement si des clauses indispensables (comme les droits d'audit, la propriété exclusive des données ou les indemnités forfaitaires contractuelles) font défaut dans un projet d'accord.
- Recoupement direct des stipulations sensibles : Pour les conditions contractuelles majeures ou les engagements de conformité réglementaire, confrontez l'extrait fourni par Kimi avec la page du document d'origine afin de vous assurer que la ponctuation et les conditions restrictives ont été fidèlement interprétées.
Gestion du stockage et cycle de vie des fichiers
Les fichiers téléversés demeurent rattachés à votre compte pour accélérer les opérations d'extraction et de mise en cache ultérieures, et sont décomptés du quota de stockage alloué à votre organisation (10 GiB par défaut). Dès qu'une phase d'analyse est achevée, supprimez les fichiers temporaires pour libérer l'espace nécessaire aux traitements futurs :
# Suppression d'un fichier donné après analyse
client.files.delete(file_id=uploaded_file.id)
# Nettoyage en lot : lister et supprimer l'ensemble des fichiers temporaires d'extraction
all_files = client.files.list()
for file_record in all_files.data:
client.files.delete(file_id=file_record.id)
Choix de plateformes, niveaux d'accès et confidentialité d'entreprise
Moonshot AI met à disposition différents canaux d'accès et garanties de confidentialité adaptés aux analystes individuels, équipes d'ingénierie et organisations soumises à de fortes contraintes réglementaires.
Arbitrage entre espaces de travail pour utilisateurs et API développeur
- Kimi Web (
kimi.com/kimi.ai) et Kimi Work : Pensé pour les professionnels recherchant un environnement graphique interactif. Propose l'importation de documents, un dialogue questions-réponses en langage naturel, des hyperliens renvoyant directement aux passages du texte d'origine, ainsi qu'une intégration native à des fonctionnalités de recherche approfondie et de génération de diapositives. - Abonnements Kimi Membership : Formules destinées aux utilisateurs intensifs, offrant une puissance de calcul accrue, un traitement prioritaire aux heures de forte affluence et des plafonds de sessions multi-échanges plus élevés.
- Plateforme Ouverte Kimi API (
platform.kimi.com) : Environnement développeur à la demande facturé uniquement sur la base des tokens consommés en entrée, sortie et mise en cache. Conçu pour s'intégrer aux pipelines d'automatisation d'arrière-guichet, aux traitements ETL d'entreprise et aux architectures d'agents personnalisés.
Protection des données d'entreprise et politique de Zéro Rétention de Données (ZDR)
Pour les structures qui manipulent de la propriété intellectuelle confidentielle, des bilans stratégiques ou des conventions contractuelles réservées, la protection des données constitue un impératif absolu :
- Confidentialité par défaut de l'API : Les données transmises via l'API de la plateforme ouverte Kimi ne sont en aucun cas utilisées pour entraîner les modèles de base de Moonshot AI.
- Mode Zéro Rétention de Données (ZDR) : Les clients entreprise ont la possibilité d'activer la politique ZDR. Dans ce cadre, les requêtes et réponses du modèle ne résident dans la mémoire vive des serveurs que pendant la durée exacte du cycle d'inférence et sont effacées sans délai dès l'émission de la réponse. Aucun journal persistant des données de requête n'est conservé sur les disques de la plateforme, ce qui garantit la conformité avec les réglementations les plus exigeantes en matière de gouvernance des données.
Sources
- Kimi API PDF Q&A and Document Processing Guide
- Kimi API File-Based Question Answering Documentation
- Kimi API File Upload and Parsing Specifications
- Kimi API Automatic Context Caching Overview
- Moonshot AI Zero Data Retention (ZDR) Enterprise Policy
- Kimi Product Plans and Subscription Tiers
- Kimi Membership and Work Platform Overview