Spaces:
Sleeping
Sleeping
| # API Module Structure - Cooking Tutor | |
| ## 📁 **Module Overview** | |
| ### **config.py** - Configuration Management | |
| - Environment variables validation | |
| - Logging configuration | |
| - System resource monitoring | |
| - Memory optimization settings | |
| - CORS configuration | |
| ### **retrieval.py** - Web Search Integration | |
| - Cooking information retrieval via web search | |
| - Recipe suggestion system | |
| - Smart content filtering and relevance scoring | |
| - Web search result processing | |
| ### **chatbot.py** - Core Chatbot Logic | |
| - CookingTutorChatbot class | |
| - Gemini API client | |
| - Web search integration | |
| - Citation processing | |
| - Memory management integration | |
| ### **routes.py** - API Endpoints | |
| - `/chat` - Main chat endpoint | |
| - `/health` - Health check | |
| - `/` - Root endpoint with landing page | |
| - Request/response handling | |
| ### **app.py** - Main Application | |
| - FastAPI app initialization | |
| - Middleware configuration | |
| - Route registration | |
| - Server startup | |
| ## 🔄 **Data Flow** | |
| ``` | |
| Request → routes.py → chatbot.py → search.py (web search) | |
| ↓ | |
| memory.py (context) + utils/ (translation) | |
| ↓ | |
| models/ (summarization processing) | |
| ↓ | |
| Response with citations | |
| ``` | |
| ## 🚀 **Benefits of Modular Structure** | |
| 1. **Separation of Concerns**: Each module has a single responsibility | |
| 2. **Easier Testing**: Individual modules can be tested in isolation | |
| 3. **Better Maintainability**: Changes to one module don't affect others | |
| 4. **Improved Readability**: Smaller files are easier to understand | |
| 5. **Reusability**: Modules can be imported and used elsewhere | |
| 6. **Scalability**: Easy to add new features without affecting existing code | |
| ## 📊 **File Sizes** | |
| | File | Lines | Purpose | | |
| |------|-------|---------| | |
| | **app.py** | 50 | Main app initialization | | |
| | **config.py** | 68 | Configuration | | |
| | **retrieval.py** | 156 | Web search integration | | |
| | **chatbot.py** | 203 | Chatbot logic | | |
| | **routes.py** | 435 | API endpoints | | |
| ## 🔧 **Usage** | |
| The modular structure maintains clean API interface: | |
| ```python | |
| # All imports work the same way | |
| from api.app import app | |
| from api.chatbot import CookingTutorChatbot | |
| from api.retrieval import retrieval_engine | |
| ``` | |
| ## 🛠 **Development Benefits** | |
| - **Easier Debugging**: Issues can be isolated to specific modules | |
| - **Parallel Development**: Multiple developers can work on different modules | |
| - **Code Reviews**: Smaller files are easier to review | |
| - **Documentation**: Each module can have focused documentation | |
| - **Testing**: Unit tests can be written for each module independently |