Bumps the pip group with 1 update in the /api directory: [python-multipart](https://github.com/Kludex/python-multipart). Updates `python-multipart` from 0.0.18 to 0.0.22 - [Release notes](https://github.com/Kludex/python-multipart/releases) - [Changelog](https://github.com/Kludex/python-multipart/blob/master/CHANGELOG.md) - [Commits](https://github.com/Kludex/python-multipart/compare/0.0.18...0.0.22) --- updated-dependencies: - dependency-name: python-multipart dependency-version: 0.0.22 dependency-type: direct:production dependency-group: pip ... Signed-off-by: dependabot[bot] <support@github.com>
API для поиска в справочнике подшипников
Полнофункциональный RESTful API с расширенными возможностями поиска.
🚀 Быстрый старт
# 1. Установка зависимостей
pip install -r requirements.txt
# 2. Построение индексов (первый запуск)
python scripts/build_autocomplete_dict.py
python scripts/build_search_index.py
# 3. Запуск сервера
uvicorn api.app.api:app --reload
# Или используйте удобный скрипт:
./start_api.sh
API будет доступно: http://localhost:8000
Документация Swagger: http://localhost:8000/docs
📁 Структура
api/
├── app/
│ ├── __init__.py
│ ├── api.py # FastAPI приложение и endpoints
│ ├── logic.py # Бизнес-логика (автодополнение, поиск)
│ └── export_utils.py # Утилиты экспорта в JSON/CSV/XLSX
├── tests/ # Автоматические тесты
│ ├── test_autocomplete.py
│ ├── test_similar_documents.py
│ └── test_export.py
└── examples/ # Примеры использования
└── search_features.py
⚡ Основные возможности
1. Автодополнение
curl "http://localhost:8000/autocomplete?q=под"
2. Полнотекстовый поиск с похожими документами
curl "http://localhost:8000/search?q=6205&include_similar=true"
3. История поиска
curl "http://localhost:8000/history?user_id=user123"
4. Экспорт результатов
# CSV
curl "http://localhost:8000/search/export?q=6205&format=csv" > results.csv
# Excel
curl "http://localhost:8000/search/export?q=6205&format=xlsx" > results.xlsx
📚 Документация
Полная документация API: API_DOCUMENTATION.md
🧪 Тестирование
# Установка pytest
pip install pytest
# Запуск тестов
pytest api/tests/ -v
🔄 Обновление индексов
Индексы обновляются автоматически через GitHub Actions каждое воскресенье.
Для ручного обновления:
python scripts/build_autocomplete_dict.py
python scripts/build_search_index.py
🛠️ Технологии
- FastAPI - современный веб-фреймворк
- scikit-learn - TF-IDF для вычисления схожести
- pandas + openpyxl - экспорт в Excel
- pytest - тестирование
📝 Примеры использования
Запустите полный пример:
python api/examples/search_features.py
🐛 Устранение неполадок
Проблема: ModuleNotFoundError: No module named 'fastapi'
- Решение:
pip install -r requirements.txt
Проблема: Нет результатов автодополнения
- Решение: Постройте индексы:
python scripts/build_autocomplete_dict.py
Проблема: Ошибка при экспорте в Excel
- Решение: Установите зависимости:
pip install pandas openpyxl
📞 Поддержка
Вопросы и предложения: GitHub Issues