Construire un système de récupération de rapport financier
Mar 21, 2025 am 10:08 AMLes rapports financiers sont essentiels pour évaluer la santé d'une entreprise. Ils s'étendent sur des centaines de pages, ce qui rend difficile d'extraire efficacement des informations spécifiques. Les analystes et les investisseurs passent des heures à passer au crible des bilans, des états de revenu et des notes de bas de page juste pour répondre à des questions simples telles que - quels ont été les revenus de l'entreprise en 2024? Avec les progrès récents dans les modèles LLM et les technologies de recherche vectorielle, nous pouvons automatiser l'analyse des rapports financiers à l'aide de Llamaindex et des cadres connexes. Ce billet de blog explore comment nous pouvons utiliser Llamaindex, ChromAdb, Gemini2.0 et Ollama pour construire un système de chiffon financier robuste qui répond aux requêtes de longues rapports avec précision.
Objectifs d'apprentissage
- Comprendre la nécessité de systèmes de récupération des rapports financiers pour une analyse efficace.
- Apprenez à prétraiter et à vectoriser les rapports financiers à l'aide de Llamaindex.
- Explorez ChromAdB pour la construction d'une base de données vectorielle robuste pour la récupération de documents.
- Mettre en œuvre des moteurs de requête à l'aide de Gemini 2.0 et Llama 3.2 pour l'analyse des données financières.
- Découvrez les techniques de routage de requête avancées à l'aide de Llamaindex pour des informations améliorées.
Cet article a été publié dans le cadre du Blogathon de la science des données.
Table des matières
- Pourquoi avons-nous besoin d'un système de récupération de rapport financier?
- Mise en œuvre du projet
- Documents Traitement avec Llamaindex
- Construire la base de données vectorielle avec ChromAdb
- Requête les données financières avec Gemini 2.0
- Requête locale utilisant lama 3.2
- Routage avancé des requêtes avec Llamaindex
- Conclusion
- Questions fréquemment posées
Pourquoi avons-nous besoin d'un système de récupération de rapport financier?
Les rapports financiers contiennent des informations critiques sur la performance d'une entreprise, y compris les revenus, les dépenses, les passifs et la rentabilité. Cependant, ces rapports sont énormes, longs et pleins de jargon technique, ce qui rend extrêmement long pour les analystes, les investisseurs et les dirigeants pour extraire les informations pertinentes manuellement.
Un système de récupération de rapport financier peut automatiser ce processus en permettant des requêtes en langage naturel. Au lieu de rechercher dans les PDF, les utilisateurs peuvent simplement poser des questions telles que « quels ont été les revenus en 2023? » Ou « résumer les problèmes de liquidité pour 2023 ». Le système récupère rapidement et résume les sections pertinentes, économisant des heures d'effort manuel.
Mise en œuvre du projet
Pour la mise en œuvre du projet, nous devons d'abord configurer l'environnement et installer les bibliothèques requises:
Étape 1: Configuration de l'environnement
Nous allons commencer par créer et conda Env pour notre travail de développement.
1 2 3 |
|
Étape 2: Installez les bibliothèques Python essentielles
L'installation de bibliothèques est l'étape cruciale pour toute implémentation du projet:
1 2 3 4 |
|
Étape 3: Création du répertoire de projet
Créez maintenant un répertoire de projet et créez un fichier nommé .env et sur ce fichier, mettez toutes vos clés API pour la gestion de la clé API sécurisée.
1 2 3 |
|
Nous chargeons la variable d'environnement à partir de ce fichier .env pour stocker en toute sécurité la clé API sensible. Cela garantit que notre API Gemini ou notre API Google reste protégé.
Nous ferons notre projet à l'aide de Jupyter Notebook.
Créez un fichier de cahier Jupyter et commencez à implémenter étape par étape.
Étape 4: Chargement de la clé de l'API
Nous allons maintenant charger la clé API ci-dessous:
1 2 3 4 5 6 7 8 9 |
|
Maintenant, notre environnement prêt afin que nous puissions aller à la phase la plus importante suivante.
Documents Traitement avec Llamaindex
Collecte de rapports financiers Motorsport Games Inc. sur le site Web annuel des reports.
Téléchargez le lien ici.
La première page ressemble:
Ces rapports ont un total de 123 pages, mais je prends simplement les états financiers des rapports et crée un nouveau PDF pour notre projet.
Comment fais-je? C'est très facile avec les bibliothèques du PYPDF.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
|
Le nouveau fichier de rapport ne comporte que 38 pages, ce qui nous aidera à intégrer rapidement le document.
Chargement et division des rapports financiers
Dans votre répertoire de données de projet, mettez votre fichier nouvellement créé à Création de Motorsport_Games_Financial_Report.pdf, qui sera indexé pour le projet.
Les rapports financiers sont généralement au format PDF, contenant des données tabulaires, des notes de bas de page et des déclarations juridiques étendues. Nous utilisons le facteur de pourader de Llamaindex pour charger ces documents et les convertir en documents.
1 2 3 |
|
Étant donné que les rapports sont très importants à traiter en tant que documents uniques, nous les avons fendus en morceaux ou nœuds plus petits. Chaque morceau correspond à une page ou à une section, il aide à récupérer plus efficacement.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
|
Pour comprendre le processus de l'ingestion de document, voir le diagramme ci-dessous.
Désormais, nos données financières sont prêtes à être vectorisées et stockées pour la récupération.
Construire la base de données vectorielle avec ChromAdb
Nous utiliserons ChromAdB pour la base de données vectorielle rapide, précise et locale. Notre représentation intégrée du texte financier sera stockée dans ChromAdB.
Nous initialisons la base de données vectorielle et configurons le modèle de texte nomique en utilisant Olllama pour la génération d'intégration locale.
1 2 3 4 5 6 7 8 9 10 11 12 |
|
Enfin, nous créons un indice vectoriel à l'aide de VectorStoreIndex de Llamaindex. Cet index relie notre base de données vectorielle au moteur de requête de Llamaindex.
1 2 3 4 |
|
Le code ci-dessus créera l'indice vectoriel à l'aide de texte nomique à l'emploi à partir de documents texte financiers. Cela prendra du temps, en fonction de la spécification du système local.
Lorsque votre indexation est terminée, vous pouvez utiliser le code pour la réutilisation qui est intégré si nécessaire sans réindexer à nouveau.
1 2 3 |
|
Cela vous permettra d'utiliser le fichier d'intégration ChromAdB à partir du stockage.
Maintenant, notre charge lourde a été effectuée, il est temps pour interroger le rapport et se détendre.
Requête les données financières avec Gemini 2.0
Une fois nos données financières indexées, nous pouvons poser des questions sur le langage naturel et recevoir des réponses précises. Pour l'interrogation, nous utiliserons le modèle Flash GEMINI-2.0 qui interagit avec notre base de données vectorielle pour récupérer les sections pertinentes et générer des réponses Insights.
Configuration du gemini-2.0
1 2 3 |
|
Initier le moteur de requête en utilisant Gemini 2.0 avec un indice vectoriel
1 |
|
Requêtes et réponse exa mple
Ci-dessous, nous avons plusieurs requêtes avec différentes réponses:
Requête
1 2 3 |
|
Réponse
Image correspondante du rapport:
Requête-2
1 2 3 4 5 |
|
Réponse
Image correspondante du rapport:
Requête-3
1 2 3 4 5 |
|
Réponse
Requête-4
1 2 3 4 5 |
|
Réponse
Image en corressification du rapport:
Requête-5
1 2 3 4 5 |
|
Réponse
Image en corressification du rapport:
Requête-6
1 2 3 4 5 |
|
Réponse
Image correspondante du rapport:
Requête-7
1 2 3 4 5 |
|
Réponse
Requête-8
1 2 3 4 5 |
|
Réponse
Image correspondante du rapport:
Requête locale utilisant lama 3.2
Tirez parti de Llama 3.2 localement pour interroger les rapports financiers sans s'appuyer sur des modèles basés sur le cloud.
Installation de lama 3.2: 1b
1 2 |
|
Requête-9
1 2 3 4 5 |
|
Réponse
Image en corressification du rapport:
Routage avancé des requêtes avec Llamaindex
Parfois, nous avons besoin à la fois de récupération détaillée et d'informations résumées. Nous pouvons le faire en combinant à la fois l'indice vectoriel et l'indice de résumé.
- Index vectoriel pour la récupération précise des documents
- Indice de résumé pour les résumés financiers concis
Nous avons déjà construit l'indice vectoriel, nous allons maintenant créer un indice de résumé qui utilise une approche hiérarchique pour résumer les états financiers.
1 2 3 |
|
Intégrez ensuite RouterQuereryEngine, qui décide conditionnellement de récupérer les données de l'indice de résumé ou de l'indice vectoriel en fonction du type de requête.
1 2 3 |
|
Création maintenant du moteur de requête sommaire
1 2 3 |
|
Ce moteur de requête sommaire va dans l'outil de résumé. et le moteur de requête vectorielle dans l'outil vectoriel.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
|
Les deux outils sont effectués maintenant, nous connectons ces outils via le routeur de sorte que lorsque vous remettez le cul via le routeur, il décidera quel outil utiliser en analysant la requête utilisateur.
1 2 3 4 5 6 7 8 |
|
Notre système de requête avancé est entièrement configuré, interroge maintenant notre moteur de requête avancé nouvellement favorisé.
Requête-10
1 2 3 4 |
|
Réponse
Vous pouvez voir que notre routeur intelligent décidera d'utiliser l'outil de résumé car dans l'utilisateur de la requête demande un résumé.
Requête-11
1 2 |
|
Réponse
Et ici, le routeur sélectionne l'outil vectoriel car l'utilisateur demande des informations spécifiques, pas un résumé.
Tout le code utilisé dans cet article est ici
Conclusion
Nous pouvons analyser efficacement les rapports financiers avec Llamaindex, ChromAdb et Advanced LLMS. Ce système permet des informations financières automatisées, des requêtes en temps réel et une résumé puissant. Ce type de système rend l'analyse financière plus accessible et efficace pour prendre de meilleures décisions lors de l'investissement, de la négociation et des affaires.
Principaux à retenir
- Le système de récupération de documents alimenté par LLM peut réduire considérablement le temps consacré à l'analyse des rapports financiers complexes.
- Une approche hybride utilisant le cloud et les LLM locales garantit un moyen rentable, de confidentialité et flexible de concevoir un système.
- Le cadre modulaire de Llamaindex permet un moyen facile d'automatiser le rapport financier Rag Workflows
- Ce type de système peut être adapté à différents domaines tels que les documents juridiques, les rapports médicaux et le dépôt réglementaire, ce qui en fait une solution de chiffon polyvalente.
Questions fréquemment posées
Q 1. Comment le système gère-t-il différents rapports financiers?A. Le système est conçu pour traiter tous les documents financiers structurés en les divisant en morceaux de texte, en les intégrant et en les stockant dans ChromAdb. De nouveaux rapports peuvent être ajoutés dynamiquement sans nécessiter de réindexation complète.
Q 2. Cela peut-il être étendu pour générer des graphiques financiers et des visualisations?A. Oui, en intégrant Matplotlib, Pandas et rational, vous pouvez visualiser les tendances telles que la croissance des revenus, l'analyse des pertes nettes ou la distribution des actifs.
Q3. Comment le système de routage des requêtes améliore-t-il la précision?A. Le RouterQueryEngine détecte automatiquement si une requête nécessite une réponse résumé ou une récupération de données financières spécifique. Cela réduit les sorties non pertinentes et assure une précision des réponses.
Q 4. Dans ce système adapté à une analyse financière en temps réel?A. Cela peut, mais cela dépend de la fréquence à laquelle le magasin vectoriel est mis à jour. Vous pouvez utiliser API d'intégration OpenAI pour un pipeline d'ingestion continu pour la requête du rapport financier en temps réel dynamiquement.
Les médias présentés dans cet article ne sont pas détenus par l'analytique vidhya et sont utilisés à la discrétion de l'auteur.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Article chaud

Outils chauds Tags

Article chaud

Tags d'article chaud

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Qu'est-ce que le protocole de contexte modèle (MCP)?

Construire un agent de vision local utilisant omniparser v2 et omnitool

Replit Agent: un guide avec des exemples pratiques

Guide de la piste ACT-ONE: Je me suis filmé pour le tester

Deepseek publie un cadre 3FS et SmallPond

Elon Musk et Sam Altman s'affrontent plus de 500 milliards de dollars Stargate Project

5 invites Grok 3 qui peuvent faciliter votre travail

J'ai essayé le codage d'ambiance avec Cursor Ai et c'est incroyable!
