🚀 Деплой на Hugging Face Spaces
Инструкция по запуску
Шаг 1: Создайте Space
- Перейдите на https://huggingface.co/spaces
- Нажмите "Create new Space"
- Заполните:
- Name:
fipi-parser-ege(или любое другое) - License: MIT
- SDK: Docker
- Visibility: Public (или Private)
- Name:
- Нажмите "Create Space"
Шаг 2: Загрузите файлы
Вариант A: Через Git
cd refined
git init
git add .
git commit -m "Initial commit"
git remote add origin https://huggingface.co/spaces/YOUR_USERNAME/YOUR_SPACE
git push -u origin main
Вариант B: Через веб-интерфейс
- Откройте ваш Space на Hugging Face
- Перейдите в "Files"
- Нажмите "Add file" → "Upload files"
- Загрузите все файлы из проекта
Шаг 3: Настройте переменные окружения
- В панели Space перейдите в "Settings"
- Найдите "Variables and secrets"
- Добавьте:
SUPABASE_URL:https://your-project.supabase.coSUPABASE_KEY:your-anon-key
Шаг 4: Запуск
Space автоматически соберётся и запустится!
Время сборки: 5-10 минут (загружается ruBERT модель)
Шаг 5: Использование API
После запуска ваш API будет доступен по адресу:
https://YOUR_USERNAME-YOUR_SPACE.hf.space
📡 API Эндпоинты
1. Проверка сочинения
curl -X POST "https://YOUR_USERNAME-YOUR_SPACE.hf.space/grade" \
-H "Content-Type: application/json" \
-d '{
"essay": "В тексте поднимается проблема...",
"source": "Исходный текст..."
}'
Ответ:
{
"total_score": 8,
"max_score": 9,
"percentage": 89,
"criteria": {
"k1": {"score": 1, "comment": "..."},
"k2": {"score": 3, "comment": "..."},
"k3": {"score": 2, "comment": "..."},
"k4": {"score": 1, "comment": "..."},
"k5": {"score": 1, "comment": "..."}
}
}
2. Получить задания из Supabase
curl "https://YOUR_USERNAME-YOUR_SPACE.hf.space/tasks"
3. Запустить парсер
curl -X POST "https://YOUR_USERNAME-YOUR_SPACE.hf.space/parse" \
-H "Content-Type: application/json" \
-d '{"max_pages": 3}'
🏠 Главная страница
Откройте в браузере:
https://YOUR_USERNAME-YOUR_SPACE.hf.space/docs
Там будет Swagger UI с документацией API!
📊 Структура проекта для HF
refined/
├── Dockerfile # Конфигурация Docker
├── app.py # Основное API (FastAPI + ruBERT)
├── requirements.txt # Python зависимости
├── .env.example # Пример переменных
├── fipi_ai_scraper.py # Парсер ФИПИ
├── supabase_client.py # Клиент Supabase
└── README_HF.md # Эта инструкция
⚙️ Конфигурация
Dockerfile
- Python 3.10
- FastAPI + Uvicorn
- transformers (ruBERT)
- Порт: 7860
Переменные окружения
SUPABASE_URL=https://your-project.supabase.co
SUPABASE_KEY=your-anon-key
TRANSFORMERS_CACHE=/tmp/transformers
HF_HOME=/tmp/huggingface
💰 Тарифы
Бесплатный план:
- ✅ CPU (2 vCPU)
- ✅ 16GB RAM
- ✅ 500MB хранилище
- ⚠️ Засыпает через 48 часов без активности
Pro план ($9/мес):
- ✅ Не засыпает
- ✅ Больше ресурсов
- ✅ Приватные Spaces
🔧 Troubleshooting
Space не запускается
- Проверьте логи в панели "Logs"
- Убедитесь, что Dockerfile корректен
- Проверьте зависимости в requirements.txt
Ошибка памяти
ruBERT требует ~2GB RAM. Если не хватает:
- Используйте Pro план
- Или уберите transformers из requirements.txt
Supabase не подключается
- Проверьте переменные в Settings → Variables
- Убедитесь, что таблица tasks создана
- Проверьте URL и ключ
📝 Примеры использования
Python клиент
import requests
API_URL = "https://YOUR_USERNAME-YOUR_SPACE.hf.space"
# Проверка сочинения
response = requests.post(
f"{API_URL}/grade",
json={
"essay": "В тексте поднимается проблема...",
"source": "Исходный текст..."
}
)
print(response.json())
# Получить задания
response = requests.get(f"{API_URL}/tasks")
print(response.json())
JavaScript клиент
const API_URL = "https://YOUR_USERNAME-YOUR_SPACE.hf.space";
// Проверка сочинения
const response = await fetch(`${API_URL}/grade`, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify({
essay: "В тексте поднимается проблема...",
source: "Исходный текст..."
})
});
const result = await response.json();
console.log(result);
🎉 Готово!
Ваш сервис для проверки сочинений ЕГЭ и парсинга заданий ФИПИ работает на Hugging Face Spaces!
Ссылки:
- Документация HF Spaces: https://huggingface.co/docs/hub/spaces
- Docker SDK: https://huggingface.co/docs/hub/spaces-sdks-docker
- FastAPI: https://fastapi.tiangolo.com/