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
**Tabla:** `tblperfex_ai_settings` | **Helper:** `ai_get_setting()` / `ai_set_setting()`
---
---
## Acceso a Settings
```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()`.
---
// 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
| 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 |
|-----|-------------|---------|
| `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
| 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 | - |
|-----|-------------|---------|
| `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
| 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 | - |
|-----|-------------|---------|
| `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
| Key | Descripción | Default |
|-----|-------------|---------|
| `rate_limit_requests` | Peticiones por ventana | - |
| `rate_limit_window` | Ventana en segundos | - |
| `rate_limit_per_ip` | Límite por IP | - |
|-----|-------------|---------|
| `rate_limit_requests` | Peticiones por ventana | - |
| `rate_limit_window` | Ventana en segundos | - |
| `rate_limit_per_ip` | Límite por IP | - |
### Presupuesto y Costes
| 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 | - |
|-----|-------------|---------|
| `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é
| Key | Descripción | Default |
|-----|-------------|---------|
| `cache_enabled` | Caché de respuestas activa | 0 |
| `cache_ttl` | Tiempo de vida (segundos) | - |
|-----|-------------|---------|
| `cache_enabled` | Caché de respuestas activa | 0 |
| `cache_ttl` | Tiempo de vida (segundos) | - |
### Knowledge Base
| 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 |
|-----|-------------|---------|
| `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
Ver [Telegram Bot](modulo_telegram_bot.md) para los 13 settings de Telegram.
### Tarifas de Vidrio
Ver [Tarifas Vidrio](modulo_tarifas_vidrio.md) para los 6 settings de glass.
### Visitantes y Conversaciones
| Key | Descripción | Default |
|-----|-------------|---------|
| `visitor_cleanup_days` | Días para limpiar visitantes inactivos | 90 |
| `conversation_retention_days` | Días retención conversaciones archivadas | 180 |
|-----|-------------|---------|
| `visitor_cleanup_days` | Días para limpiar visitantes inactivos | 90 |
| `conversation_retention_days` | Días retención conversaciones archivadas | 180 |
### Insights y Wiki
| 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 | - |
|-----|-------------|---------|
| `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)
| 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 |
|-----|-------------|
| `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)
| 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 |
|-----|-------------|
| `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
- [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
- [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