Aqui está um modelo básico de README para o seu repositório, com uma explicação sobre o funcionamento do modelo LLaVa-NeXT e como rodar o teste no Colab, além da implementação da API em Flask:
Este repositório contém uma demonstração do modelo LLaVa-NeXT-Video, que é um modelo multimodal de linguagem e visão. Ele permite a interação com vídeos e imagens para responder a perguntas baseadas nesses conteúdos. O repositório inclui:
- Testes no Colab: Um ambiente de teste no Google Colab para experimentar o modelo LLaVa-NeXT-Video de maneira rápida.
- Implementação da API: Uma API em FastAPI que permite enviar vídeos e perguntas e obter respostas geradas pelo modelo.
Para testar o modelo em Google Colab, siga os seguintes passos:
- Acesse o notebook no Colab e execute as células que carregam o modelo.
- Carregue um vídeo e faça uma pergunta para o modelo.
- O modelo irá processar o vídeo e gerar uma resposta com base no conteúdo.
Este repositório inclui uma API simples usando FastAPI que permite enviar vídeos e perguntas para o modelo, e ele retorna uma resposta gerada.
-
Instalar dependências: Para rodar a API, primeiro instale as dependências necessárias:
pip install -r requirements.txt
-
Executar o servidor FastAPI:
Execute o arquivo
app.pypara rodar o servidor local:uvicorn app:app --host 192.168.0.54 --port 8000
Isso iniciará o servidor na URL
http://192.168.0.54:8000.
-
POST /process_video/: Envia um vídeo e uma pergunta, e o modelo gera uma resposta com base no conteúdo do vídeo.
Parâmetros:
question: Pergunta que você deseja que o modelo responda.video: Arquivo de vídeo (formato mp4 ou outros formatos compatíveis).
Exemplo de requisição:
Usando Postman ou outro cliente de API, envie uma requisição POST com os seguintes parâmetros:
- question: "O que acontece no vídeo?"
- video: Arquivo de vídeo.
A resposta será um JSON contendo o texto gerado pelo modelo:
{ "generated_text": "O modelo irá fornecer a resposta gerada com base no conteúdo do vídeo." }
A API em FastAPI utiliza o seguinte fluxo para gerar as respostas:
- Carregamento do modelo: O modelo
LLaVaNextVideoForConditionalGeneratione o processadorLlavaNextVideoProcessorsão carregados a partir do Hugging Face Model Hub. - Processamento de vídeo: O vídeo é lido e amostrado em 8 quadros usando a biblioteca PyAV.
- Criação de prompt: A pergunta do usuário e os quadros do vídeo são passados para o modelo como entrada.
- Geração de resposta: O modelo gera uma resposta baseada na entrada e retorna a resposta como texto.