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