定制 luinuxscl/ai-posts 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

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.

Latest Version on Packagist Total Downloads License

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:

  1. draft - Estado inicial cuando se crea el post
  2. title_created - Cuando se establece el título
  3. content_created - Cuando se establece el contenido principal
  4. summary_created - Cuando se crea el resumen o extracto
  5. image_prompt_created - Cuando se define el prompt para generar imágenes
  6. ready_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 我们能提供哪些服务?
定制开发 / 二次开发

基于 luinuxscl/ai-posts 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 5
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 13
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2025-04-20