基于人工智能的Airbnb搜索应用
一个全面的人工智能驱动的Airbnb搜索应用程序,具有自然语言处理功能,采用React前端、Flask后端和MCP服务器集成构建。
🏗️ 架构概述
- 前端:使用TypeScript进行反应,移动优先设计
- 后端:Flask API与OpenRouter LLM集成
- MCP服务器:集装箱化Airbnb数据服务
- 部署:带有GitHub CLI工作流的Render.com
📁 项目结构
ai-airbnb-search/
├── backend/ # Flask API server
│ ├── services/ # Business logic services
│ ├── tests/ # Backend tests
│ ├── app.py # Main Flask application
│ └── requirements.txt # Python dependencies
├── frontend/ # React application
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── services/ # API services
│ │ └── utils/ # Utility functions
│ ├── public/ # Static assets
│ └── package.json # Node.js dependencies
├── mcp-server/ # MCP server implementation
│ ├── src/ # MCP server source
│ ├── tests/ # MCP server tests
│ ├── Dockerfile # Container configuration
│ └── package.json # Node.js dependencies
├── docs/ # Documentation
├── scripts/ # Build and deployment scripts
└── render.yaml # Render.com deployment config🚀 特性
- 自然语言搜索:使用OpenRouter LLM的人工智能搜索
- 移动优先设计:针对具有触摸手势的移动设备进行了优化
- 物业旋转木马:通过滑动导航显示5个属性
- 实时数据:通过MCP服务器实时获取Airbnb房产数据
- 响应式用户界面:可在所有设备尺寸上无缝工作
🛠️ 技术栈
前端
- React 18与TypeScript
- 尾风CSS造型
- React Query用于状态管理
- Lucide React图标
后端
- 使用Python 3.11的烧瓶+
- OpenRouter API集成
- Gunicorn用于生产
- 全面的错误处理
MCP服务器
- Node.js与TypeScript
- Docker容器化
- API访问的HTTP包装
- Airbnb数据集成
🔧 开发设置
先决条件
- Node.js 18+
- Python 3.11+
- 码头工人
- GitHub命令行界面
安装
- 克隆存储库
git clone https://github.com/Ersa-tech/ai-airbnb-search.git
cd ai-airbnb-search- 后端设置
cd backend
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
pip install -r requirements.txt
python app.py- 前端设置
cd frontend
npm install
npm start- MCP服务器设置
cd mcp-server
npm install
npm run build
docker build -t ai-airbnb-mcp .
docker run -p 8080:8080 ai-airbnb-mcp🌐 部署
该应用程序配置为在Render.com上部署,具有三个服务:
- MCP服务器:Docker服务
- 后端:Web服务(Flask)
- 前端:静态站点(React)
使用提供的进行部署 render.yaml 配置。
📱 移动优化
- 触摸目标最小44px
- 旋转木马的滑动手势
- 渐进增强
- 暗模式支持
- 针对320px以上的屏幕进行了优化
🔐 安全
配置为内部使用,具有简化的安全性:
- 内部访问禁用CORS
- 基于环境的配置
- 安全的API密钥管理
📊 演出
- 延迟加载图像
- 优化捆绑包大小
- 高效的API缓存
- 移动优先加载策略
🤝 贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 彻底测试
- 提交拉取请求
📄 许可证
此项目仅供内部使用。
🆘 支持
有关问题和疑问,请参阅 docs/ 目录。
