Complete collection of 7 internship projects (D1-D7) focused on:
- πΊοΈ Travel Assistant APIs using Google Gemini
- π RAG (Retrieval Augmented Generation) systems
- π§ Memory-enhanced conversational AI
- π‘οΈ Safety Guardrails & PII Detection
InternshipProjects/
βββ D1/ - Travel Assistant (Basic Gemini API)
βββ D2/ - Travel Assistant (Prompt Engineering)
βββ D3/ - Travel Assistant (LangGraph State Management)
βββ D4/ - Travel RAG Assistant (Qdrant Vector DB)
βββ D5/ - Memory-Enhanced Travel Assistant (Mem0 + Redis)
βββ D6/ - Advanced Travel RAG (Caching + Monitoring)
βββ D7/ - Safety Guardrails (PII Detection + Toxic Content)
βββ TREE.md - Complete file structure
βββ API_SAFETY_GUIDE.md - Important safety information
βββ .gitignore - Git configuration (sensitive files excluded)
This repository has been cleaned for GitHub upload with MAXIMUM safety:
β Deleted:
- β All
.envconfiguration files (API keys) - β All
__pycache__/Python cache - β All
*.pyccompiled files - β All
*.zipsubmission files - β All
.cache/directories - β All
output.txtlogs
β Preserved:
- β
All source code (
.pyfiles) - β
All Jupyter notebooks (
.ipynb) - β
Documentation (
README.mdin each project) - β
Dependency lists (
requirements.txt) - β Project structure
π NO API KEYS are stored in this repository.
git clone https://github.com/YOUR_USERNAME/InternshipProjects.git
cd InternshipProjectscd D1/travel-assistant # or any D2-D7cp .env.example .env # If it exists
# Edit .env and add your API keyspip install -r requirements.txtEdit main.py and change:
API_DISABLED = True # Change to False# For FastAPI projects
python main.py
# For Jupyter notebooks
jupyter notebook D*_assignment.ipynb- Goal: Learn Google Gemini API with FastAPI
- Key Concepts: LLM prompting, rate limiting
- Models: Gemini 2.5 Flash (FREE)
- Cost: $0 (within free tier)
- Goal: Master prompt templates and engineering
- Key Concepts: PromptTemplate, chain prompting
- Models: Gemini 2.5 Flash
- Cost: $0 (within free tier)
- Goal: Implement state machines for agent workflows
- Key Concepts: State graphs, agent routing
- Models: Gemini 2.5 Flash
- Cost: $0 (within free tier)
- Goal: Build retrieval-augmented generation system
- Key Concepts: Embeddings, Qdrant, vector search
- Services: Gemini + Qdrant (open-source)
- Cost: $0 (open-source Qdrant)
- Goal: Add persistent memory to conversations
- Key Concepts: Mem0 service, Redis caching, user sessions
- Services: Gemini + Mem0 + Redis
- Cost:
β οΈ Mem0 may have costs
- Goal: Production-grade RAG with monitoring
- Key Concepts: Hybrid search, caching, metrics, tracing
- Services: Embeddings + Qdrant + Redis + Prometheus + Langfuse
- Cost:
β οΈ Langfuse may have costs
- Goal: Implement multi-layer safety filters
- Key Concepts: PII detection, toxicity filtering, prompt injection
- Services: Presidio + Guardrails Hub + Gemini
- Cost: $0 (all components free/open-source)
- Google Gemini 2.5 Flash - FREE tier, fast inference
- FastAPI - Web API framework
- LangChain - LLM integration
- LangGraph - Agent state management
- Guardrails Hub - Safety validation
- Qdrant - Vector database (open-source)
- Redis - Caching and sessions
- Mem0 - Persistent memory service
- Prometheus - Metrics collection
- Langfuse - LLM trace monitoring
- Presidio - PII detection (Microsoft)
- Pydantic - Data validation
Each project has its own requirements.txt:
Common:
- Python 3.8+
- FastAPI
- Pydantic
- LangChain
- Google-Generativeai
Optional (for advanced projects):
- Qdrant-client
- Redis
- Mem0
- Prometheus-client
- Langfuse
# Create .env file (DO NOT COMMIT)
GOOGLE_API_KEY=your_key_here
MEM0_API_KEY=your_key_here # Only for D5
QDRANT_API_KEY=your_key_here # Only for D4, D6Get Free API Keys:
- Google Gemini: https://ai.google.dev
- Qdrant: https://qdrant.io (self-hosted or cloud)
- Mem0: https://mem0.ai
- Presidio: Open-source (no key needed)
- API_SAFETY_GUIDE.md - β Read this first!
- TREE.md - Complete file structure
- Each D/README.md* - Project-specific documentation
- Jupyter notebooks - Code examples with explanations
Run code without making actual API calls:
# Test imports
python -c "import langchain, fastapi; print('β
OK')"
# Check project structure
python -c "import os; print([d for d in os.listdir('.') if d.startswith('D')])"
# View notebook structure
jupyter nbconvert --to script D1/travel-assistant/D1-assignment.ipynb --stdout | head -50Create .env file in project root:
# API Keys
GOOGLE_API_KEY=sk-...
MEM0_API_KEY=...
QDRANT_API_KEY=...
# Server
API_PORT=8001
API_HOST=0.0.0.0
# Database
REDIS_HOST=localhost
REDIS_PORT=6379
QDRANT_URL=http://localhost:6333
# Monitoring (Optional)
LANGFUSE_API_KEY=...
PROMETHEUS_PORT=8000
# Safety (Optional)
PRESIDIO_API_KEY=...- Explore: Read Jupyter notebooks first
- Understand: Review README.md in each project
- Setup: Create .env with API keys
- Run: Execute main.py or start API
- Test: Use provided test_api.py files
- Learn: Check comments in source code
pip install -r requirements.txt# Create .env file with real API key
echo "GOOGLE_API_KEY=your_key_here" > .env# Change API_PORT in .env
API_PORT=8002- Wait a few minutes (free tier has 10 req/min limit)
- Use delays between API calls
This is an educational internship project repository.
β LLM API Integration (Google Gemini) β FastAPI Web Framework β Prompt Engineering & Templates β State Machine Workflows (LangGraph) β Vector Database Integration (Qdrant) β Caching Strategies (Redis, Semantic Cache) β Memory Services (Mem0) β Safety & Guardrails (Presidio, Toxic Detection) β Monitoring & Metrics (Prometheus, Langfuse) β PII Detection & Masking β Rate Limiting & Error Handling β Jupyter Notebook Documentation
For issues or questions:
- Check the README in specific project folder
- Review API_SAFETY_GUIDE.md
- Check API documentation for each service
- Refer to Jupyter notebooks for examples
Status: β
Ready for GitHub Upload
Date: January 28, 2026
Safety Level: π’ MAXIMUM (APIs disabled by default)