9.6 KiB
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)
- 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
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
ollama list
Deben aparecer: AR-House, PhotoInspector, DealAnalyzer, FloridaResearcher, LenderMatcher, EmailComposer.
Si falta alguno, recrearlo desde los modelfiles:
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:
- Click derecho en
AR-House-Start.vbs→ Enviar a → Escritorio (crear acceso directo) - (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.
- Abrir Programador de tareas (Task Scheduler) en Windows
- 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"
- Programa o script:
- Nombre:
- 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)
- 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:
- Abrir la app (
AR-House-Start.vbs) - Ir a Mercados en el sidebar
- Seleccionar con checkbox o usar un preset
- 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 EnabledDebe 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 serveesté corriendo (lo lanza el VBS automáticamente, pero podés verificar manualmente concurl 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_ctxen los modelfiles más pesados (AR-House primero)
Errores de Python al arrancar
- Verificar virtualenv activo y completo:
.\.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
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:
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)