This microservice provides intelligent property recommendations for tenants within a rental management system, focusing on Ethiopia-specific needs. It leverages FastAPI, PostgreSQL, LangGraph, LangChain, ChromaDB, and Gemini 2.0 Flash to deliver personalized, secure, and scalable recommendations.
# AI Recommendation Microservice
## Table of Contents
- AI Recommendation Microservice
- Table of Contents
- 1. Overview
- 2. Features
- 3. Technologies Used
- 4. Architecture Diagram
- 5. Folder Structure
- 6. Setup Guide
- 6.1. Prerequisites
- 6.2. Clone the Repository
- 6.3. Create Virtual Environment and Install Dependencies
- 6.4. Environment Variables
- 6.5. Database Setup (Migrations and Seeding)
- 6.6. ChromaDB Initialization
- 6.7. Running the Application Locally
- 7. API Endpoints
- 7.1. `POST /api/v1/recommendations`
- 7.2. `GET /api/v1/recommendations/{tenant_preference_id}`
- 7.3. `POST /api/v1/recommendations/feedback`
- 7.4. `POST /api/v1/properties/search`
- 8. Testing
- 9. Deployment on Hugging Face Spaces
- 10. Contributing
- 11. License
- 12. Contact Information
---
## 1. Overview
The AI Recommendation Microservice is a specialized component within a larger rental management system, designed to provide intelligent and personalized property recommendations to tenants. This service is tailored for Ethiopia-specific needs, incorporating local geographical data and language support. It leverages advanced AI techniques, including large language models (LLMs) and retrieval-augmented generation (RAG), orchestrated by LangGraph, to deliver highly relevant and context-aware suggestions.
The core objective is to enhance the tenant's property search experience by considering various factors such as job/school location, salary, preferred house type, family size, and amenities, ultimately suggesting properties that align with their lifestyle and budget.
## 2. Features
* **Personalized Property Recommendations**: Generates property recommendations based on a comprehensive tenant profile, including job/school location, salary, house type, family size, and preferred amenities.
* **Ethiopia-Specific Context**: Integrates deeply with **Gebeta Maps** for accurate, local-context geocoding and precise minibus route cost estimations within Ethiopia. T …