https://github.com/mathrb22/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.
https://github.com/mathrb22/nlw-mastery-upload-ai
ai chatgpt fastify gpt-3 ia next next-level-week nlw-ai nlw-ia nodejs openai-api prisma prompts radix-ui react tailwindcss typescript vite zod
Last synced: 7 months ago
JSON representation
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.
- Host: GitHub
- URL: https://github.com/mathrb22/nlw-mastery-upload-ai
- Owner: mathrb22
- License: mit
- Created: 2023-09-14T00:14:26.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-02-11T15:42:36.000Z (over 1 year ago)
- Last Synced: 2024-02-11T16:49:53.906Z (over 1 year ago)
- Topics: ai, chatgpt, fastify, gpt-3, ia, next, next-level-week, nlw-ai, nlw-ia, nodejs, openai-api, prisma, prompts, radix-ui, react, tailwindcss, typescript, vite, zod
- Language: TypeScript
- Homepage:
- Size: 29 MB
- Stars: 4
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
![]()
upload.ai
[**Sobre**](#-sobre) **|**
[**Objetivo**](#-objetivo) **|**
[**Features**](#-features) **|**
[**Demonstração**](#-demonstração) **|**
[**Tecnologias e ferramentas**](#-tecnologias-e-ferramentas) **|**
[**Organização do projeto**](#-organização-do-projeto) **|**
[**Instalação e execução**](#-instalação-e-execução) **|**
[**Como contribuir**](#-como-contribuir) **|**
[**Licença**](#-licença)## 📃 Sobre
**Upload.ai** é o projeto desenvolvido durante a trilha Mastery da **Next Level Week IA**, um evento online produzido pela [**Rocketseat**](https://github.com/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
- [x] Upload de vídeos;
- [x] Conversão de vídeo para áudio utilizando o [**ffmpeg.wasm**](https://ffmpegwasm.netlify.app/);
- [x] Transcrição de áudio utilizando o [**Whisper (ASR - Automatic Speech Recognition)**](https://openai.com/research/whisper) da OpenAI;
- [x] Customização dos prompts;
- [x] Geração de resumo da transcrição utilizando o modelo GPT-3 da OpenAI;
- [x] Geração de títulos chamativos utilizando o modelo GPT-3 da OpenAI;
- [x] Geração de descrições otimizadas para SEO utilizando o modelo GPT-3 da OpenAI;
- [x] Flexibilidade para definir a temperatura (nível de aleatoriedade) dos resultados gerados (0-1);
- [x] Cópia dos resultados gerados pela IA para a área de transferência.## 💻 Demonstração
https://github.com/mathrb22/nlw-mastery-upload-ai/assets/62413443/e7f4d886-dc36-4885-ad58-3ccbf0b4b031
## 🚀 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**](https://git-scm.com/).
Com o Git instalado, em seu terminal execute o seguinte comando:```bash
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**](https://nodejs.org/en/), que vem acompanhado do npm.
> Nesse projeto foi utilizado o [**pnpm**](https://pnpm.io/), 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:
```bash
cd web
```Instale as dependências usando **pnpm** ou **npm**:
```bash
# pnpm
pnpm install# npm
npm install
```Executar o projeto:
```bash
# 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:
```bash
cd api
```Instale as dependências usando **pnpm** ou **npm**:
```bash
# pnpm
pnpm install# npm
npm install
```Crie o arquivo .env com as variáveis de ambiente necessárias:
```bash
DATABASE_URL="file:./dev.db"
OPENAI_KEY="sua OpenAI key"
```Rode o comando a seguir para gerar o client do Prisma:
```bash
# pnpm
pnpm prisma generate# npm
npm prisma generate
```Execute as migrations do banco de dados:
```bash
# pnpm
pnpm prisma migrate dev# npm
npm prisma migrate dev
```Execute o projeto:
```bash
# 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
Esse projeto está sob a licença **MIT**. Veja o arquivo _**LICENSE**_ para mais detalhes.
---
Desenvolvido com 💚 por mathrb22