You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Product Requirements Document: Estate AI Assistant
Overview
The Estate AI Assistant is a conversational AI application designed to help real estate agencies assist potential buyers and renters in finding their ideal properties. The application uses natural language processing and machine learning to understand user preferences and recommend suitable properties from a database.
Problem Statement
Real estate agents often spend significant time manually matching clients with properties. This process can be inefficient and may not always consider all available options. Additionally, clients may not always be able to articulate all their preferences at once, requiring multiple interactions.
Functional Requirements
Requirement ID
Description
User Story
Expected Behavior/Outcome
FR001
Conversational Interface
As a user, I want to engage in a natural language conversation about my property preferences.
The system should engage users in a natural language conversation, understand and respond to queries about properties, with persistent conversation allowing users to refine their search.
FR002
Property Search & Filtering
As a user, I want to search for properties based on various criteria such as location, budget, and features.
The system should search properties based on location, budget range, property type, number of rooms, desired amenities, and proximity to points of interest.
FR003
Data Integration
As a developer, I want the system to support multiple data sources.
The system should support local CSV files, external CSV sources via URLs, with potential for future API integrations.
FR004
Property Recommendations
As a user, I want to receive personalized property recommendations.
The system should provide personalized recommendations with key property details in a structured format and explain why properties match user criteria.
FR005
AI Capabilities
As a developer, I want the system to leverage advanced AI capabilities.
The system should use natural language understanding to extract preferences, reasoning capabilities to match preferences with properties, and learn from interactions to improve recommendations.
Target Audience
Real estate agencies and agents
Property buyers and renters
Property managers and landlords
User Stories
As a property buyer/renter
I want to describe my ideal property in natural language
I want to specify my preferences for location, budget, property type, and amenities
I want to receive property recommendations that match my criteria
I want to refine my search based on additional preferences
I want to compare properties based on various attributes
As a real estate agent
I want to quickly find properties that match client requirements
I want to provide clients with comprehensive property information
I want to identify negotiation opportunities based on market data
I want to streamline the property matching process
Features and Requirements
Core Features
1. Conversational Interface
The assistant should engage users in a natural language conversation
The system should understand and respond to user queries about properties
The conversation should be persistent, allowing users to refine their search
2. Property Search and Filtering
The system should search properties based on:
Location (city, neighborhood)
Budget range
Property type (apartment, house, condo)
Number of bedrooms and bathrooms
Desired amenities (parking, garden, pool)
Proximity to points of interest (schools, public transportation)
3. Data Integration
The system should support multiple data sources:
Local CSV files
External CSV sources via URLs
Potential future API integrations
4. Property Recommendations
The system should provide personalized property recommendations
Recommendations should include key property details in a structured format
The system should explain why properties match user criteria
5. AI Capabilities
Natural language understanding to extract user preferences
Reasoning capabilities to match preferences with property attributes
Learning from user interactions to improve recommendations
Technical Requirements
Requirement ID
Description
Details
TR001
Programming Language
Python 3.11+
TR002
Backend Framework
LangChain with support for multiple LLM models (OpenAI GPT, Llama)
TR003
Data Processing
Pandas for data manipulation, FastEmbed for embeddings
TR004
Frontend
Streamlit-based responsive web interface
TR005
Data Storage
In-memory database and vector stores (DocArrayInMemorySearch, ChromaDB)
TR006
Data Format
Support for various CSV data formats with standardized schema
TR007
Deployment
Streamlit Cloud, Docker containerization
TR008
Package Management
Poetry for dependency management
TR009
Environment
Support for local development and cloud environments
TR010
Conversation Memory
Multi-turn conversation with history retention
Architecture
Component
Description
Implementation
User Interface Layer
Provides the interface for user interaction
Streamlit-based web interface with chat components
AI Agent Layer
Handles conversation and reasoning
LLM-powered conversational agent (OpenAI GPT or Llama models)
Data Processing Layer
Manages data loading and transformation
CSV loaders and data formatters using Pandas
Data Storage Layer
Stores property data and embeddings
In-memory database and vector stores (DocArrayInMemorySearch)
Data Flow
Step
Description
Details
1
User Input
User enters preferences through the conversation interface
2
Natural Language Processing
The system processes the input using the AI agent
3
Data Retrieval
The AI agent queries the property database based on extracted preferences
4
Result Processing
Results are processed and formatted for presentation
5
Recommendation Display
Recommendations are presented to the user in structured format
6
Conversation Refinement
The conversation continues with additional queries and refinement
Technical Stack
Frontend: Streamlit
Backend: Python
AI/ML: LangChain, OpenAI GPT models, Llama models
Data Processing: Pandas, FastEmbed
Vector Storage: DocArrayInMemorySearch
Deployment: Streamlit Cloud, Docker
Package Management: Poetry
Version History & Roadmap
Version
Features
Status
Implementation Details
V1
Basic property search with single-turn conversations
Completed
Used langchain_experimental.agents.agent_toolkits.pandas.base.create_pandas_dataframe_agent for direct data querying
V2
Multi-turn conversations with enhanced search capabilities