luinuxscl/ai-posts
Composer 安装命令:
composer require luinuxscl/ai-posts
包简介
Laravel package para la creación secuencial de posts para WordPress con estados definidos
README 文档
README
Un package Laravel para la creación secuencial de posts mediante un flujo de trabajo definido por estados. Este package se enfoca en la generación y preparación de posts, dejando la publicación a herramientas externas.
Descripción
AI Posts es un package que estructura y facilita el proceso de creación de posts siguiendo un flujo secuencial basado en estados. Gestiona todo el proceso desde la creación del título hasta que el post está listo para publicar, con especial atención a la integración con herramientas de automatización como n8n.
Características
- Máquina de estados robusta para gestionar el ciclo de vida de los posts
- API RESTful completa para integración con servicios externos
- Sistema de eventos para extender la funcionalidad fácilmente
- Flujo secuencial: título → contenido → resumen → prompt para imagen → listo para publicar
- Exportación flexible en formato JSON
- Filtros avanzados para buscar y gestionar posts
Compatibilidad
Este package es compatible con:
- PHP 8.1 o superior
- Laravel 10.x, 11.x, 12.x
Instalación
Puedes instalar el package vía composer:
composer require luinuxscl/ai-posts
Después de instalar el package, publica los archivos de configuración y migraciones:
php artisan vendor:publish --provider="Luinuxscl\AiPosts\AiPostsServiceProvider"
php artisan migrate
Configuración
El package funciona con una configuración por defecto, pero puedes personalizarla editando el archivo config/ai-posts.php publicado:
// config/ai-posts.php return [ // Estados de los posts y sus transiciones 'states' => [ 'draft' => [/* ... */], // Personaliza los estados y sus transiciones ], // Configuración de la API 'api' => [/* ... */], // Configuración de generación automática 'auto_generation' => [/* ... */], ];
Uso Básico
Flujo de trabajo manual
// Crear un nuevo post en estado borrador $post = AiPosts::create(['title' => 'Borrador inicial']); // Establecer título y avanzar al siguiente estado $post->setTitle('Título definitivo')->advance(); // Establecer contenido y avanzar $post->setContent('Contenido del post...')->advance(); // Generar resumen y avanzar $post->generateSummary()->advance(); // Crear prompt para imagen y avanzar $post->setImagePrompt('Un prompt descriptivo para IA')->advance(); // En este punto el post estará en estado 'ready_to_publish' // Ahora podríamos exportarlo: $jsonData = $post->toJson(); // O marcarlo como exportado $post->markAsExported();
Usando el servicio de exportación
// Obtener el servicio de exportación $exportService = app('ai-posts.export'); // Obtener todos los posts listos para exportar $readyPosts = $exportService->getPostsReadyToExport(); // Exportar todos los posts listos a JSON $json = $exportService->exportReadyPosts( onlyUnexported: true, // solo los no exportados previamente includeMetadata: true, // incluir metadatos prettyPrint: true // formato JSON legible ); // Exportar a un archivo $result = $exportService->exportBatchToFile( storage_path('exports/posts-'.date('Y-m-d').'.json') );
Máquina de estados
El flujo del post sigue esta secuencia de estados:
draft- Estado inicial cuando se crea el posttitle_created- Cuando se establece el títulocontent_created- Cuando se establece el contenido principalsummary_created- Cuando se crea el resumen o extractoimage_prompt_created- Cuando se define el prompt para generar imágenesready_to_publish- Estado final, el post está listo para ser exportado
API REST
El package incluye una API RESTful completa. Los endpoints principales son:
# Operaciones CRUD básicas
GET /api/ai-posts # Listar posts
POST /api/ai-posts # Crear post
GET /api/ai-posts/{id} # Obtener post
PUT /api/ai-posts/{id} # Actualizar post
DELETE /api/ai-posts/{id} # Eliminar post
# Transiciones de estado
POST /api/ai-posts/{id}/advance # Avanzar al siguiente estado
POST /api/ai-posts/{id}/set-title # Establecer título
POST /api/ai-posts/{id}/set-content # Establecer contenido
POST /api/ai-posts/{id}/set-summary # Establecer resumen
POST /api/ai-posts/{id}/set-image-prompt # Establecer prompt para imagen
POST /api/ai-posts/{id}/mark-as-exported # Marcar como exportado
# Exportación
GET /api/ai-posts/export/ready # Obtener posts listos para exportar
GET /api/ai-posts/export/json # Exportar posts como JSON
POST /api/ai-posts/export/mark-batch # Marcar lote como exportado
GET /api/ai-posts/filter # Filtrar posts por criterios
Consulta la documentación de la API para más detalles.
Integración con n8n
Este package está especialmente diseñado para integrarse con n8n. Consulta los ejemplos de integración con n8n para implementaciones prácticas.
Eventos
El package dispara eventos en cada transición de estado, permitiendo extender su funcionalidad:
// En EventServiceProvider.php de tu aplicación protected $listen = [ // Evento genérico para cualquier cambio de estado \Luinuxscl\AiPosts\Events\AiPostStateChanged::class => [ \App\Listeners\YourCustomListener::class, ], // Evento cuando un post está listo para publicar \Luinuxscl\AiPosts\Events\AiPostReadyToPublish::class => [ \App\Listeners\NotifyEditor::class, ], ];
Documentación
Consulta la documentación completa para detalles sobre:
Changelog
Consulta el CHANGELOG para obtener información sobre las últimas actualizaciones.
Licencia
MIT. Consulta el archivo LICENSE para más información.
Autor
luinuxscl/ai-posts 适用场景与选型建议
luinuxscl/ai-posts 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 5 次下载、GitHub Stars 达 0, 最近一次更新时间为 2025 年 04 月 20 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「wordpress」 「laravel」 「posts」 「state-machine」 「ai」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 luinuxscl/ai-posts 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 luinuxscl/ai-posts 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 luinuxscl/ai-posts 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Adds support for posts
Drop in blog, docs, tagging solution for Laravel
Adds support for posts
Alfabank REST API integration
Facebook Connector Symfony Bundle for Contao - Basic Version.
Posts publishing plugin
统计信息
- 总下载量: 5
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 13
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2025-04-20