/nlw-mastery-upload-ai

Aplicação que possibilita realizar upload de videos e por meio de IA, criar automaticamente títulos chamativos e descrições com uma boa indexação.

Primary LanguageTypeScriptMIT LicenseMIT

Ícone de um robô para representação do projeto upload.ai

upload.ai

Made by mathrb22 GitHub Last Commit GitHub Issues Pull Requests Welcome GitHub License

Sobre   |   Objetivo   |   Features   |   Demonstração   |   Tecnologias e ferramentas   |   Organização do projeto   |   Instalação e execução   |   Como contribuir   |   Licença

📃 Sobre

upload.ai

Upload.ai é o projeto desenvolvido durante a trilha Mastery da Next Level Week IA, um evento online produzido pela Rocketseat.

Trata-se de uma aplicação que possibilita realizar upload de videos e por meio de IA, criar automaticamente títulos chamativos e descrições com um boa indexação.

🎯 Objetivo

O objetivo central do Upload.ai é criar uma plataforma que permita aos usuários realizar o upload de vídeos e, por meio de IA (Inteligência Artificial), gerar automaticamente títulos chamativos e descrições otimizadas para esses vídeos. Esta aplicação visa simplificar o processo de criação de conteúdo de vídeo e melhorar a visibilidade dos vídeos na web.

O projeto Upload.ai possui muitas aplicações práticas. Ele poderá ajudar criadores de conteúdo, profissionais de marketing, educadores online e empresas de mídia a melhorar a visibilidade e o desempenho de vídeos online, economizando tempo na criação de títulos e descrições atraentes e otimizadas para mecanismos de busca.

✨ Features

  • Upload de vídeos;
  • Conversão de vídeo para áudio utilizando o ffmpeg.wasm;
  • Transcrição de áudio utilizando o Whisper (ASR - Automatic Speech Recognition) da OpenAI;
  • Customização dos prompts;
  • Geração de resumo da transcrição utilizando o modelo GPT-3 da OpenAI;
  • Geração de títulos chamativos utilizando o modelo GPT-3 da OpenAI;
  • Geração de descrições otimizadas para SEO utilizando o modelo GPT-3 da OpenAI;
  • Flexibilidade para definir a temperatura (nível de aleatoriedade) dos resultados gerados (0-1);
  • Cópia dos resultados gerados pela IA para a área de transferência.

💻 Demonstração

video-demo-upload-ai.mp4

🚀 Tecnologias e ferramentas

Front-end (web) React, TypeScript, TailwindCSS, Vite.js, Radix UI, Shadcn/ui, ffmpeg.wasm, Axios, Vercel AI SDK
Back-end (API) Node.js, TypeScript, Prisma, Fastify, Zod, SQLite, OpenAI Node API, Vercel AI SDK

📂 Organização do projeto

Este repositório é dividido em dois principais diretórios:

  • api: Contém o código-fonte do back-end.
  • web: Contém o código-fonte do front-end.

🔧 Instalação e execução

Para baixar o código-fonte do projeto em sua máquina, primeiramente terá que ter instalado o Git. Com o Git instalado, em seu terminal execute o seguinte comando:

git clone https://github.com/mathrb22/nlw-mastery-upload-ai.git

Para instalar as dependências e executar o projeto terá que ter instalado em sua máquina o node.js, que vem acompanhado do npm.

Nesse projeto foi utilizado o pnpm, que busca economizar espaço em disco e acelerar a instalação de pacotes devido à sua abordagem de armazenamento de dependências compartilhado.

Front-end (Web)

Acesse a pasta do projeto:

cd web

Instale as dependências usando pnpm ou npm:

# pnpm
pnpm install

# npm
npm install

Executar o projeto:

# pnpm
pnpm run dev

# npm
npm run dev

A aplicação estará disponível em http://localhost:5173. Você poderá acessá-la a partir do seu navegador.

Back-end (API)

Acesse a pasta do projeto:

cd api

Instale as dependências usando pnpm ou npm:

# pnpm
pnpm install

# npm
npm install

Crie o arquivo .env com as variáveis de ambiente necessárias:

DATABASE_URL="file:./dev.db"
OPENAI_KEY="sua OpenAI key"

Rode o comando a seguir para gerar o client do Prisma:

# pnpm
pnpm prisma generate

# npm
npm prisma generate

Execute as migrations do banco de dados:

# pnpm
pnpm prisma migrate dev

# npm
npm prisma migrate dev

Execute o projeto:

# pnpm
pnpm run dev

# npm
npm run dev

O servidor estará disponível em http://localhost:3333.

💡 Como contribuir

  • Faça um fork desse repositório;
  • Crie um branch para a sua feature: git checkout -b minha-feature;
  • Faça um commit com suas alterações: git commit -m 'feat: Minha nova feature';
  • Faça um push para o seu branch: git push origin minha-feature;
  • Faça um pull request com sua feature;

Pull requests são sempre bem-vindos. Em caso de dúvidas ou sugestões, crie uma issue ou entre em contato comigo.

📝 Licença

GitHub License

Esse projeto está sob a licença MIT. Veja o arquivo LICENSE para mais detalhes.


Desenvolvido com 💚 por mathrb22

Gmail