NOVA is an advanced AI assistant with built-in multi-document intelligence and real-time web search capabilities. Designed for professionals, researchers, and curious minds, NOVA combines state-of-the-art language models with powerful document analysis tools.
Access the Deployed version of NOVA Here: https://nova-ai-v1.streamlit.app
- Multi-Document Intelligence
- 📄 Support for 15+ file types (PDF, DOCX, XLSX, PPT, CSV, JSON, etc.)
- 🔍 Semantic search across uploaded documents
- 📊 Structured data analysis (Excel, CSV, JSON)
- Smart Web Integration
- 🌐 Real-time web search powered by Tavily
- ⚡ Automatic search triggering based on query context
- Advanced NLP Capabilities
- 💬 Natural conversation interface
- 🤖 Groq-powered ultra-fast LLM responses
- 🔧 Customizable system prompts and templates
- Enterprise-Ready Features
- 🧠 In-memory vector store for document embeddings
- ⚙️ Chunk-based document processing
- 🎨 Streamlit-based professional UI
- Python 3.9+
- API keys for:
# Clone repository
git clone https://github.com/yourusername/nova-ai-assistant.git
cd nova-ai-assistant
# Create virtual environment
python -m venv venv
source venv/bin/activate # Linux/Mac
# venv\Scripts\activate # Windows
# Install dependencies
pip install -r requirements.txt
# Set up environment variables
cp .env.example .env
# Add your API keys to .env
# ⚙️ Configuration
Edit the .env file with your API credentials:
GROQ_API_KEY=your_groq_key
TAVILY_API_KEY=your_tavily_key
COHERE_API_KEY=your_cohere_key
HUGGINGFACE_API_KEY=your_hf_key
# 💻 Usage
streamlit run app.py-
Upload documents through the web interface
-
Ask questions about content or request analysis
-
NOVA automatically determines when to use:
-
Document content
-
Web search results
-
Internal knowledge base
-
"Summarize the key points from my PDF"
-
"Compare Q2 sales figures from the Excel sheet"
-
"What's the latest news about AI advancements?"
-
"Create a bullet list from Section 3 of the contract"
nova-ai-assistant/
├── app.py # Main Streamlit application
├── config.py # Configuration settings
├── models/
│ └── llm.py # LLM initialization and tools
├── prompts/
│ └── templates.py # System prompt templates
├── utils/
│ ├── document_utils.py # Document processing
│ ├── search_utils.py # Web search functions
│ └── ui_utils.py # Streamlit UI components
└── requirements.txt # Dependencies-
Document Processing
- Automatic file type detection
- Chunk-based text splitting
- In-memory vector store with Cohere/HuggingFace embeddings
-
AI Pipeline
- Dynamic prompt engineering
- Automatic tool selection (web/doc search)
- Thought process visualization
-
UI Features
- Dark/light mode support
- Document preview pane
- Interactive chat history
- File-type specific visual indicators
We welcome contributions! Please follow these steps:
-
Fork the repository
-
Create your feature branch (git checkout -b feature/AmazingFeature)
-
Commit your changes (git commit -m 'Add some AmazingFeature')
-
Push to the branch (git push origin feature/AmazingFeature)
-
Open a Pull Request
Distributed under the MIT License. See LICENSE for more information.
- Groq for ultra-fast LLM inference
- Tavily for real-time web search API
- LangChain team for document processing tools
- Streamlit for interactive UI framework
- Developed by Lalan Kumar