# AR-House Sistema multi-agente local para análisis de inversión en bienes raíces, especializado en Florida. Clon estilo Tranchi.ai corriendo 100% local con Ollama + estrategia híbrida de scraping (Playwright gratis + Firecrawl pago). ## 1. ¿Qué es esto? Pipeline de 6 agentes Ollama coordinados que analizan un deal de bienes raíces y entregan un veredicto accionable: - **AR-House** — coordinador, veredicto final con score 1-10 - **DealAnalyzer** — calcula DSCR, NOI, Cash Flow para 4 escenarios (Buy & Hold, BRRRR, Wholesale, Section 8) - **PhotoInspector** — estima rehab desde fotos del listing - **FloridaResearcher** — research del barrio + riesgos específicos FL (flood, huracanes, insurance) - **LenderMatcher** — recomienda lenders (DSCR, hard money, foreign national) según perfil del comprador - **EmailComposer** — genera emails para lenders/sellers que no suenan a IA Más adelante: módulo **DealFinder** (auto-scraping de listings desde HUD, Craigslist, county tax deeds, Zillow, Realtor) y módulo **BuyerFinder** (lista de cash buyers activos en tus mercados). ## 2. Requisitos - **Sistema operativo:** Windows 10/11 (64-bit). VBScript launchers no funcionan en Linux/macOS. - **Python:** 3.13 (recomendado) o 3.14 - **Ollama:** instalado y en el PATH ([ollama.com/download](https://ollama.com/download)) - **Hardware:** - 12 GB+ VRAM recomendado (probado en 12 GB con partial offload del modelo de 32B) - 32 GB+ RAM - ~60 GB libres en disco (los 6 modelos Ollama) - **Cuentas externas:** - Firecrawl free tier (1000 créditos/mes) — solo necesario para scrapers de Zillow/Realtor en Phase 3B ## 3. Setup inicial ### 3.1 Clonar/copiar el proyecto ``` D:\Proyectos Software\AR-House\ ``` ### 3.2 Configurar variables de entorno Crear `.env` en la raíz del proyecto con: ``` FIRECRAWL_API_KEY=fc-tu_key_real_aqui ``` (Si todavía no usás Firecrawl, dejá el archivo vacío o sin esa línea — el sistema lo maneja gracefully.) ### 3.3 Crear virtualenv e instalar dependencias ```powershell cd D:\Proyectos Software\AR-House py -3.13 -m venv .venv .\.venv\Scripts\Activate.ps1 pip install -r requirements.txt playwright install chromium ``` ### 3.4 Verificar los 6 modelos Ollama ```powershell ollama list ``` Deben aparecer: `AR-House`, `PhotoInspector`, `DealAnalyzer`, `FloridaResearcher`, `LenderMatcher`, `EmailComposer`. Si falta alguno, recrearlo desde los modelfiles: ```powershell ollama create AR-House -f modelfiles\AR-House.modelfile ollama create PhotoInspector -f modelfiles\PhotoInspector.modelfile ollama create DealAnalyzer -f modelfiles\DealAnalyzer.modelfile ollama create FloridaResearcher -f modelfiles\FloridaResearcher.modelfile ollama create LenderMatcher -f modelfiles\LenderMatcher.modelfile ollama create EmailComposer -f modelfiles\EmailComposer.modelfile ``` ## 4. Cómo arrancar **Iniciar todo** (Ollama + Streamlit + abre el navegador): > Doble-click en **`AR-House-Start.vbs`** **Detener todo** (Ollama + Streamlit): > Doble-click en **`AR-House-Stop.vbs`** Para crear un acceso directo en el escritorio: 1. Click derecho en `AR-House-Start.vbs` → Enviar a → Escritorio (crear acceso directo) 2. (Opcional) cambiar el icono al del navegador o uno personalizado ## 5. Programar el DealFinder diario (Task Scheduler) Esto es opcional. Solo aplica una vez tengas Phase 3D implementada. 1. Abrir **Programador de tareas** (Task Scheduler) en Windows 2. **Crear tarea básica**: - **Nombre:** `AR-House DealFinder` - **Desencadenador:** Diariamente a las **6:00 AM** (o el horario que prefieras) - **Acción:** Iniciar un programa - **Programa o script:** `wscript.exe` - **Argumentos:** `"D:\Proyectos Software\AR-House\AR-House-DealFinder.vbs"` 3. En las propiedades de la tarea, **General → Configurar para → Windows 10/11**, marcar: - **Ejecutar tanto si el usuario inició sesión como si no** - **Ejecutar con los privilegios más altos** (si el scraping necesita acceso a red sin restricciones) 4. Guardar El scraper escribe a `logs\dealfinder.log`. Revisá ese archivo si algo falla. ## 6. Estructura del proyecto ``` AR-House/ ├── modelfiles/ # 6 modelfiles de Ollama │ ├── AR-House.modelfile │ ├── PhotoInspector.modelfile │ ├── DealAnalyzer.modelfile │ ├── FloridaResearcher.modelfile │ ├── LenderMatcher.modelfile │ └── EmailComposer.modelfile ├── scripts/ │ └── stop-streamlit.ps1 # Helper PowerShell para matar Streamlit limpio ├── .claude/ │ └── skills/firecrawl/ # SKILL.md de Firecrawl (pendiente) ├── analyses/ # JSON de cada análisis (auto-generado) ├── logs/ # Logs del DealFinder (auto-generado) ├── .venv/ # Virtualenv Python (NO versionar) ├── .env # Secrets (NO versionar) ├── markets_database.json # 50 mercados precargados + 9 presets ├── user_active_markets.json # Selección actual del usuario (UI) ├── config.py # Constantes globales ├── orchestrator.py # Coordina los 5 agentes secuencialmente ├── prompt_templates.py # Templates de prompts por agente ├── requirements.txt # Dependencias Python ├── app.py # UI Streamlit (Phase 2C, pendiente) ├── AR-House-Start.vbs # Launcher: arranca Ollama + Streamlit ├── AR-House-Stop.vbs # Stopper: mata Ollama + Streamlit ├── AR-House-DealFinder.vbs # Scheduled: scraping diario (Phase 3D) └── README.md # Este archivo ``` ## 7. Modelos Ollama | Agente | Modelo base | Tamaño | Función | |---|---|---|---| | AR-House | qwen2.5:32b | 19 GB | Coordinador, veredicto final | | LenderMatcher | qwen2.5:14b | 9 GB | Financiamiento + perfiles A-D | | DealAnalyzer | qwen2.5:14b | 9 GB | 4 escenarios financieros | | EmailComposer | qwen2.5:14b | 9 GB | Emails on-demand sin frases-IA | | PhotoInspector | llama3.2-vision | 7.8 GB | Estima rehab desde fotos | | FloridaResearcher | llama3.1:8b | 4.9 GB | Investigación barrio + riesgos FL | Total en disco: ~59 GB. **Modo de recursos por defecto:** `low_power` (en `config.py`). Los modelos se cargan uno a la vez (`keep_alive=0`) y se descargan después de responder. Esto evita OOM en GPUs de 12 GB. Tiempo total estimado por análisis: **~225 segundos** (~3:45 min). ## 8. Mercados monitoreados El sistema viene precargado con **50 mercados** de USA organizados en 8 regiones (ver `markets_database.json`): - Florida Primary (6) - Florida Treasure Coast (3) - Florida Central (3) - Florida Secondary (9) - Mercados Tranchi cash flow alto (8) - Texas (5) - Sun Belt (6) - Midwest / Otros (10) Plus **9 presets** para configuración rápida: "Sur de Florida", "Treasure Coast", "Florida Costa Este", "Orlando metro", "Tampa metro", etc. Para elegir cuáles monitorear: 1. Abrir la app (`AR-House-Start.vbs`) 2. Ir a **Mercados** en el sidebar 3. Seleccionar con checkbox o usar un preset 4. **Guardar configuración** El DealFinder solo busca en los mercados activos. Por defecto la lista está vacía (todo desactivado). ## 9. Troubleshooting ### Los VBS no arrancan - **Windows SmartScreen los bloquea la primera vez:** Click derecho en el `.vbs` → Propiedades → tildar **"Desbloquear"** → Aceptar. - **El antivirus los marca como sospechoso:** Normal para scripts caseros. Agregar exclusión para `D:\Proyectos Software\AR-House\`. - **wscript.exe no responde:** Verificar que Windows Script Host (WSH) esté habilitado: ``` reg query "HKLM\SOFTWARE\Microsoft\Windows Script Host\Settings" /v Enabled ``` Debe devolver `Enabled = 1`. ### Limitación conocida: VBScript deprecated Microsoft anunció en septiembre 2024 que VBScript será removido de Windows en una versión futura (sin fecha confirmada todavía). Mientras tanto sigue funcionando en Windows 11 actual y al menos hasta 2026-2027. Si en algún momento Microsoft lo desactiva, hay que migrar los launchers a PowerShell + accesos directos `.lnk` configurados como hidden window. ### Ollama no responde - Verificá que `ollama serve` esté corriendo (lo lanza el VBS automáticamente, pero podés verificar manualmente con `curl http://localhost:11434/api/tags`) - Si los modelos no aparecen en `ollama list`, re-crearlos desde los modelfiles (ver sección 3.4) - Si Ollama crashea por OOM, bajá `num_ctx` en los modelfiles más pesados (AR-House primero) ### Errores de Python al arrancar - Verificar virtualenv activo y completo: ```powershell .\.venv\Scripts\Activate.ps1 pip list ``` - Si falta algún paquete: `pip install -r requirements.txt` - Si Playwright se queja: `playwright install chromium` ### Streamlit no abre el navegador automáticamente Abrirlo manualmente: [http://localhost:8501](http://localhost:8501) ### Firecrawl rate limit / créditos agotados El plan free es 1000 créditos/mes. El sistema usa `FIRECRAWL_CREDIT_BUDGET=500` como margen seguro. Si llegás al límite, el `runner.py` pausa los scrapers de Firecrawl (Zillow/Realtor) pero los gratis (HUD/Craigslist/County) siguen activos. Para verificar saldo actual: ```powershell curl -H "Authorization: Bearer $env:FIRECRAWL_API_KEY" https://api.firecrawl.dev/v1/team/credit-usage ``` --- **Versión actual:** 0.1 (Phase 2A completa, Phase 2C/3/4 en roadmap) **Roadmap:** - Phase 2C: UI Streamlit con análisis manual - Phase 3: DealFinder (auto-scraping de listings) - Phase 4: BuyerFinder (lista de cash buyers + matching)