dbravoan / dbcms-module-ai-assistant
Motor de asistencia editorial inteligente y diseño de maquetación de bloques por IA para redactores del CMS y agentes MCP externos con soporte para Google Gemini, OpenAI, DeepSeek, Anthropic, Ollama y OpenCode (Zen + Go), con catálogo de modelos dinámico.
Package info
github.com/dbravoan/dbcms-module-ai-assistant
Type:dbcms-module
pkg:composer/dbravoan/dbcms-module-ai-assistant
Requires
- dbravoan/dbcms-core: ^1.0
Requires (Dev)
None
Suggests
None
Provides
None
Conflicts
None
Replaces
None
README
Qué hace
dbravoan/dbcms-module-ai-assistant aporta asistencia editorial, traducción y
generación mediante proveedores. Instala/activa ai_assistant; los usuarios
necesitan permiso AI y los de la entidad o medio editado.
Configura y verifica proveedor/modelo de texto. Imagen/vídeo requiere una modalidad
compatible distinta; un catálogo de texto operativo no acredita esa capacidad.
Guarda credenciales en conexiones cifradas o entorno protegido, nunca en prompts
ni Git. Los adaptadores implementan Contracts/AiProviderInterface.php y se
registran en config/providers.php; el catálogo de texto procede del proveedor.
Imagen/vídeo usan sus contratos y endpoints verificados. Las pruebas simulan la
frontera remota y no autorizan generaciones de pago.
Selecciona idioma/mercados antes de generar. Usa la asistencia de campo o Alt+A, o la acción de secciones para componer bloques. Revisa, aplica y guarda mediante el formulario normal. Generar no publica ni acredita exactitud. Si cambia el contexto editorial, vuelve a generar o revisar. La traducción conserva IDs, URLs, medios y estructura; revisa los campos traducidos antes de guardar. Puntuaciones de proveedor y heurísticas de tono/SEO no prueban autoría, veracidad ni ranking.
Bloques e imágenes compartidos con MCP
El asistente consume el catálogo activo del núcleo, también expuesto mediante
cms_block_types a clientes MCP. Los esquemas y referencias de los bloques se
resuelven para el idioma y los mercados de destino; no se completan estadísticas,
precios o testimonios con ejemplos del editor. Si faltan datos o una referencia
requiere decisión, la respuesta needs_input pide la información necesaria antes
de continuar. Revisa cualquier cambio de contexto antes de aplicar el resultado.
La generación de imágenes exige modalidad/modelo de imagen y permisos use:ai y
manage:media. Desde los campos de medios puedes reutilizar la biblioteca, subir
un archivo o importar una imagen desde URL pública. Subir/importar requiere
manage:media y utiliza los servicios del núcleo, también disponibles sin este
módulo a agentes MCP. Las imágenes se validan y guardan en el almacenamiento
configurado con límite de 50 MB; el resultado contiene ID y URL de biblioteca.
La importación rechaza destinos privados, credenciales y redirecciones.
Aplicar una imagen a contenido exige además autorización de la entidad y respeta su revisión editorial. El medio guardado sigue disponible si falla su asociación: reutiliza su ID en vez de repetir la generación. Los resultados inciertos o errores del proveedor requieren comprobar el estado, no repetir automáticamente el cargo. Generar y almacenar imágenes no publica el contenido asociado.
Requisitos y dependencias
dbravoan/dbcms-core^1.0- Identificador CMS:
ai_assistant
Instalación y activación
Instala el paquete con Composer e instálalo/actívalo en el CMS (ai_assistant).
Configuración
Ajustes del módulo (claves por nombre):
is_enableddefault_providergemini_api_keygemini_modelopenai_api_keyopenai_modeldeepseek_api_keydeepseek_modelanthropic_api_keyanthropic_modelopencode_api_keyopencode_modelcustom_base_urlcustom_api_keycustom_modelollama_base_urlollama_api_keyollama_modeldefault_temperatureenforce_anti_ai_guardrailsbrand_archetypebrand_treatmentbrand_target_audiencebrand_value_propositionbrand_preferred_termsbrand_taboo_termsbrand_cta_goalsbrand_custom_directivesgemini_base_urlopenai_base_urldeepseek_base_urlanthropic_base_urlopencode_base_urlvllm_api_keyvllm_base_urlvllm_modelhiggsfield_api_key_idhiggsfield_api_key_secrethiggsfield_base_urlhiggsfield_modelmagnific_api_keymagnific_base_urlmagnific_modeldefault_text_providerdefault_image_providerdefault_video_providergemini_text_modelgemini_image_modelgemini_video_modelopenai_text_modelopenai_image_modelopenai_video_modeldeepseek_text_modeldeepseek_image_modeldeepseek_video_modelanthropic_text_modelanthropic_image_modelanthropic_video_modelopencode_text_modelopencode_image_modelopencode_video_modelvllm_text_modelvllm_image_modelvllm_video_modelollama_text_modelollama_image_modelollama_video_modelcustom_text_modelcustom_image_modelcustom_video_modelhiggsfield_text_modelhiggsfield_image_modelhiggsfield_video_modelmagnific_text_modelmagnific_image_modelmagnific_video_model
Rutas
Rutas de panel del módulo bajo el prefijo admin de módulos (asistente/campo). Detalle fino de nombres de ruta: gap si no se enumeran aquí; el código está en Http/ y el ServiceProvider.
Comandos Artisan
ai:privacy— firma:ai:privacy {action : export, erase or prune} {kind=tasks : tasks or logs} {--id=*} {--verified : Identity, scope and third-party rights were checked} {--retention-released : Documented retention review permits release}
Permisos
use:aimanage:aimanage:mediaaccess:admin
Privacidad y datos
Configura legal.processing revisado para ai_assistant antes de encolar/enviar.
Describe prompts, borradores, actor, destinatarios/transferencias del proveedor
(incluido DuckDuckGo en investigación web) y plazo finito o criterio concreto de
revisión manual. Los workers lo comprueban de nuevo. Los logs diagnósticos guardan
uso técnico y actor, sin copias adicionales de prompts, briefs, títulos o temas;
los payloads/resultados de tareas sí contienen el trabajo solicitado.
Usa Sail para exportar JSON privado: ./vendor/bin/sail artisan ai:privacy export tasks --id=UUID --verified, o logs con IDs numéricos. Revisa identidad, alcance
y datos de terceros antes de entregar y elimina el export después. erase usa la
misma selección; programa ai:privacy prune para retención finita.
Solo se retiran tareas/logs vencidos terminados/fallidos. Estados pendientes,
procesando, remotos, inciertos, de aprobación o entrada se conservan. Un fallo con
recibo remoto exige reconciliación; un timeout tras reclamar trabajo permanece
incierto. La retención manual requiere --retention-released, sin omitir plazos
finitos vigentes. Los comandos funcionan estando instalado aunque desactivado.
Borradores, medios y copias del proveedor tienen otros propietarios y no se borran
implícitamente con la tarea. Consulta el
contrato de extensiones.