Configuración del Módulo - Perfex AI
Inicio Documentación Módulo AI Documento

Configuración del Módulo - Perfex AI

MD 16 secciones
Resumen

Documentación interna del módulo Perfex AI [hash:c6ed53346da02725da7085747aa827e0]

# Configuración del Módulo - Perfex AI

Sección 1
**Tabla:** `tblperfex_ai_settings` | **Helper:** `ai_get_setting()` / `ai_set_setting()`

---

## Acceso a Settings

Sección 2
```php
// Leer setting
$valor = ai_get_setting('api_key', 'default_value');

// Escribir setting
ai_set_setting('api_key', 'nuevo_valor');
```

La tabla `tblperfex_ai_settings` usa formato key-value:
- `setting_key` (VARCHAR, único)
- `setting_value` (TEXT)

Algunos settings especiales se guardan en `tbloptions` (tabla nativa de Perfex) usando `get_option()` / `update_option()`.

---

### Core IA

Sección 3
| Key | Descripción | Default |
|-----|-------------|---------|
| `ai_provider` | Proveedor: gemini o claude | gemini |
| `api_key` | API Key de Gemini | - |
| `claude_api_key` | API Key de Claude | - |
| `model` | Modelo Gemini activo | gemini-1.5-flash |
| `claude_model` | Modelo Claude activo | - |
| `system_prompt` | System prompt por defecto | - |
| `streaming_enabled` | Respuestas en streaming | 0 |

### Alcance y Acceso

Sección 4
| Key | Descripción | Default |
|-----|-------------|---------|
| `scope` | Alcance: global, module, custom | global |
| `scoped_modules` | Módulos CRM habilitados (JSON) | [] |
| `scoped_folders` | Carpetas de archivos accesibles (JSON) | [] |
| `db_access_enabled` | Acceso a BD para consultas | 0 |
| `allowed_tables` | Tablas permitidas para consulta (JSON) | [] |
| `allowed_extensions` | Extensiones de archivo permitidas | - |
| `protected_directories` | Directorios protegidos | - |

### Operaciones de Archivo

Sección 5
| Key | Descripción | Default |
|-----|-------------|---------|
| `approval_mode` | Modo aprobación: always, auto, threshold | - |
| `approval_threshold` | Umbral: low, medium, high | - |
| `max_file_size` | Tamaño máximo archivo (bytes) | - |
| `backup_retention` | Retención backups (días) | 10 |
| `max_prompt_length` | Longitud máxima de prompt | - |

### Rate Limiting

Sección 6
| Key | Descripción | Default |
|-----|-------------|---------|
| `rate_limit_requests` | Peticiones por ventana | - |
| `rate_limit_window` | Ventana en segundos | - |
| `rate_limit_per_ip` | Límite por IP | - |

### Presupuesto y Costes

Sección 7
| Key | Descripción | Default |
|-----|-------------|---------|
| `budget_limit_enabled` | Control de presupuesto activo | 0 |
| `budget_limit_type` | Tipo: daily o monthly | - |
| `budget_limit_amount` | Cantidad máxima | - |
| `budget_currency` | Moneda: USD o EUR | - |
| `budget_alert_threshold` | Umbral alerta (%) | - |
| `exchange_rate_eur_usd` | Tipo de cambio EUR/USD | - |
| `token_limit_enabled` | Límite de tokens activo | 0 |
| `token_limit_daily` | Tokens/día máximo | - |
| `token_limit_monthly` | Tokens/mes máximo | - |

### Caché

Sección 8
| Key | Descripción | Default |
|-----|-------------|---------|
| `cache_enabled` | Caché de respuestas activa | 0 |
| `cache_ttl` | Tiempo de vida (segundos) | - |

### Knowledge Base

Sección 9
| Key | Descripción | Default |
|-----|-------------|---------|
| `kb_enabled` | KB activa | 0 |
| `kb_allowed_types` | Tipos archivo permitidos | pdf,txt,csv,docx,xlsx,md |
| `kb_max_file_size` | Tamaño máximo | 10485760 (10MB) |
| `kb_max_results` | Resultados búsqueda | - |
| `kb_min_relevance` | Umbral de relevancia | - |
| `kb_chunk_size` | Tamaño de chunk (chars) | - |
| `kb_chunk_overlap` | Overlap entre chunks | - |
| `embeddings_enabled` | Embeddings semánticos | 0 |

### Telegram

Sección 10
Ver [Telegram Bot](modulo_telegram_bot.md) para los 13 settings de Telegram.

### Tarifas de Vidrio

Sección 11
Ver [Tarifas Vidrio](modulo_tarifas_vidrio.md) para los 6 settings de glass.

### Visitantes y Conversaciones

Sección 12
| Key | Descripción | Default |
|-----|-------------|---------|
| `visitor_cleanup_days` | Días para limpiar visitantes inactivos | 90 |
| `conversation_retention_days` | Días retención conversaciones archivadas | 180 |

### Insights y Wiki

Sección 13
| Key | Descripción | Default |
|-----|-------------|---------|
| `insight_extraction_interval` | Intervalo extracción (minutos) | - |
| `insight_promotion_confidence` | Umbral confianza | - |
| `insight_promotion_reinforcements` | Refuerzos necesarios | - |
| `wiki_knowledge_saver_enabled` | Guardar conocimiento en wiki | 0 |
| `gemini_consultation_token` | Token acceso wiki IA | - |

### Health Check (internos)

Sección 14
| Key | Descripción |
|-----|-------------|
| `health_last_check` | Último health check (timestamp) |
| `health_previous_status` | Estado anterior (JSON) |
| `expiry_last_run` | Última ejecución del cron de expiración |

### Settings en tbloptions (Perfex nativo)

Sección 15
| Key | Descripción |
|-----|-------------|
| `perfex_ai_quick_access_enabled` | Acceso rápido activo |
| `perfex_ai_quick_access_ips` | IPs autorizadas |
| `perfex_ai_quick_access_staff_id` | Staff ID para acceso rápido |
| `perfex_ai_quick_access_button_text` | Texto del botón |

## Documentos Relacionados

Sección 16
- [Arquitectura](modulo_arquitectura.md) - Estructura general
- [Cron Jobs](modulo_cron_jobs.md) - Settings que afectan a crons
- [Telegram Bot](modulo_telegram_bot.md) - Settings Telegram
- [Tarifas Vidrio](modulo_tarifas_vidrio.md) - Settings Glass