Spaces:
Sleeping
Большой тест массовой индексации и матчинга
Этот тест проверяет производительность и корректность сервиса эмбеддингов для матчинга недвижимости.
Что делает тест
Генерация данных: Создает 1000 лидов и 1000 свойств с разнообразными характеристиками (районы, цены, комнаты, площади)
Массовая индексация: Отправляет данные на сервис через
/batchendpoint в батчах по 50 элементовСимуляция матчинга: Для каждого лида находит топ-5 похожих свойств по косинусному сходству эмбеддингов
Анализ результатов: Измеряет время выполнения, статистику сходства, проверяет корректность
Запуск теста
1. Установка зависимостей
pip install -r requirements.txt
2. Настройка URL сервиса
В файле test_mass_indexing.py проверьте и измените при необходимости:
API_BASE_URL = "https://calcifer0323-matching.hf.space" # Или ваш URL
3. Запуск
python test_mass_indexing.py
Параметры теста
NUM_LEADS = 1000- количество лидовNUM_PROPERTIES = 1000- количество свойствBATCH_SIZE = 50- размер батча для отправкиTOP_K = 5- количество топ-матчей для каждого лида
Вывод теста
Тест покажет:
- Время выполнения индексации и матчинга
- Процент успешных запросов
- Статистику сходства (среднее, мин/макс, стандартное отклонение)
- Примеры топ-матчей для первых лидов
Результаты
Результаты сохраняются в test_results.json с полной статистикой и примерами матчей.
Ожидаемые результаты
При корректной работе:
- Высокий процент успешных эмбеддингов (>95%)
- Время индексации: ~5-15 минут (зависит от сервиса)
- Среднее косинусное сходство: 0.3-0.7 (зависит от качества модели и данных)
- Матчи должны быть логичными (одинаковые районы, похожие цены/комнаты)
Troubleshooting
- Ошибка подключения: Проверьте URL сервиса и доступность
- Rate limiting: Сервис имеет лимиты, тест может быть заблокирован
- Timeout: Увеличьте
ENCODE_TIMEOUT_SECONDSв сервисе или уменьшитеBATCH_SIZE - OOM: Уменьшите
NUM_LEADSиNUM_PROPERTIESдля тестирования
Интеграция с реальным матчингом
В production матчинг происходит в PostgreSQL с pgvector:
SELECT property_id, 1 - (embedding <=> $lead_embedding) as similarity
FROM properties
ORDER BY embedding <=> $lead_embedding
LIMIT 10;
Этот тест симулирует такой матчинг локально для проверки качества эмбеддингов.