Live Link:https://proposia-salesproposal.streamlit.app/
Turn client RFPs into grounded, professional sales proposals using your company's own knowledge base.
Proposia is a practical RAG-based sales engineering application that helps businesses respond to Requests for Proposals (RFPs) faster and more consistently.
Instead of asking an LLM to invent a proposal from scratch, Proposia first processes the client's requirements, retrieves relevant information from the company's private knowledge base, and uses that grounded context to generate a proposal.
It supports both PDF RFPs and plain-text RFPs, with a chatbot-style workflow for follow-up revisions.
A basic RAG demo often looks like:
PDF -> Chunk -> Embed -> Vector DB -> Question -> Answer
Proposia applies the same core concepts to a real business workflow:
Client RFP
|
+--> PDF / Text
|
v
RFP Processing
|
Load -> Clean -> Chunk -> Embed
|
v
Retriever
|
v
ChromaDB
|
v
Relevant Company Knowledge
|
v
Prompt + Context
|
v
Groq LLM
|
v
Sales Proposal
|
v
Chat / Refine
The project intentionally focuses on a small, understandable architecture rather than unnecessary multi-agent complexity.
Sales teams often receive long RFPs containing business, technical, security, integration, delivery, timeline, and commercial requirements.
The team then has to manually:
- Understand the RFP.
- Find relevant company services.
- Search similar case studies.
- Identify technical capabilities.
- Find relevant technologies.
- Prepare an executive summary.
- Write the proposed solution.
- Prepare implementation details.
- Add pricing and assumptions.
- Revise the proposal.
Proposia connects:
Client requirements -> Company knowledge -> Retrieval -> Grounded proposal generation
- PDF RFP processing
- Plain-text RFP input
- Company knowledge-base ingestion
- Markdown, TXT, CSV, JSON and PDF knowledge sources
- Metadata-aware document processing
- Recursive chunking
- Semantic embeddings
- Persistent ChromaDB vector store
- RFP-based semantic retrieval
- Grounded proposal generation
- Groq LLM integration
- Chatbot-style proposal refinement
- Modular Python architecture
The company knowledge base contains reusable business information:
knowledge_base/
|
+-- capabilities/
| +-- ai_ml.md
| +-- cloud.md
| +-- data_engineering.md
| +-- web_development.md
|
+-- case_studies/
| +-- ecommerce.md
| +-- fintech.md
| +-- healthcare.md
| +-- inventory.md
|
+-- company/
| +-- company_profile.md
| +-- services.md
| +-- technology_stack.md
|
+-- pricing/
+-- pricing.json
This knowledge can contain:
- Company profile
- Services
- Technical capabilities
- Industries
- Case studies
- Technology stack
- Pricing
Company Documents
|
v
Loader
|
v
Metadata
|
v
Chunker
|
v
Embedder
|
v
ChromaDB
RFP PDF / Text
|
v
Loader
|
v
Parser
|
v
Chunker
|
v
Embedder
|
v
RFP Query Chunks
|
v
Retriever
|
v
ChromaDB
|
v
Relevant Company Context
|
v
LLM
|
v
Sales Proposal
An important architectural decision is that the client RFP is not permanently stored in the company's knowledge-base collection.
The distinction is:
Company Knowledge
-> Persistent information stored in ChromaDB
Client RFP
-> Temporary input used to retrieve relevant company knowledge
Component Technology
Language Python RAG Framework LangChain PDF Processing PyPDFLoader Chunking RecursiveCharacterTextSplitter Embeddings BAAI/bge-small-en-v1.5 Embedding Dimension 384 Vector Database ChromaDB Similarity Metric Cosine LLM Provider Groq LLM Model Llama 3.3 70B Versatile Environment python-dotenv API Layer FastAPI (planned) Frontend Chatbot UI (planned)
+-------------------+
| Client RFP |
| PDF / Text |
+---------+---------+
|
v
+-------------------+
| RFP Processor |
| Load / Parse |
| Chunk / Embed |
+---------+---------+
|
v
+-------------------+
| Retriever |
+---------+---------+
|
v
+-------------------+
| ChromaDB |
| Company Knowledge |
+---------+---------+
|
v
+-------------------+
| Relevant Context |
+---------+---------+
|
+------------+------------+
| |
v v
RFP Requirements Proposal Rules
| |
+------------+------------+
|
v
+-------------------+
| Groq / LLM |
+---------+---------+
|
v
+-------------------+
| Sales Proposal |
+---------+---------+
|
v
+-------------------+
| Chat / Refinement |
+-------------------+
Proposia/
|
+-- backend/
| +-- app/
| | +-- ingestion/
| | | +-- __init__.py
| | | +-- loader.py
| | | +-- metadata.py
| | | +-- chunker.py
| | | +-- embedder.py
| | |
| | +-- database/
| | | +-- __init__.py
| | | +-- vector_store.py
| | |
| | +-- retrieval/
| | | +-- __init__.py
| | | +-- retriever.py
| | |
| | +-- rfp/
| | | +-- __init__.py
| | | +-- loader.py
| | | +-- parser.py
| | | +-- processor.py
| | |
| | +-- llm/
| | +-- __init__.py
| | +-- prompt.py
| | +-- client.py
| | +-- generator.py
| |
| +-- tests/
| +-- test_full_pipeline.py
|
+-- knowledge_base/
| +-- capabilities/
| +-- case_studies/
| +-- company/
| +-- pricing/
|
+-- data/
| +-- rfps/
| +-- sample_rfp.pdf
|
+-- database/
| +-- chroma/
|
+-- .env
+-- .gitignore
+-- requirements.txt
+-- README.md
git clone https://github.com/CHimPat073/PROPOSIA.git
cd ProposiaWindows:
python -m venv .venv
.venv\Scripts\activateLinux/macOS:
python3 -m venv .venv
source .venv/bin/activatepip install -r requirements.txtIf required:
pip install langchain-groq python-dotenvCreate .env at the project root:
GROQ_API_KEY=your_groq_api_key
GROQ_MODEL=llama-3.3-70b-versatileNever commit the .env file.
Recommended .gitignore entries:
.env
.venv/
__pycache__/
*.pycRun commands from the project root.
python -m backend.tests.test_full_pipelinepython -m backend.tests.test_full_pipeline pdfpython -m backend.tests.test_full_pipeline textpython -m backend.tests.test_full_pipeline chatWe need a cloud-based inventory management platform
with predictive demand forecasting, real-time analytics,
multi-warehouse support and REST API integration.
cloud.md
inventory.md
data_engineering.md
ai_ml.md
case_studies/inventory.md
services.md
# Executive Summary
...
# Understanding of Requirements
...
# Proposed Solution
...
# Technical Approach
...
# Relevant Experience
...
# Implementation Timeline
...
# Pricing
...
# Next Steps
...
After the initial proposal is generated, the user can continue working on the same RFP.
User:
Generate a proposal.
AI:
[Proposal]
User:
Make it shorter and emphasize security.
AI:
[Revised proposal]
User:
Add more detail about our cloud capabilities.
AI:
[Updated proposal]
This makes Proposia a lightweight Sales Proposal Copilot, rather than only a document-question-answering application.
The company knowledge base is persistent.
The client RFP is an input/query.
The system reuses the same embedding model and retrieval infrastructure rather than creating separate pipelines for every input type.
loader.py
-> Loading
parser.py
-> Cleaning
chunker.py
-> Chunking
embedder.py
-> Embedding
vector_store.py
-> Storage and similarity search
retriever.py
-> Retrieval
prompt.py
-> Prompt construction
client.py
-> LLM communication
generator.py
-> Proposal generation
The proposal generator is instructed to rely on retrieved company knowledge and avoid inventing unsupported company-specific information.
The initial version intentionally avoids:
- Multi-agent systems
- LangGraph
- BM25
- Hybrid search
- Reranking pipelines
- Kafka
- Kubernetes
- Microservices
The objective is a practical and explainable RAG application.
- Knowledge-base creation
- Multi-format document loading
- Metadata handling
- Text cleaning
- Recursive chunking
- Embedding pipeline
- ChromaDB persistence
- Vector similarity search
- RFP PDF loading
- RFP parsing
- RFP processing
- RFP embeddings
- RFP-based retrieval
- Groq LLM integration
- Prompt-based proposal generation
- Text RFP input
- PDF RFP input
- Initial chatbot workflow
- FastAPI API layer
- Chatbot frontend
- Proposal formatting
- PDF export
- Source/reference display
- Retrieval and generation evaluation
- Deployment
Potential future extensions:
- Automatic requirement extraction
- Requirement categorization
- Must-have vs nice-to-have detection
- Risk and gap identification
- Compliance matrix generation
- Hybrid semantic + keyword search
- Reranking
- Metadata filtering
- Retrieval evaluation
- Proposal quality scoring
- Requirement-to-proposal traceability
- Missing requirement detection
- Proposal versioning
- CRM integration
- Team collaboration
- Approval workflows
- Proposal analytics
These are intentionally outside the initial MVP.
Proposia demonstrates practical understanding of:
- RAG architecture
- Data ingestion
- Document processing
- Chunking strategies
- Embedding models
- Vector databases
- Semantic similarity search
- Retrieval pipelines
- Prompt engineering
- LLM integration
- Grounded generation
- RFP processing
- Conversational AI
- Modular Python architecture
- Real-world business workflow design
The long-term goal is not simply:
Generate text with an LLM.
It is:
Help sales teams turn complex client requirements into accurate, company-grounded proposals faster.
PROPOSIA
|
+-----------+-----------+
| | |
RFP Company Sales
Intelligence Knowledge Intelligence
| | |
+-----------+-----------+
|
v
Proposal Copilot
Himanshu Pathak
Built as a learning-focused project to understand how RAG and LLM systems can be applied to real-world business workflows.
From RFP to Proposal, grounded in your company's knowledge.