| # 📦 Налаштування Hugging Face Dataset для індексів | |
| ## Крок 1: Створення датасету на Hugging Face | |
| 1. **Перейдіть на:** https://huggingface.co/new-dataset | |
| 2. **Заповніть форму:** | |
| - Owner: `DocSA` | |
| - Dataset name: `legal-position-indexes` | |
| - License: `MIT` | |
| - Visibility: `Private` або `Public` (на ваш вибір) | |
| 3. **Натисніть:** Create dataset | |
| ## Крок 2: Клонування та налаштування | |
| ```bash | |
| # Клонуйте створений датасет | |
| git clone https://huggingface.co/datasets/DocSA/legal-position-indexes | |
| cd legal-position-indexes | |
| # Налаштуйте Git LFS для великих файлів | |
| git lfs install | |
| # Додайте треки для різних типів файлів індексів | |
| git lfs track "*.json" | |
| git lfs track "*.jsonl" | |
| git lfs track "*.npy" | |
| git lfs track "*.mmindex.json" | |
| git lfs track "*.csc.index.npy" | |
| git lfs track "*.index.json" | |
| # Збережіть конфігурацію LFS | |
| git add .gitattributes | |
| git commit -m "Configure Git LFS" | |
| ``` | |
| ## Крок 3: Завантаження індексів | |
| ```bash | |
| # Скопіюйте індекси з вашого проєкту | |
| cp -r ../Save_Index_Ivan/* ./ | |
| # Перевірте розмір | |
| du -sh . | |
| # Створіть README | |
| cat > README.md << 'EOF' | |
| --- | |
| license: mit | |
| task_categories: | |
| - text-retrieval | |
| language: | |
| - uk | |
| tags: | |
| - legal | |
| - ukraine | |
| - embeddings | |
| - bm25 | |
| size_categories: | |
| - n<1K | |
| --- | |
| # Legal Position Indexes | |
| Індекси для пошуку правових позицій Верховного Суду України. | |
| ## 📊 Вміст | |
| - **BM25 Retriever**: Індекси для пошуку за ключовими словами | |
| - **Document Store**: База судових рішень | |
| - **Vector Embeddings**: Векторні представлення для семантичного пошуку | |
| ## 📁 Структура | |
| ``` | |
| legal-position-indexes/ | |
| ├── docstore_es_filter.json # Document store | |
| ├── bm25_retriever/ # BM25 індекси | |
| │ ├── corpus.jsonl | |
| │ ├── corpus.mmindex.json | |
| │ ├── data.csc.index.npy | |
| │ ├── indices.csc.index.npy | |
| │ ├── indptr.csc.index.npy | |
| │ ├── params.index.json | |
| │ ├── retriever.json | |
| │ └── vocab.index.json | |
| ├── bm25_retriever_meta/ # BM25 з метаданими | |
| └── bm25_retriever_short/ # BM25 короткий | |
| ``` | |
| ## 🚀 Використання | |
| ### Python | |
| \`\`\`python | |
| from huggingface_hub import snapshot_download | |
| # Завантажити всі індекси | |
| snapshot_download( | |
| repo_id="DocSA/legal-position-indexes", | |
| repo_type="dataset", | |
| local_dir="Save_Index_Ivan" | |
| ) | |
| \`\`\` | |
| ### В проєкті Legal Position AI Analyzer | |
| \`\`\`python | |
| from index_loader import load_indexes_with_fallback | |
| # Автоматично завантажить з HF Datasets | |
| load_indexes_with_fallback() | |
| \`\`\` | |
| ## 📊 Статистика | |
| - **Розмір:** ~530 MB | |
| - **Документів:** ~[NUMBER] | |
| - **Мова:** Українська | |
| - **Оновлено:** 10 лютого 2026 р. | |
| ## 📝 Ліцензія | |
| MIT License | |
| ## 👥 Автори | |
| Проєкт Legal Position AI Analyzer для Верховного Суду України | |
| EOF | |
| # Додайте всі файли | |
| git add . | |
| # Закомітьте | |
| git commit -m "Add legal position indexes v1.0 | |
| - BM25 retrievers | |
| - Document store | |
| - Vector embeddings | |
| - Total size: ~530MB" | |
| # Завантажте на HF | |
| git push | |
| ``` | |
| ## Крок 4: Перевірка | |
| 1. **Перейдіть на:** https://huggingface.co/datasets/DocSA/legal-position-indexes | |
| 2. **Перевірте:** | |
| - ✅ Всі файли завантажені | |
| - ✅ README відображається | |
| - ✅ LFS файли правильно трекаються | |
| ## Крок 5: Інтеграція в проєкт | |
| ### Оновіть main.py або components.py: | |
| ```python | |
| from index_loader import load_indexes_with_fallback | |
| def initialize_components() -> bool: | |
| """Initialize all necessary components for the application.""" | |
| try: | |
| # Завантажити індекси з HF Datasets (з fallback на S3) | |
| if not load_indexes_with_fallback(): | |
| logger.error("Failed to load indexes") | |
| return False | |
| # Решта ініціалізації... | |
| # ... | |
| return True | |
| except Exception as e: | |
| logger.error(f"Error initializing components: {str(e)}") | |
| return False | |
| ``` | |
| ### Оновіть app.py для HF Spaces: | |
| ```python | |
| #!/usr/bin/env python3 | |
| import os | |
| from index_loader import load_indexes_with_fallback | |
| # Завантажити індекси при старті | |
| print("📥 Loading indexes...") | |
| if load_indexes_with_fallback(): | |
| print("✅ Indexes loaded successfully!") | |
| else: | |
| print("⚠️ Warning: Indexes not available. Search will not work.") | |
| # Запуск додатку | |
| from interface import create_gradio_interface | |
| if __name__ == "__main__": | |
| demo = create_gradio_interface() | |
| demo.launch( | |
| server_name="0.0.0.0", | |
| server_port=7860, | |
| share=False, | |
| show_error=True, | |
| enable_queue=True | |
| ) | |
| ``` | |
| ## Крок 6: Налаштування для приватного датасету (опціонально) | |
| Якщо ваш датасет приватний: | |
| ### На HF Spaces: | |
| 1. Settings > Variables and secrets | |
| 2. Додайте: | |
| ``` | |
| HF_TOKEN=hf_xxxxxxxxxxxxx | |
| ``` | |
| ### В коді: | |
| ```python | |
| import os | |
| load_indexes_with_fallback( | |
| token=os.getenv("HF_TOKEN") | |
| ) | |
| ``` | |
| ## 🔄 Оновлення індексів | |
| ### Коли потрібно оновити індекси: | |
| ```bash | |
| cd legal-position-indexes | |
| # Оновіть файли | |
| cp -r ../Save_Index_Ivan/* ./ | |
| # Закомітьте зміни | |
| git add . | |
| git commit -m "Update indexes v1.1" | |
| git push | |
| # Індекси автоматично оновляться на всіх інсталяціях | |
| ``` | |
| ## ✅ Переваги цього підходу | |
| - ✅ **Безкоштовно** - HF Datasets безкоштовний | |
| - ✅ **Швидко** - CDN для швидкого завантаження | |
| - ✅ **Просто** - Нативна інтеграція з HF Spaces | |
| - ✅ **Версіонування** - Git історія змін | |
| - ✅ **Fallback** - Автоматичний перехід на S3 при помилці | |
| - ✅ **Оновлення** - Легко оновлювати індекси | |
| ## 📊 Порівняння з AWS S3 | |
| | Параметр | HF Datasets | AWS S3 | | |
| |----------|-------------|--------| | |
| | Вартість | $0 | ~$0.02/міс | | |
| | Setup | Простий | Середній | | |
| | Швидкість | Швидко | Швидко | | |
| | Інтеграція з HF Spaces | Відмінна | Потребує credentials | | |
| | Версіонування | Так (Git) | Ні (окремо) | | |
| --- | |
| **Дата:** 10 лютого 2026 р. | |