This repository contains the implementation of a Retrieval-Augmented Generation (RAG) pipeline for analyzing SEC financial reporting documents. The project addresses key limitations of large language models (LLMs) in financial analysis, such as hallucination, limited context size, and difficulty in handling complex queries.
Jupyter Notebook
3
27 commits
updated Dec 8, 2024
This repository contains the implementation of a Retrieval-Augmented Generation (RAG) pipeline for analyzing SEC and 10K financial documents. The project addresses key limitations of large language models (LLMs) in financial analysis, such as hallucination, limited context size, and difficulty in handling complex queries.
The project focuses on leveraging a multi-layer RAG pipeline for strategic financial investment analysis. By integrating LLMs with advanced retrieval techniques, the pipeline ensures accurate and reliable answers to both broad and foundational financial questions.
git clone https://github.com/blahajj/ece661_proj.git
cd ece661_proj
pip install -r requirements.txt
constants.py file:
OPENAI_API_KEY = "your_api_key_here"
Start the Streamlit interface to process documents and generate responses:
streamlit run app.py
Run the Jupyter notebook to evaluate performance:
jupyter notebook test.ipynb
ECE661_PROJ/
├── chromadb/ # ChromaDB database for indexing
├── data/ # Directory for financial documents
├── env/ # Environment configurations
├── testing/ # Test scripts
├── app.py # Streamlit app
├── chunking.py # Chunking methods
├── constants.py # API keys and constants
├── data_preprocessing.py # Financial document preprocessing
├── evaluation_results_rag.csv # Evaluation results
├── evaluation.py # Evaluation metrics and scoring
├── question_generation.py # Sub-question generation logic
├── response_generation.py # LLM-based response generation
├── storing_retrieval.py # Storing and retrieving chunks with ChromaDB
├── requirements.txt # Python dependencies
├── README.md # Documentation
└── test.ipynb # Evaluation and testing notebook
The evaluation results are saved in evaluation_results_rag.csv
For more details, see the test.ipynb notebook.
Contributions are welcomed.
This repository contains the implementation of a Retrieval-Augmented Generation (RAG) pipeline for analyzing SEC financial reporting documents. The project addresses key limitations of large language models (LLMs) in financial analysis, such as hallucination, limited context size, and difficulty in handling complex queries.
Jupyter Notebook
3
27 commits
updated Dec 8, 2024
This repository contains the implementation of a Retrieval-Augmented Generation (RAG) pipeline for analyzing SEC and 10K financial documents. The project addresses key limitations of large language models (LLMs) in financial analysis, such as hallucination, limited context size, and difficulty in handling complex queries.
The project focuses on leveraging a multi-layer RAG pipeline for strategic financial investment analysis. By integrating LLMs with advanced retrieval techniques, the pipeline ensures accurate and reliable answers to both broad and foundational financial questions.
git clone https://github.com/blahajj/ece661_proj.git
cd ece661_proj
pip install -r requirements.txt
constants.py file:
OPENAI_API_KEY = "your_api_key_here"
Start the Streamlit interface to process documents and generate responses:
streamlit run app.py
Run the Jupyter notebook to evaluate performance:
jupyter notebook test.ipynb
ECE661_PROJ/
├── chromadb/ # ChromaDB database for indexing
├── data/ # Directory for financial documents
├── env/ # Environment configurations
├── testing/ # Test scripts
├── app.py # Streamlit app
├── chunking.py # Chunking methods
├── constants.py # API keys and constants
├── data_preprocessing.py # Financial document preprocessing
├── evaluation_results_rag.csv # Evaluation results
├── evaluation.py # Evaluation metrics and scoring
├── question_generation.py # Sub-question generation logic
├── response_generation.py # LLM-based response generation
├── storing_retrieval.py # Storing and retrieving chunks with ChromaDB
├── requirements.txt # Python dependencies
├── README.md # Documentation
└── test.ipynb # Evaluation and testing notebook
The evaluation results are saved in evaluation_results_rag.csv
For more details, see the test.ipynb notebook.
Contributions are welcomed.