Pregúntame sobre Mariojose
Prueba: "¿En qué se especializa Mariojose?" o "Muéstrame sus servicios y trabajos recientes".
Proyecto
Stack técnico
I built the Social Image and Caption Generator to explore generative AI as an operational system rather than a single prompt. Producing one caption or image interactively is easy; producing a consistent set of assets that can be reviewed, scheduled, traced, and published responsibly requires architecture. The project coordinates language models for written content, Flux image models for visual generation, application services in C#, Redis-backed work queues, and publishing integrations for Instagram and Facebook. It gave me a practical environment for applying secure AI, cloud workflow, distributed caching, API integration, and product-design principles to a repeatable creative process.
The workflow begins with a structured content brief instead of an open-ended request. A brief can define the subject, intended audience, tone, language, constraints, campaign context, and prohibited themes. I translate that brief into separate tasks for caption planning, draft generation, visual direction, and final asset assembly. This decomposition reflects my experience with agentic AI architecture: broad goals become bounded steps with explicit inputs and outputs. It also improves evaluation because a weak visual concept can be corrected without regenerating every caption, and a wording change does not require discarding an otherwise useful image.
For text generation, I use prompt templates and contextual data to create drafts that remain aligned with the brief. The application does not assume that a fluent response is accurate or appropriate. It preserves the prompt context, model settings, and generated alternatives so a reviewer can understand how an output was produced. My work with LLM workflows, RAG, and generative AI architecture informed that separation between context preparation, model invocation, and acceptance. The goal is controlled assistance: the model accelerates ideation and drafting, while the system and reviewer enforce brand, factual, and communication boundaries.
Visual generation follows a similar pattern. The pipeline turns an approved concept into a model-ready image prompt, records the relationship between the prompt and output, and keeps generated variants associated with the content item they support. Images are treated as versioned assets, not anonymous files in a folder. This is important when content is revised or published across multiple channels. Knowledge from image classification and AI evaluation influences the quality checks I consider, while the implementation remains honest about what is automated: human visual review is still necessary for composition, unwanted artifacts, text rendering, cultural context, and brand suitability.
Redis helps separate interactive requests from long-running generation and publishing work. A user can submit or approve an item without holding an HTTP request open while models and external services finish. Workers claim bounded jobs, record state transitions, and make retries deliberate. I apply distributed-systems patterns such as idempotency keys, deduplication, timeouts, and controlled backoff so a transient network failure does not create duplicate posts. Docker packages the runtime consistently across development and deployment. These choices reflect my cloud and reliability background: asynchronous work needs ownership, visibility, and recovery behavior, not only a queue and a background loop.
Publishing through social-platform APIs introduces a distinct security boundary. Access tokens, account identifiers, media URLs, and permissions must be handled as secrets and scoped to the required actions. Inputs and callbacks require validation, and failures need to be separated into authentication, rate-limit, content, and network categories. My knowledge of OAuth, identity and access management, OWASP API risks, and security engineering shaped this integration. The pipeline never treats possession of a token as permission to publish everything automatically; approval state is a domain rule, and the publisher verifies that rule before invoking an external platform.
Human review is therefore a first-class stage rather than an informal pause. A reviewer can inspect the caption, image, destination, schedule, and relevant context before approving publication. Rejected or revised outputs remain traceable, which helps distinguish model quality problems from prompt, brief, or policy problems. This design draws on leadership and product-strategy experience as much as engineering: a successful system must define who decides, what evidence they see, and how responsibility moves between automation and people. Autonomy is useful only when its boundaries are understandable and the organization can intervene before an irreversible external action.
The project combines C# and .NET application design, OpenAI language models, Flux image generation, Redis, Docker, external APIs, and operational monitoring in one coherent pipeline. It applies concepts from Azure AI, generative and predictive AI architecture, agentic systems, and secure distributed design without pretending that model output is automatically production-ready. The central lesson is that creative AI becomes valuable when surrounded by disciplined workflow: structured intent, versioned context, review gates, secret management, resilient execution, and observable publication. By building those elements together, I turned content generation from a collection of demos into a system that can support consistent, accountable work.