Guia prático Full-Stack: pipeline de IA com Cloudinary e Gemini

Rocketseat

Rocketseat

2 min de leitura
https://prod-files-secure.s3.us-west-2.amazonaws.com/08f749ff-d06d-49a8-a488-9846e081b224/b916e66d-10e0-4e9e-8460-dcfcf91d0485/gemini-cloudinary.webp?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=ASIAZI2LB466QXYHMMXA%2F20260315%2Fus-west-2%2Fs3%2Faws4_request&X-Amz-Date=20260315T054431Z&X-Amz-Expires=3600&X-Amz-Security-Token=IQoJb3JpZ2luX2VjEOj%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FwEaCXVzLXdlc3QtMiJHMEUCIQDprLaetyQITJpJZCwpvEthXfS6gECVYCBWW0JsWDYJxwIga9IKj91qZo3wifLTgAYrGcinWkpcdcWDz%2BGqfSfn8CoqiAQIsf%2F%2F%2F%2F%2F%2F%2F%2F%2F%2FARAAGgw2Mzc0MjMxODM4MDUiDCOVOAhO5pXi0%2BOIWCrcA%2BN4c1QAOlFS4mwmQpd%2FtLwItG%2BB8%2BhwGJ7cyXvCF2jeHu3S1VqWmfKzveotPChsYRna%2FFjBjp5wXpAy1y5BncTUQ2sL%2FI7tIVfN3X8BugGwXUUVLZGrClbO4%2F%2BhO6d1iDjfHP5qflOs9VnL7T0XsEHYRyycbY8HsVsXnPsnZWamlFUU8f4GuhyXkNLWmBup73wg%2FCTp9H4AAZ%2FgzPkp9aoLN3cEQHVjZDpMi2kXRmQ9FNk2YMRiCfhuLe%2F1mYTW1f0X9kR2C3%2F9Mx8qyF%2Bm3I8FnO77vDvwEg3dv1b59nPLur1KcvGJL59TwHPEL5KNPjd2HOpKBKHtrmNHunL2MyEMDNlEOkP75K6aaUYRiwZSVyHGox6pq%2B6Rqa6owMOveLMPC4TzLKXDK6dS%2F%2BV0Ua8YalNJHmPdQjOPJb07BeULgci55ZSO2tfseR%2BWxzf%2FuJO07R0UB6behN2%2FIbzFLZPJ7vzjsB5dbVMF%2F7wnW7x9FaeJWjZTUKsUknHN4vc7xY3nD3tLd5KjQ7TAlCsLSifkxASxIMVJp1Do41ffc6759M1PNAPmQ9ZBh%2BnCCLDdhGivprpHmpX4I9FcO35Wrr9cAUBVXR7%2FqtMvL2rWSfXZhzTIVtQ3Iq6bB%2BKeMJP0180GOqUBef491kcx%2BZ1topP%2FcOnz26fq9A1dai8m2NT%2FbJvOONMS7E1F9Vs%2FnOdhDClOmyaVWWmXCtp6O5yseWtBYEmo6eN9SMzo9wZuFqlWkCNGvCADeAqrKlagwGZ7u0Y%2BBtCft1dFQ4j4buflsl%2FzmpDsQyiDClHA6TiFl0lZf2gSvadRlXO%2BxPtkjiQmPxQBoCrfA0LOlhxfIuunlgeN5xrRbPRcjy%2Fr&X-Amz-Signature=84ea003502134d54f9514ba13a0965423d2511f0759d5100d3111dc453de1d3f&X-Amz-SignedHeaders=host&x-amz-checksum-mode=ENABLED&x-id=GetObject
Fala, dev! Se você quer sair do básico e entender como uma aplicação Full-Stack moderna processa dados, você precisa dominar o fluxo de integração entre serviços. Não basta criar um input de arquivo; você precisa saber para onde esse dado vai, como ele é transformado e como a IA o interpreta.
Neste guia técnico, vamos implementar um pipeline completo: captura no Front-end com Tailwind, gerenciamento de mídia com Cloudinary e processamento inteligente com Gemini API. Bora pro código! 🚀

1. O Front-end: captura e preview com JavaScript

O primeiro desafio técnico é lidar com arquivos no navegador sem travar a UI. Vamos usar o Tailwind CSS para criar uma zona de upload e o JavaScript para gerenciar o estado do arquivo.

Estrutura base (HTML/Tailwind)

<div class="flex flex-col items-center justify-center p-8 bg-zinc-900 rounded-lg border-2 border-dashed border-zinc-700"> <input type="file" id="imageInput" class="hidden" accept="image/*" /> <label for="imageInput" class="cursor-pointer text-zinc-400 hover:text-white transition"> Clique para selecionar uma imagem </label> <img id="preview" class="mt-4 hidden max-w-xs rounded-md shadow-lg" /> <button id="uploadBtn" class="mt-6 px-6 py-2 bg-violet-600 hover:bg-violet-700 rounded-full font-bold"> Analisar com IA </button> </div>
 

Lógica de preview (JS Moderno)

const input = document.querySelector('#imageInput'); const preview = document.querySelector('#preview'); input.addEventListener('change', () => { const file = input.files[0]; if (file) { const reader = new FileReader(); reader.onload = (e) => { preview.src = e.target.result; preview.classList.remove('hidden'); } reader.readAsDataURL(file); } });

2. O Pipeline de mídia: Cloudinary SDK

Enviar a imagem bruta para a IA é ineficiente e caro (em termos de banda). O Cloudinary entra aqui para hospedar e otimizar. No seu Back-end (Node.js), você recebe o arquivo e faz o upload:
JavaScript
import { v2 as cloudinary } from 'cloudinary'; cloudinary.config({ cloud_name: process.env.CLOUDINARY_NAME, api_key: process.env.CLOUDINARY_KEY, api_secret: process.env.CLOUDINARY_SECRET }); async function uploadToCloudinary(fileBuffer) { return new Promise((resolve, reject) => { cloudinary.uploader.upload_stream({ folder: 'ai_app', transformation: [{ width: 800, crop: "limit", quality: "auto" }] // Otimização automática }, (error, result) => { if (error) reject(error); resolve(result.secure_url); }).end(fileBuffer); }); }
 
Vantagem Técnica: Ao usar quality: "auto", o Cloudinary reduz o peso da imagem sem perder detalhes que a IA precisa para análise, acelerando o tempo de resposta da API do Gemini.

3. Inteligência generativa: Gemini Vision API

Agora, o toque final. Com a URL otimizada do Cloudinary, enviamos o prompt para o Gemini. O segredo aqui é o Prompt Engineering técnico.
JavaScript
import { GoogleGenerativeAI } from "@google/generative-ai"; const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY); async function analyzeImage(imageUrl) { const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" }); // Buscamos a imagem da URL para converter em bytes para a API const imageResp = await fetch(imageUrl).then(res => res.arrayBuffer()); const result = await model.generateContent([ "Analise esta imagem e descreva os elementos principais para um sistema de acessibilidade. Seja técnico e objetivo.", { inlineData: { data: Buffer.from(imageResp).toString("base64"), mimeType: "image/jpeg" } } ]); return result.response.text(); }
 

O diferencial: orquestração de serviços

A grande sacada desse projeto não é apenas "fazer funcionar", mas entender a orquestração. O JavaScript no front captura, o Node.js no back-end envia para o Cloudinary, recebe uma URL otimizada, repassa para o Gemini e devolve a inteligência para o usuário.
Dominar esse fluxo é o que separa quem estuda sintaxe de quem constrói aplicações escaláveis.
📺 Dica Prática: Quer ver como aplicar esses fundamentos para acelerar sua produtividade real usando IA? Assista aqui:
Guia de IA para devs: ferramentas e estratégias para aumentar sua produtividade
Materiais informados na live 👇 • https://g.co/gemini/share/0f66de708a36 • https://cdn.openai.com/gpt-5-system-card.pdf • https://assets.anthropic.com/m/12f214efcc2f457a/original/Claude-Sonnet-4-5-System-Card.pdf • Está chegando o NLW Pocket Iniciante! Crie seu primeiro site com IA aplicada em 3 aulas, 100% online e gratuito! Com certificado! 👉 Se inscreva aqui https://rseat.in/-rocketseat-nlw-pocket-iniciantes Muitos devs se sentem perdidos(as) com o avanço da Inteligência Artificial, temem ser substituídos ou não sabem como integrar essa poderosa ferramenta em seu dia a dia. A dúvida que fica é: a IA é um hype passageiro ou uma revolução que veio para ficar? Neste vídeo, Mayk Brito e Gabriel Buzzi, especialistas da Rocketseat, desvendam o futuro do desenvolvimento de software, explorando os paradigmas do Software 1.0, 2.0 e 3.0. Também são abordados conceitos cruciais como Vibe Coding, Context Engineering e a importância do "Human-in-the-Loop" para garantir segurança e qualidade no código gerado por LLMs. Veja como utilizar, da melhor forma, ferramentas como Gemini, Cursor, Cloud Code, V0, Lovable, Bolt e Replit, e otimize seu fluxo de trabalho. Você vai aprender como a Inteligência Artificial está transformando a vida dos devs, estratégias para usar IA e acelerar o desenvolvimento, a importância de dominar os fundamentos da programação e dicas práticas para integrar ferramentas de IA no seu dia a dia, desde a concepção de ideias até a correção de bugs, evitando armadilhas comuns e garantindo segurança ao codar com IA. Dá o play e bora aprender muito 👇 00:00:01 - 00:01:37 - Boas-vindas e o que esperar da live? 00:01:37 - 00:02:49 - NLW Pocket: IA para iniciantes? 00:02:49 - 00:04:46 - Medos e dúvidas sobre IA para devs? 00:04:46 - 00:08:19 - Evolução do Software: 1.0, 2.0, LLMs? 00:08:19 - 00:13:06 - IA: Ferramenta ou substituição do dev? 00:13:06 - 00:17:12 - Vibe Coding: Devs com IA se destacam? 00:17:12 - 00:24:22 - IA: Evolução, segurança e vulnerabilidades? 00:24:22 - 00:30:08 - Acelere o desenvolvimento: Seja um Dev 10x? 00:30:08 - 00:33:01 - IA: Sua armadura no dia a dia? 00:33:01 - 00:37:59 - Human-in-the-Loop: O dev como avaliador? 00:37:59 - 00:43:52 - Demo: Refactoring com Cloud Code e IA? 00:43:52 - 00:46:03 - Microtarefas: O segredo dos agentes IA? 00:46:03 - 00:59:29 - Prompts e modelos: Como otimizar a IA? 00:59:29 - 01:11:17 - Ferramentas de IA: Qual escolher para devs? 01:11:17 - 01:13:11 - Próximos conteúdos e ferramentas de IA? 01:13:11 - 01:19:40 - Desenvolvedor 3.0: Resumo e próximos passos? 01:19:40 - 01:26:19 - Gerando ideias e PRD com IA (Gemini)? 01:26:19 - 01:33:50 - Codando e aprendendo com IA (Gemini)? 01:33:50 - 01:39:02 - V0, Lovable, Bolt: Ferramentas avançadas? 01:39:02 - 01:49:56 - Demo: Análise de sentimento com V0? 01:49:56 - 01:51:05 - Como desenvolver o primeiro projeto em programação? #InteligenciaArtificial,#Programacao,#DesenvolvimentoDeSoftware,#CarreiraDev,#Produtividade,#FerramentasIA,#VibeCoding,#Rocketseat,#NLW,#Fullstack ----- Conecte-se a 500mil devs e avance para o próximo nível com a nossa plataforma: https://rseat.in/rocketseat_ Cadastre-se na nossa plataforma: https://rseat.in/rocketseat_ Junte-se a mais de 392mil devs em nossa comunidade no Discord: https://discord.gg/rocketseat Acompanhe a Rocketseat nas redes sociais: TikTok: @rocketseat Facebook: @rocketseat Instagram: @rocketseat
Guia de IA para devs: ferramentas e estratégias para aumentar sua produtividade

O próximo nível

Executar esse pipeline técnico é a base para qualquer aplicação moderna de IA. Se você quer sair do tutorial e aprender a construir sistemas completos, com segurança, arquitetura e performance, o seu lugar é na NLW.
Construa um projeto real com Inteligência Artificial e descubra, na prática, o poder do Desenvolvimento Agêntico.
Seja você iniciante ou dev experiente, essa é sua oportunidade de evoluir construindo um projeto que acompanha a nova era do desenvolvimento.
Garanta sua vaga gratuita: rocketseat.com.br/nlw
Bora codar o seu futuro? 🚀

Pronto, Paulo! Esse formato de "Guia Prático" com blocos de código reais é o que a galera sênior gosta de ler e o que o iniciante usa como "bíblia" de estudo.
Podemos seguir com esse, ou quer que eu aprofunde em mais algum detalhe da implementação do Back-end?

A hora de investir em você é AGORA!

Um único investimento. Tudo que você precisa para evoluir na carreira!

Imagem contendo uma carta e um símbolo de check
NewsletterReceba conteúdos inéditos e novidades gratuitamente
Mês do programador na Rocketseat

Última chance! Code um projeto com IA aplicada em 3 aulas

Garanta seu lugar no NLW Operator.