AnatoliiG commited on
Commit
37f2508
·
1 Parent(s): 9306632
Files changed (4) hide show
  1. .dockerignore +20 -0
  2. Dockerfile +9 -19
  3. README.md +34 -0
  4. requirements.txt +0 -1
.dockerignore ADDED
@@ -0,0 +1,20 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ .git
2
+ .gitignore
3
+ __pycache__
4
+ *.pyc
5
+ *.pyo
6
+ *.pyd
7
+ .Python
8
+ env/
9
+ venv/
10
+ .venv
11
+ .env
12
+ .env.local
13
+ *.egg-info
14
+ dist
15
+ build
16
+ .pytest_cache
17
+ .coverage
18
+ .DS_Store
19
+ *.log
20
+ node_modules
Dockerfile CHANGED
@@ -1,36 +1,26 @@
1
- FROM ubuntu:24.04
2
 
3
  # Отключаем интерактивные диалоги при установке
4
- ENV DEBIAN_FRONTEND=noninteractive
 
 
5
 
6
- # Копируем инструмент 'uv' (он заменит pip, сам скачает Python 3.10 и сделает сборку реактивной)
7
- COPY --from=ghcr.io/astral-sh/uv:latest /uv /uvx /bin/
8
-
9
- # Устанавливаем базовые системные пакеты (включая нужный gomp)
10
  RUN apt-get update && apt-get install -y --no-install-recommends \
11
  libgomp1 \
12
  ca-certificates \
13
  && rm -rf /var/lib/apt/lists/*
14
 
 
15
  RUN useradd -m -u 1000 user
16
  USER user
17
  WORKDIR /app
18
 
19
- # Создаем виртуальное окружение с Python 3.10 внутри Ubuntu 24.04!
20
- # Это решает проблему со старой версией GLIBC в Debian
21
- RUN uv venv --python 3.10
22
-
23
- # Активируем окружение (все вызовы python и pip будут идти через Python 3.10)
24
- ENV PATH="/app/.venv/bin:$PATH" \
25
- HF_HOME=/home/user/cache
26
-
27
- # Мгновенно ставим готовый бинарник llama-cpp-python (теперь GLIBC совпадает!)
28
- RUN uv pip install --no-cache https://huggingface.co/Luigi/llama-cpp-python-wheels-hf-spaces-free-cpu/resolve/main/llama_cpp_python-0.3.22-cp310-cp310-linux_x86_64.whl
29
-
30
- # Ставим остальные зависимости из вашего requirements.txt
31
  COPY --chown=user requirements.txt .
32
- RUN uv pip install --no-cache -r requirements.txt
33
 
 
34
  COPY --chown=user . .
35
 
36
  EXPOSE 7860
 
1
+ FROM python:3.10-slim
2
 
3
  # Отключаем интерактивные диалоги при установке
4
+ ENV DEBIAN_FRONTEND=noninteractive \
5
+ HF_HOME=/home/user/cache \
6
+ PYTHONUNBUFFERED=1
7
 
8
+ # Устанавливаем минимальные системные зависимости
 
 
 
9
  RUN apt-get update && apt-get install -y --no-install-recommends \
10
  libgomp1 \
11
  ca-certificates \
12
  && rm -rf /var/lib/apt/lists/*
13
 
14
+ # Создаем непривилегированного пользователя для HF Spaces
15
  RUN useradd -m -u 1000 user
16
  USER user
17
  WORKDIR /app
18
 
19
+ # Копируем requirements и устанавливаем зависимости
 
 
 
 
 
 
 
 
 
 
 
20
  COPY --chown=user requirements.txt .
21
+ RUN pip install --no-cache-dir -r requirements.txt
22
 
23
+ # Копируем приложение
24
  COPY --chown=user . .
25
 
26
  EXPOSE 7860
README.md CHANGED
@@ -8,4 +8,38 @@ pinned: false
8
  license: mit
9
  ---
10
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
11
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
8
  license: mit
9
  ---
10
 
11
+ # Code LLM Service
12
+
13
+ FastAPI приложение с Gradio интерфейсом для работы с кодом.
14
+
15
+ ## Развёртывание на Hugging Face Spaces (бесплатный тариф)
16
+
17
+ 1. Создай репозиторий пространства на [HF Hub](https://huggingface.co/new-space)
18
+ 2. Выбери SDK: **Docker**
19
+ 3. Залей код в репозиторий
20
+ 4. Hugging Face автоматически соберёт Docker образ и развернёт приложение
21
+
22
+ ### Требования для бесплатного тарифа:
23
+ - ✅ Используется `python:3.10-slim` (оптимальный размер)
24
+ - ✅ Минимальные системные зависимости (только libgomp1)
25
+ - ✅ Быстрая сборка образа
26
+ - ✅ Низкое потребление памяти при запуске
27
+
28
+ ## Локальный запуск
29
+
30
+ ```bash
31
+ # Установка зависимостей
32
+ pip install -r requirements.txt
33
+
34
+ # Запуск приложения
35
+ python main.py
36
+ ```
37
+
38
+ Приложение будет доступно по адресу: http://localhost:7860
39
+
40
+ ## API Документация
41
+
42
+ - Swagger UI: http://localhost:7860/docs
43
+ - ReDoc: http://localhost:7860/redoc
44
+
45
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
requirements.txt CHANGED
@@ -1,6 +1,5 @@
1
  fastapi
2
  uvicorn
3
- scipy
4
  huggingface_hub>=0.27.0
5
  gradio>=5.9.0
6
  python-multipart
 
1
  fastapi
2
  uvicorn
 
3
  huggingface_hub>=0.27.0
4
  gradio>=5.9.0
5
  python-multipart