llama-omni / Dockerfile
marcosremar2's picture
ereer
9e20f24
# Usa a mesma imagem base que o Hugging Face Spaces
FROM python:3.10
# Instala uma versão mais antiga do pip
RUN python -m pip install pip==24.0
# Instala dependências do sistema necessárias
RUN apt-get update && apt-get install -y \
git \
git-lfs \
ffmpeg \
libsm6 \
libxext6 \
cmake \
rsync \
libgl1-mesa-glx \
wget \
&& rm -rf /var/lib/apt/lists/*
# Define o diretório de trabalho
WORKDIR /home/user/app
# Cria os diretórios que o aplicativo precisa e ajusta permissões
RUN mkdir -p models/speech_encoder && chmod -R 777 models
RUN mkdir -p vocoder && chmod -R 777 vocoder
# Copia o arquivo requirements.txt para o contêiner
COPY . /home/user/app
# Instala as dependências necessárias para compilação
RUN pip install --no-cache-dir packaging ninja
# Instala o pacote em modo de desenvolvimento
RUN pip install -e .
# Clona e instala fairseq
RUN git clone https://github.com/pytorch/fairseq /tmp/fairseq \
&& cd /tmp/fairseq \
&& pip install -e . --no-build-isolation \
&& cd /home/user/app
# Instala flash-attn com os parâmetros recomendados
RUN MAX_JOBS=4 pip install --no-cache-dir flash-attn --no-build-isolation
# Instala as dependências Python do arquivo requirements.txt
RUN pip install --no-cache-dir -r requirements.txt
# Baixa o vocoder HiFi-GAN
RUN wget -P vocoder/ https://dl.fbaipublicfiles.com/fairseq/speech_to_speech/vocoder/code_hifigan/mhubert_vp_en_es_fr_it3_400k_layer11_km1000_lj/g_00500000 && \
wget -P vocoder/ https://dl.fbaipublicfiles.com/fairseq/speech_to_speech/vocoder/code_hifigan/mhubert_vp_en_es_fr_it3_400k_layer11_km1000_lj/config.json
# Pré-carrega o modelo Whisper tiny (mais rápido)
RUN python -c "import whisper; whisper.load_model('tiny', download_root='models/speech_encoder/')"
# Expõe a porta padrão do Gradio
EXPOSE 7860
# Comando para rodar o aplicativo
CMD ["python", "app_gradio_spaces.py"]