AI Office Assistant
by varma5359
README.md
# AI Office Assistant
A beginner-friendly AI project using:
- MCP (Model Context Protocol)
- RAG (Retrieval-Augmented Generation)
- Groq LLM
- ChromaDB
- Weather API
- Excel Automation
- Word Automation
Features
- Ask weather questions
- Query local PDF and DOCX documents
- Automatically save weather results to Excel
- Automatically generate Word reports
- MCP tool calling
mcp-rag-office-assistant/
│
├── app.py
├── requirements.txt
├── .env
├── .gitignore
├── README.md
│
├── data/
│ ├── pdfs/
│ ├── docs/
│ └── vector_db/
│
├── outputs/
│ ├── excel/
│ └── word/
│
├── config/
│ ├── __init__.py
│ ├── settings.py
│ └── logger.py
│
├── llm/
│ ├── __init__.py
│ ├── groq_model.py
│ └── prompt.py
│
├── rag/
│ ├── __init__.py
│ ├── loader.py
│ ├── splitter.py
│ ├── embeddings.py
│ ├── vector_store.py
│ └── retriever.py
│
├── mcp_server/
│ ├── __init__.py
│ ├── server.py
│ ├── tools.py
│ └── schemas.py
│
├── services/
│ ├── __init__.py
│ ├── weather_service.py
│ ├── excel_service.py
│ └── word_service.py
│
1. LangChain
-------------
Purpose
- Build LLM applications
- Prompt Templates
- Chains
- Document handling
- Retrieval
Prompt
↓
Retriever
↓
LLM
↓
Answer
2. LangChain Community
-----------------------
User
│
▼
Groq LLM
│
├──────────────┐
▼ ▼
MCP Tools RAG
│ │
Weather API ChromaDB
│ │
└──────┬───────┘
▼
Final Answer
│
┌──────┴──────┐
▼ ▼
Excel Word
# Complete Architecture
USER
│
▼
Groq LLM
│
Tool Calling (MCP)
│
┌──────────┬─────────────┬─────────────┐
▼ ▼ ▼
Weather Excel Tool Word Tool
│ │ │
▼ ▼ ▼
OpenWeather Microsoft Microsoft
API Excel Word
│ │
▼ ▼
Write Cells Write Report
│ │
└──────┬──────┘
▼
Save Documents
# Then We'll Upgrade Even More
- After Office automation, we'll add more desktop tools.
Desktop Agent
├── Weather Tool
├── Excel Automation
├── Word Automation
├── Open Chrome
├── Read PDF
├── Search Documents (RAG)
├── Take Screenshot
├── File Explorer
├── Calculator
├── Notepad
├── Send Email
├── Voice Input (Optional)
└── OCR (Optional)
# 🤖 MCP RAG Office Assistant
An AI-powered Office Assistant built using **LLM + RAG + Tool Calling + Office Automation**.
The assistant can understand user requests, decide the required action, retrieve information from documents, call external tools, and automatically generate Microsoft Excel and Word reports.
---
# 🚀 Project Overview
Traditional applications require users to manually search documents, collect information, and create reports.
This project demonstrates an AI Agent workflow:
```
User Query
|
|
v
LLM (Groq)
|
|
+----------------------+
| |
v v
Weather Tool RAG Pipeline
| |
| |
Weather API Document Retrieval
|
|
v
ChromaDB
|
|
v
Context
|
|
v
Groq LLM
|
|
v
Office Automation
+-------------+
| |
v v
Excel Microsoft Word
```
---
# 🎯 Project Objective
Build a beginner-level AI Agent system that demonstrates:
- Large Language Model integration
- Retrieval Augmented Generation (RAG)
- Tool execution
- MCP architecture concepts
- Document understanding
- Automated report generation
- Desktop application automation
---
# 🧠 Technologies Used
## Artificial Intelligence
| Technology | Purpose |
|-|-|
| Groq LLM | Language model |
| LangChain | LLM application framework |
| RAG | Document question answering |
| ChromaDB | Vector database |
| HuggingFace Embeddings | Text embeddings |
## Backend
| Technology | Purpose |
|-|-|
| Python | Programming language |
| PyWin32 | Microsoft Office automation |
| Requests | API calls |
| Logging | Application monitoring |
## Office Automation
| Application | Usage |
|-|-|
| Microsoft Excel | Generate reports |
| Microsoft Word | Create documents |
---
# 📂 Project Structure
```
mcp-rag-office-assistant/
│
├── app.py
│
├── config/
│ |
│ ├── settings.py
│ └── logger.py
│
│
├── llm/
│ |
│ ├── grok_model.py
│ └── prompt.py
│
│
├── rag/
│ |
│ ├── loader.py
│ ├── splitter.py
│ ├── embeddings.py
│ ├── vector_store.py
│ ├── retriever.py
│ └── rag_pipeline.py
│
│
├── services/
│ |
│ ├── weather_service.py
│ ├── excel_service.py
│ ├── word_service.py
│ └── office_agent.py
│
│
├── agent/
│ |
│ └── office_agent_executor.py
│
│
├── data/
│ |
│ ├── pdf/
│ |
│ └── docs/
│
│
├── vector_db/
│
│
├── outputs/
│ |
│ ├── excel/
│ |
│ └── word/
│
│
└── requirements.txt
```
---
# ⚙️ Installation
## 1. Clone Project
```bash
git clone <repository-url>
cd mcp-rag-office-assistant
```
---
# 2. Create Virtual Environment
```bash
python -m venv .venv
```
Activate:
### Windows
```bash
.venv\Scripts\activate
```
---
# 3. Install Requirements
```bash
pip install -r requirements.txt
```
---
# 4. Environment Variables
Create:
```
.env
```
Add:
```
GROQ_API_KEY=your_api_key
```
---
# 🔑 Groq Configuration
The project uses:
```
llama-3.3-70b-versatile
```
Model configuration:
```
config/settings.py
```
Example:
```python
LLM_MODEL="llama-3.3-70b-versatile"
```
---
# 📚 RAG Pipeline
The RAG system follows this architecture:
```
Documents
(PDF/DOCX)
|
v
Document Loader
|
v
Text Splitter
|
v
Embedding Model
|
v
Chroma Vector Database
|
v
Retriever
|
v
Groq LLM
|
v
Final Answer
```
---
# 📄 Supported Documents
Currently supported:
- PDF
- DOCX
Place files:
```
data/pdf/
data/docs/
```
Example:
```
data/pdf/company_policy.pdf
```
---
# 🔎 RAG Workflow Example
User:
```
What is the leave policy?
```
System:
1. Searches company documents
2. Retrieves relevant chunks
3. Creates context
4. Sends context + question to Groq
5. Generates answer
6. Creates Word report
Output:
```
outputs/word/
Company_Policy_Report.docx
```
---
# 🌦 Weather Tool
Example:
```
Weather Hyderabad
```
Workflow:
```
User
|
v
Weather Detection
|
v
Weather API
|
v
Excel Generator
|
v
Word Generator
```
Output:
```
outputs/
├── excel
│ └── Weather_Report.xlsx
└── word
└── Weather_Report.docx
```
---
# 📊 Excel Automation
The project uses:
```
pywin32
```
to control Microsoft Excel.
Workflow:
```
Python
|
v
Open Excel Application
|
v
Create Workbook
|
v
Write Data
|
v
Save File
```
Example:
Generated Excel:
```
Weather_Report.xlsx
```
---
# 📝 Word Automation
The project automatically opens Microsoft Word.
Workflow:
```
Python
|
v
Open Word
|
v
Create Document
|
v
Insert Content
|
v
Save DOCX
```
Example:
```
Weather_Report.docx
```
---
# 🧩 MCP Architecture Concept
This project follows MCP principles.
```
AI Agent
|
|
+----------------+
| |
v v
Resources Tools
```
## Resources
Information sources:
Examples:
- PDF files
- DOCX files
- Vector database
## Tools
Actions:
Examples:
- Weather API
- Excel Writer
- Word Writer
---
# ▶️ Running Project
Start:
```bash
python app.py
```
Example:
```
You : Weather Hyderabad
```
Output:
```
Weather report generated successfully
Excel:
outputs/excel/Weather_Report.xlsx
Word:
outputs/word/Weather_Report.docx
```
---
Example RAG:
```
You : Explain company leave policy
```
Output:
```
Company_Policy_Report.docx
```
---
# 🧪 Testing
Test RAG:
```bash
python test_rag.py
```
Expected:
```
RAG Pipeline Ready
Answer Generated
Documents Retrieved: 3
```
---
# 🛠 Future Enhancements
Planned improvements:
## 1. Streamlit Interface
Web UI:
```
User
|
v
Streamlit
|
v
AI Agent
```
---
## 2. Complete MCP Server
Add:
- MCP Resources
- MCP Tools
- MCP Prompts
---
## 3. LangGraph Integration
Future workflow:
```
START
|
Agent Node
|
Decision Node
|
Tool Node
|
Response Node
|
END
```
---
## 4. More Office Actions
Future tools:
- Email generation
- PowerPoint creation
- Excel analysis
- Meeting summary
- Report generation
---
# 🎓 Learning Concepts Covered
This project teaches:
✅ LLM Applications
✅ Prompt Engineering
✅ LangChain
✅ RAG Architecture
✅ Embeddings
✅ Vector Databases
✅ Tool Calling
✅ AI Agents
✅ MCP Concepts
✅ Office Automation
✅ Production Project Structure
---
# 👨💻 Author
AI Engineering Learning Project
Built for understanding:
```
LLM + RAG + Agents + MCP + Automation
```
This server cannot be deployed
Maintenance
ActivityStale
ResponsivenessNo issues