An open API service indexing awesome lists of open source software.

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.

Awesome Lists containing this project

README

          


Í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**](#-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

**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


GitHub License

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

---

Desenvolvido com 💚 por mathrb22



Gmail