This project is a cutting-edge Generative AI-powered application that streamlines the evaluation process of proposals submitted in response to Requests for Proposals (RFPs). The app leverages Natural Language Processing (NLP) techniques to analyze and summarize proposals, compare them based on specific criteria, and generate comprehensive reports to assist decision-makers in selecting the most suitable proposal efficiently.
The app is designed to save time, improve decision-making accuracy, and provide an intuitive experience for users. With features like uploading proposal PDFs, generating comparison reports, and downloading results as PDFs, the application brings the power of AI into the business workflow.
Hagging Face Space https://huggingface.co/spaces/batosoft/proposals-comparison
- PDF Uploads: Upload RFP and proposal documents in PDF format.
- AI-powered Summarization: Automatically summarizes key sections of each proposal using advanced Generative AI models.
- Comparison Reports: The app compares two proposals based on the specific requirements outlined in the RFP, identifying key differentiators.
- Downloadable PDF Reports: Export the comparison results as a downloadable PDF report for further review.
- User-friendly Interface: Built using Gradio, offering an easy-to-use interface for non-technical users.
-
Backend:
- Python 3.x
- Hugging Face Transformers for text summarization (
distilbart-cnn-12-6) - PyPDF2 for PDF text extraction
- fpdf for PDF report generation
-
Frontend:
- Gradio: A simple, interactive interface to upload PDFs and download the comparison results.
-
AI Model:
- DistilBART: Pre-trained transformer-based summarization model for condensing lengthy proposals into concise summaries.
- Upload RFP and Proposal PDFs: The app accepts the RFP and two proposal documents in PDF format.
- AI Summarization: Using NLP, the text is extracted and passed through a summarization model to generate concise versions of each proposal.
- Comparison: The app compares both proposals based on specific criteria derived from the RFP.
- Generate Report: A comparison report is generated, highlighting key differences between the proposals and providing recommendations.
- Download Report: Users can download the report in PDF format for further analysis and approval.
-
Clone the repository:
git clone https://github.com/yourusername/proposal-comparison-gai.git cd proposal-comparison-gai -
Set up a virtual environment:
python -m venv .venv source .venv/bin/activate # On Windows, use `.venv\Scripts\activate`
-
Install dependencies:
pip install -r requirements.txt
-
Download model dependencies: Make sure PyTorch or TensorFlow is installed to use the summarization models. Follow the instructions here:
-
Run the app:
python Proposals.py
-
Open your browser and go to the link provided by Gradio to start using the app.
- DistilBART (Distilled BART): This model is a smaller, faster variant of the BART model, trained specifically for text summarization. It reduces the length of input documents while maintaining key details and context, making it perfect for summarizing RFPs and proposals.
.
├── Proposals.py # Main application script
├── requirements.txt # Required dependencies
├── README.md # Project README
└── .venv/ # Virtual environment (created after setup)
The text extracted from the PDFs undergoes the following steps:
- PDF Parsing: Using
PyPDF2, the content is extracted from the RFP and proposal documents. - Summarization: The extracted text is summarized using the
distilbart-cnn-12-6model, providing a condensed version for easier comparison. - Comparison: The summaries are analyzed against the criteria in the RFP, and the most significant differentiators between proposals are highlighted.
- PDF Text Extraction: Handling complex PDFs with tables, charts, and other non-text elements.
- Model Accuracy: Ensuring the summarization retains all important technical details.
- Performance: Optimizing the AI model for large, complex proposals.
- Enhanced PDF Parsing: Support for more complex document structures such as tables, images, and multi-column text.
- Customizable Summarization: Allow users to control the level of detail in summaries.
- Multi-proposal Comparison: Extend the comparison to handle more than two proposals at once.
We welcome contributions! If you want to contribute to the project, feel free to create a fork, submit pull requests, or raise issues. Please follow the standard GitHub practices for collaboration.
This project is licensed under the MIT License.
If you have any questions or suggestions, feel free to reach out to me via batosoft3@gmail.com.
This README provides an in-depth overview, technical insights, and a clear setup guide for users and contributors. You can adapt it based on your project’s updates or new features!