Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Next Level Week AI

◦ Projeto da NLW AI da Rocketseat, editado por mim.

SVG JavaScript HTML5 PostCSS Autoprefixer Vite React Axios ESLint OpenAI TypeScript Prisma Fastify JSON

GitHub top language GitHub code size in bytes GitHub commit activity GitHub license

📒 Índice


📍 Visão Geral

O projeto permite aos utilizadores carregar vídeos, transcreve-los para texto e gerar conclusões com as IAs da OpenAI, baseados em prompts pre-definidos. A proposta de valor do projeto consiste em tirar partido da IA para gerar conclusões eficientes e de alta qualidade para vários fins, como a criação de títulos e descrições apelativos para vídeos do YouTube. Em geral, oferece uma interface de fácil utilização para os utilizadores interagirem com sistemas de conclusão alimentados por IA.

Ele foi criado durante a NLW AI da Rocketseat porém possuí algumas diferenças minimas de visual e comportamento adicionadas por mim.

Destaque para: OpenAI API (Whisper e GPT-3.5 turbo 16k), FFmpeg WASM.


Preview


⚙️ Funcionalidades

Feature Description
⚙️ Arquitetura base de código segue uma arquitetura servidor-cliente com uma API de backend construída em Fastify e um frontend construído em React. O backend usa Prisma como ORM para interagir com uma base de dados SQLite.
📖 Documentação 🧩 Clique aqui.
🔗 Dependências O sistema depende de bibliotecas externas como Fastify, React, Prisma, Tailwind CSS, OpenAI e axios. Estas bibliotecas fornecem funcionalidades essenciais para servir a API, construir o frontend, operações ORM, gerir estilos, processamento de PNL e efetuar chamadas à API.
🧩 Modularidade A base de código está organizada em vários componentes, rotas e bibliotecas. Cada componente tem uma responsabilidade específica e pode ser trocado ou reutilizado facilmente. No entanto, é possível melhorar a separação de preocupações e reduzir as dependências entre componentes.
✔️ Testes O código não tem uma estratégia de teste abrangente como Jest ou Cypress. Possui no entanto algumas rotas HTTP no backend para uma verificação manual do comportamento do servidor.
⚡️ Performance A performance varia dependendo do tamanho do vídeo. A IA pode ser otimizada.
🔐 Segurança Indisponível no momento.
🔀 Controlo de versões Este repositório.
🔌 Integrações A API do sistema interage com OpenAI para serviços de processamento de linguagem natural, Prisma para operações de bases de dados e FFmpeg com Web Assembly para processamento de vídeo e áudio.
📶 Escalabilidade Indisponível no momento.

📂 Estrutura do Projeto

  • web/ : Frontend.
  • api/ : Backend.

🧩 Módulos

File Summary
routes.http Um arquivo com as possível rotas da aplicação.
App.tsx UI da aplicação onde o usuário irá carregar o vídeo e selecionar o prompt desejado.
create-transcription.ts Rota POST para gerar a transcrição de um determinado vídeo. Ele valida os parâmetros e o corpo do pedido, busca os detalhes do vídeo, processa o arquivo de áudio, envia-o para a API de transcrição da OpenAI, armazena o resultado no banco de dados e retorna o texto da transcrição como resposta.
generate-ai-completion.ts Rota POST que lida com a geração de IA para um determinado vídeo. Valida a entrada, obtém os dados do vídeo, gera uma mensagem de aviso e utiliza o modelo GPT da OpenAI para gerar uma conclusão. A conclusão gerada é então transmitida de volta como uma stream para ser lida pelo front-end, token a token.
get-all-prompts.ts Rota GET que, quando um pedido é feito, ele recupera todos os prompts do banco de dados usando o Prisma.
upload-video.ts Rota POST para carregar vídeos MP3 usando o Fastify. Ele valida o tipo de arquivo, salva-o em um local temporário e armazena as informações do vídeo em um banco de dados usando o Prisma.

🚀 Começando

📦 Instalação

  1. Clonar o repositório:
git clone https://github.com/zF4ke/nlw-ai
  1. Mudar para o diretório web/ do projeto:
cd nlw-ai/web
  1. Instalar dependências:
npm install
  1. Mudar para o diretório api/ do projeto:
cd ../api
  1. Instalar dependências:
npm install

🎮 Usando NLW-AI

Em web/:

npm run dev

Em api/:

npm run dev

🧪 Testes

Indisponível.

🤝 Contribuir

As contribuições são sempre bem-vindas! Por favor, siga os seguintes passos:

  1. Bifurcar o repositório do projeto. Isto cria uma cópia do projeto na sua conta que pode modificar sem afetar o projeto original.
  2. Clone o repositório bifurcado para a sua máquina local usando um cliente Git como o Git ou o GitHub Desktop.
  3. Crie um novo branch com um nome descritivo (por exemplo, new-feature-branch ou bugfix-issue-123).
git checkout -b new-feature-branch
  1. Faça alterações na base de código do projeto.
  2. Faça o commit das suas alterações no seu branch local com uma mensagem de commit clara que explique as alterações que você fez.
git commit -m 'Implementou nova funcionalidade.'
  1. Envie suas alterações para o repositório bifurcado no GitHub usando o seguinte comando
git push origin new-feature-branch
  1. Crie uma nova pull request para o repositório original do projeto. No pull request, descreva as alterações que você fez e por que elas são necessárias. Os mantenedores do projeto revisarão suas alterações e fornecerão feedback ou as mesclarão no branch principal.

📄 Licença

Este projeto está licenciado sob a licença MIT. Veja o arquivo LICENSE para informações adicionais.


👏 Agradecimentos

  • ℹ️ Rocketseat - rocketseat.com.br

About

Projeto da NLW AI da Rocketseat, editado por mim.

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages