Spaces:
Running
Running
Artyom Boyko
commited on
Commit
·
f872a02
1
Parent(s):
1a15387
Gradio container test.
Browse files- .devcontainer/devcontainer.json +44 -0
- .gitattributes +35 -35
- Dockerfile +61 -0
- README.md +12 -12
- app_srv/app_srv.py +17 -0
- packages.txt +14 -0
- requirements.txt +5 -0
.devcontainer/devcontainer.json
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
|
| 2 |
+
// README at: https://github.com/devcontainers/templates/tree/main/src/ubuntu
|
| 3 |
+
{
|
| 4 |
+
"name": "",
|
| 5 |
+
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
|
| 6 |
+
//"image": "mcr.microsoft.com/devcontainers/base:jammy"
|
| 7 |
+
"build": {
|
| 8 |
+
"dockerfile": "../Dockerfile"
|
| 9 |
+
},
|
| 10 |
+
// Features to add to the dev container. More info: https://containers.dev/features.
|
| 11 |
+
// "features": {},
|
| 12 |
+
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
| 13 |
+
// "forwardPorts": [],
|
| 14 |
+
// Use 'postCreateCommand' to run commands after the container is created.
|
| 15 |
+
// "postCreateCommand": "uname -a",
|
| 16 |
+
// Configure tool-specific properties.
|
| 17 |
+
"customizations": {
|
| 18 |
+
"vscode": {
|
| 19 |
+
"extensions": [
|
| 20 |
+
"ms-python.python",
|
| 21 |
+
"ms-python.vscode-pylance",
|
| 22 |
+
"ms-toolsai.jupyter",
|
| 23 |
+
"ms-toolsai.vscode-jupyter-cell-tags",
|
| 24 |
+
"ms-toolsai.tensorboard",
|
| 25 |
+
"ms-toolsai.jupyter-keymap",
|
| 26 |
+
"ms-toolsai.jupyter-renderers",
|
| 27 |
+
"ms-toolsai.vscode-jupyter-slideshow",
|
| 28 |
+
"ms-toolsai.datawrangler",
|
| 29 |
+
"ms-azuretools.vscode-docker",
|
| 30 |
+
"github.vscode-github-actions",
|
| 31 |
+
"github.copilot",
|
| 32 |
+
"github.copilot-chat",
|
| 33 |
+
"mechatroner.rainbow-csv"
|
| 34 |
+
]
|
| 35 |
+
}
|
| 36 |
+
},
|
| 37 |
+
"runArgs": [
|
| 38 |
+
"--shm-size=1gb",
|
| 39 |
+
"--gpus",
|
| 40 |
+
"all"
|
| 41 |
+
]
|
| 42 |
+
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
|
| 43 |
+
// "remoteUser": "root"
|
| 44 |
+
}
|
.gitattributes
CHANGED
|
@@ -1,35 +1,35 @@
|
|
| 1 |
-
*.7z filter=lfs diff=lfs merge=lfs -text
|
| 2 |
-
*.arrow filter=lfs diff=lfs merge=lfs -text
|
| 3 |
-
*.bin filter=lfs diff=lfs merge=lfs -text
|
| 4 |
-
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
| 5 |
-
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
| 6 |
-
*.ftz filter=lfs diff=lfs merge=lfs -text
|
| 7 |
-
*.gz filter=lfs diff=lfs merge=lfs -text
|
| 8 |
-
*.h5 filter=lfs diff=lfs merge=lfs -text
|
| 9 |
-
*.joblib filter=lfs diff=lfs merge=lfs -text
|
| 10 |
-
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
| 11 |
-
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
| 12 |
-
*.model filter=lfs diff=lfs merge=lfs -text
|
| 13 |
-
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
| 14 |
-
*.npy filter=lfs diff=lfs merge=lfs -text
|
| 15 |
-
*.npz filter=lfs diff=lfs merge=lfs -text
|
| 16 |
-
*.onnx filter=lfs diff=lfs merge=lfs -text
|
| 17 |
-
*.ot filter=lfs diff=lfs merge=lfs -text
|
| 18 |
-
*.parquet filter=lfs diff=lfs merge=lfs -text
|
| 19 |
-
*.pb filter=lfs diff=lfs merge=lfs -text
|
| 20 |
-
*.pickle filter=lfs diff=lfs merge=lfs -text
|
| 21 |
-
*.pkl filter=lfs diff=lfs merge=lfs -text
|
| 22 |
-
*.pt filter=lfs diff=lfs merge=lfs -text
|
| 23 |
-
*.pth filter=lfs diff=lfs merge=lfs -text
|
| 24 |
-
*.rar filter=lfs diff=lfs merge=lfs -text
|
| 25 |
-
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
| 26 |
-
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
| 27 |
-
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
| 28 |
-
*.tar filter=lfs diff=lfs merge=lfs -text
|
| 29 |
-
*.tflite filter=lfs diff=lfs merge=lfs -text
|
| 30 |
-
*.tgz filter=lfs diff=lfs merge=lfs -text
|
| 31 |
-
*.wasm filter=lfs diff=lfs merge=lfs -text
|
| 32 |
-
*.xz filter=lfs diff=lfs merge=lfs -text
|
| 33 |
-
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
-
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
-
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
|
|
|
| 1 |
+
*.7z filter=lfs diff=lfs merge=lfs -text
|
| 2 |
+
*.arrow filter=lfs diff=lfs merge=lfs -text
|
| 3 |
+
*.bin filter=lfs diff=lfs merge=lfs -text
|
| 4 |
+
*.bz2 filter=lfs diff=lfs merge=lfs -text
|
| 5 |
+
*.ckpt filter=lfs diff=lfs merge=lfs -text
|
| 6 |
+
*.ftz filter=lfs diff=lfs merge=lfs -text
|
| 7 |
+
*.gz filter=lfs diff=lfs merge=lfs -text
|
| 8 |
+
*.h5 filter=lfs diff=lfs merge=lfs -text
|
| 9 |
+
*.joblib filter=lfs diff=lfs merge=lfs -text
|
| 10 |
+
*.lfs.* filter=lfs diff=lfs merge=lfs -text
|
| 11 |
+
*.mlmodel filter=lfs diff=lfs merge=lfs -text
|
| 12 |
+
*.model filter=lfs diff=lfs merge=lfs -text
|
| 13 |
+
*.msgpack filter=lfs diff=lfs merge=lfs -text
|
| 14 |
+
*.npy filter=lfs diff=lfs merge=lfs -text
|
| 15 |
+
*.npz filter=lfs diff=lfs merge=lfs -text
|
| 16 |
+
*.onnx filter=lfs diff=lfs merge=lfs -text
|
| 17 |
+
*.ot filter=lfs diff=lfs merge=lfs -text
|
| 18 |
+
*.parquet filter=lfs diff=lfs merge=lfs -text
|
| 19 |
+
*.pb filter=lfs diff=lfs merge=lfs -text
|
| 20 |
+
*.pickle filter=lfs diff=lfs merge=lfs -text
|
| 21 |
+
*.pkl filter=lfs diff=lfs merge=lfs -text
|
| 22 |
+
*.pt filter=lfs diff=lfs merge=lfs -text
|
| 23 |
+
*.pth filter=lfs diff=lfs merge=lfs -text
|
| 24 |
+
*.rar filter=lfs diff=lfs merge=lfs -text
|
| 25 |
+
*.safetensors filter=lfs diff=lfs merge=lfs -text
|
| 26 |
+
saved_model/**/* filter=lfs diff=lfs merge=lfs -text
|
| 27 |
+
*.tar.* filter=lfs diff=lfs merge=lfs -text
|
| 28 |
+
*.tar filter=lfs diff=lfs merge=lfs -text
|
| 29 |
+
*.tflite filter=lfs diff=lfs merge=lfs -text
|
| 30 |
+
*.tgz filter=lfs diff=lfs merge=lfs -text
|
| 31 |
+
*.wasm filter=lfs diff=lfs merge=lfs -text
|
| 32 |
+
*.xz filter=lfs diff=lfs merge=lfs -text
|
| 33 |
+
*.zip filter=lfs diff=lfs merge=lfs -text
|
| 34 |
+
*.zst filter=lfs diff=lfs merge=lfs -text
|
| 35 |
+
*tfevents* filter=lfs diff=lfs merge=lfs -text
|
Dockerfile
ADDED
|
@@ -0,0 +1,61 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
FROM python:3.12.10-bookworm
|
| 2 |
+
|
| 3 |
+
# ENV PIP_ROOT_USER_ACTION=ignore
|
| 4 |
+
ARG USERNAME=mcp_user
|
| 5 |
+
ARG USER_UID=1000
|
| 6 |
+
ARG SRV_WORKDIR=app_srv
|
| 7 |
+
|
| 8 |
+
WORKDIR /tmp/
|
| 9 |
+
COPY requirements.txt packages.txt ./
|
| 10 |
+
|
| 11 |
+
RUN apt-get -y update && apt-get -y upgrade && xargs apt -y install < packages.txt
|
| 12 |
+
RUN pip install --no-cache-dir --upgrade pip
|
| 13 |
+
|
| 14 |
+
# Install CUDA 12.8
|
| 15 |
+
|
| 16 |
+
RUN wget https://developer.download.nvidia.com/compute/cuda/repos/debian12/x86_64/cuda-keyring_1.1-1_all.deb \
|
| 17 |
+
&& dpkg -i cuda-keyring_1.1-1_all.deb \
|
| 18 |
+
&& apt-get update \
|
| 19 |
+
&& apt-get -y install cuda-toolkit-12-8
|
| 20 |
+
|
| 21 |
+
# https://docs.nvidia.com/cuda/cuda-installation-guide-linux/#post-installation-actions
|
| 22 |
+
ENV PATH=/usr/local/cuda-12.8/bin:${PATH}
|
| 23 |
+
ENV LD_LIBRARY_PATH=/usr/local/cuda-12.8/lib64:/usr/lib/x86_64-linux-gnu/
|
| 24 |
+
|
| 25 |
+
|
| 26 |
+
# Install cuDNN for CUDA 12
|
| 27 |
+
RUN wget https://developer.download.nvidia.com/compute/cuda/repos/debian12/x86_64/cuda-keyring_1.1-1_all.deb \
|
| 28 |
+
&& dpkg -i cuda-keyring_1.1-1_all.deb \
|
| 29 |
+
&& apt-get update \
|
| 30 |
+
&& apt-get -y install cudnn-cuda-12
|
| 31 |
+
|
| 32 |
+
# Install Pytorch for CUDA 12.8
|
| 33 |
+
RUN pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu128
|
| 34 |
+
|
| 35 |
+
# Install other python packages
|
| 36 |
+
# RUN rm -f /usr/lib/python3.12/EXTERNALLY-MANAGED
|
| 37 |
+
RUN pip3 install --no-cache-dir -r requirements.txt
|
| 38 |
+
|
| 39 |
+
# Clear after build image
|
| 40 |
+
RUN apt-get clean
|
| 41 |
+
RUN rm -rf /tmp/*
|
| 42 |
+
|
| 43 |
+
# https://huggingface.co/docs/hub/spaces-sdks-docker#permissions
|
| 44 |
+
# Set up a new user named "user" with user ID 1000
|
| 45 |
+
RUN useradd -m -u $USER_UID $USERNAME
|
| 46 |
+
# Switch to the "user" user
|
| 47 |
+
USER $USERNAME
|
| 48 |
+
# Set home to the user's home directory
|
| 49 |
+
ENV HOME=/home/$USERNAME \
|
| 50 |
+
PATH=/home/$USERNAME/.local/bin:$PATH
|
| 51 |
+
# Set the working directory to the user's home directory
|
| 52 |
+
WORKDIR $HOME/$SRV_WORKDIR
|
| 53 |
+
# Copy the current directory contents into the container at $HOME/app setting the owner to the user
|
| 54 |
+
COPY --chown=$USERNAME ./app_srv/* $HOME/$SRV_WORKDIR
|
| 55 |
+
|
| 56 |
+
# Gradio configuration
|
| 57 |
+
EXPOSE 7860
|
| 58 |
+
ENV GRADIO_SERVER_NAME="0.0.0.0"
|
| 59 |
+
|
| 60 |
+
CMD ["python", "app_srv.py"]
|
| 61 |
+
# CMD ["bash"]
|
README.md
CHANGED
|
@@ -1,12 +1,12 @@
|
|
| 1 |
-
---
|
| 2 |
-
title: Video Analyser
|
| 3 |
-
emoji: 📊
|
| 4 |
-
colorFrom: indigo
|
| 5 |
-
colorTo: pink
|
| 6 |
-
sdk: docker
|
| 7 |
-
pinned: false
|
| 8 |
-
license: gpl-3.0
|
| 9 |
-
short_description: Analysing video with audio with AI
|
| 10 |
-
---
|
| 11 |
-
|
| 12 |
-
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
|
|
|
| 1 |
+
---
|
| 2 |
+
title: Video Analyser
|
| 3 |
+
emoji: 📊
|
| 4 |
+
colorFrom: indigo
|
| 5 |
+
colorTo: pink
|
| 6 |
+
sdk: docker
|
| 7 |
+
pinned: false
|
| 8 |
+
license: gpl-3.0
|
| 9 |
+
short_description: Analysing video with audio with AI
|
| 10 |
+
---
|
| 11 |
+
|
| 12 |
+
Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
|
app_srv/app_srv.py
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import gradio as gr
|
| 2 |
+
|
| 3 |
+
def greet(name):
|
| 4 |
+
return f"Привет, {name}!"
|
| 5 |
+
|
| 6 |
+
# Интерфейс Gradio
|
| 7 |
+
demo = gr.Interface(
|
| 8 |
+
fn=greet, # Функция для вызова
|
| 9 |
+
inputs=gr.Textbox(label="Введите имя"), # Поле ввода
|
| 10 |
+
outputs=gr.Textbox(label="Результат"), # Поле вывода
|
| 11 |
+
title="Тестовое Gradio-приложение", # Заголовок
|
| 12 |
+
description="Минимальный пример для проверки работоспособности." # Описание
|
| 13 |
+
)
|
| 14 |
+
|
| 15 |
+
# Запуск приложения
|
| 16 |
+
if __name__ == "__main__":
|
| 17 |
+
demo.launch()
|
packages.txt
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
ffmpeg
|
| 2 |
+
git
|
| 3 |
+
git-lfs
|
| 4 |
+
htop
|
| 5 |
+
iotop
|
| 6 |
+
libxml2
|
| 7 |
+
libopenblas-dev
|
| 8 |
+
libssl-dev
|
| 9 |
+
python3-pip
|
| 10 |
+
python3-wheel
|
| 11 |
+
python3-setuptools
|
| 12 |
+
python-is-python3
|
| 13 |
+
wget
|
| 14 |
+
zlib1g
|
requirements.txt
ADDED
|
@@ -0,0 +1,5 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
transformers
|
| 2 |
+
datasets
|
| 3 |
+
evaluate
|
| 4 |
+
gradio
|
| 5 |
+
uvicorn[standard]
|