- Project Overview
- Polyfinance's 2024 Datathon
- Demo
- Setup and Launch
- Features
- User Interface
- Tech Stack
- Architecture
- Functionality
- Contributors
- License
Geppetto is an advanced AI-driven application designed to empower financial analysts by automating key tasks, making the analysis of financial reports faster and more insightful. Developed as part of the 2024 Polyfinance Datathon, Geppetto leverages generative AI and the AWS ecosystem to provide cutting-edge tools like automatic summarization, sentiment analysis, and real-time financial monitoring. This tool offers seamless integration with AWS services, enabling analysts to extract KPIs, visualize data, and perform comprehensive trend predictions with just a few clicks.
The Polyfinance 2024 Datathon is a high-impact 48-hour challenge, sponsored by National Bank of Canada, focusing on innovation in financial analytics. Participants were tasked with developing a generative AI-powered tool to assist financial analysts in synthesizing and interpreting data more efficiently. Armed with AWS resources like Bedrock, Cloud9, and a wealth of financial data, the Geppetto team created a robust solution to provide real-time insights, facilitate informed decision-making, and increase the accessibility of complex financial analyses.
To run this project, you will need:
- Python installed on your machine.
- Node.js and npm installed on your machine.
-
Clone the Repository:
git clone https://github.com/o-benz/Geppetto.git cd geppetto -
Run the Automated Setup Script:
- Simply run the provided setup script to automate the setup and launch process:
python setup.py
- This script will handle dependencies, credentials, and initial setup. If it encounters any issues, continue with the manual steps below.
- Simply run the provided setup script to automate the setup and launch process:
-
Manual Setup (if the script fails):
- AWS Credentials Setup: Copy the
credentialsfile from the repository root toC:\Users\user\.aws\(replaceuserwith your Windows username). - Install Required Python Packages:
pip install -r requirements.txt
- AWS Credentials Setup: Copy the
-
Angular Client Setup:
cd client npm ci -
NodeJS Server Setup:
cd server npm ci
- Start the Angular Client:
cd client npm start - Start the NodeJS Server in a separate terminal:
cd server node index.js - Access the Angular application in your browser at
http://localhost:4200.
Geppetto uses generative AI to generate concise, accurate summaries of extensive financial reports. This feature quickly extracts essential insights, allowing analysts to gain an overview without reading through lengthy data.
Geppetto’s sentiment analysis capability interprets sections of the report, such as executive comments, to detect tones like optimism or caution. This feature gives analysts a summary of company sentiment, helpful for understanding the broader mood conveyed in reports.
Geppetto includes an AI-powered chatbot, enabling users to ask follow-up questions about the analyzed report. The chatbot uses advanced prompt engineering and a specialized retrieval-augmented generation (RAG) model to provide accurate, context-specific answers, making it easier for analysts to dive deeper into specific insights or clarify details on demand.
Geppetto extracts core KPIs and presents them through visually appealing, interactive charts. Users can export individual visuals as PNGs or download an entire report as a PDF or CSV.
Geppetto’s user-friendly, interactive interface makes navigating between various tools straightforward. The interface includes a:
- Home Page: "Start Analyzing" button leading to report upload.

- Features Page: Displays the uploaded report’s company info, logo, and basic details.

- Summary & Sentiment Analysis Page + ChatBot: Provides an AI-generated summary and sentiment overview.

- Data Analysis Page: Includes key KPIs, five interactive charts, and AI-generated insights.

Each feature is designed with accessibility in mind, making complex data easy to navigate and understand.
- Frontend: Angular (TypeScript), HTML, SCSS, and a responsive design framework for optimized user interaction.
- Backend: NodeJS, responsible for handling HTTP requests and serving as the link between the Angular client and AWS.
- AWS Services: Amazon Bedrock for generative AI, Amazon S3 for secure storage, and integrated API calls to process and retrieve data.
- Backend Processing: Python scripts communicate with the AWS API to load files into S3, synchronize data with our knowledge base, and perform prompt engineering to generate high-quality responses.
Our application is designed with advanced prompt engineering techniques to optimize responses and ensure analysts receive accurate, contextually relevant insights.
Geppetto’s architecture is modular and scalable, consisting of:
- Angular Frontend that communicates via HTTP with:
- NodeJS Backend, which interacts with Python scripts.
- AWS Integration: Python scripts utilize AWS services, including Amazon S3 for storage and Bedrock for AI-powered processing.
Geppetto provides a suite of functionalities:
- Upload Financial Reports and analyze them in real-time.
- Generate Summaries and Sentiment Analysis with generative AI.
- Access a Finance ChatBot for follow-up questions.
- Display Financial Indicators and KPIs through visually intuitive, exportable charts.
- Omar Benzekri - o-benz
- Tinihane Boudiab - tinhinaneboudiab
- Younes Allouchi - youyoulebgdemeknes
- Souhil Zaida - The-Lite
This project is licensed under the MIT License. See the LICENSE file for details.

