Files
AR-House/README (conflicted copy 2026-05-13 091114).md
2026-07-03 12:24:58 -04:00

239 lines
9.6 KiB
Markdown

# 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)