2.0 KiB
2.0 KiB
spike/extract_atoms.py — выводы
Результаты спейка (2026-09-14)
Тест: 2 статьи (glvrd-research.md, promotion-plan-unikor-v2.md) → 387 атомов.
- Эмбеддинг bge-m3: ~19ms/atom (батчами по 5)
- Qdrant: коллекция
content_atoms(dim=1024, Cosine) - Дедуп: 17 дублей найдено (порог 0.85)
Ключевые находки
Qdrant source build (1.18.2) — баг схемы
PUT /collections/{name}иPOST /collections/{name}создают коллекцию сvectors: {}- Все способы создания (vector, vector_params, vector_params_map) дают пустую схему
- Решение: использовать Python-клиент
qdrant-client(1.19.0) — он правильно формирует запросы create_collection(collection_name=..., vectors_config=VectorParams(size=1024, distance=Distance.COSINE))
Qdrant API v1 (локальный бинарник)
PUT /collections/{name}— создать (но с пустой схемой)POST /collections/{name}/points— upsert (нужен top-levelids)POST /collections/{name}/points/search— поиск (нуженvector)- Point id = UUID или unsigned int, не строка
searchтребуетvector,query_points— альтернатива
bge-m3
- dim=1024, ~19ms/atom (локально)
- Правильно работает для русского SEO-текста
- Гибридный (dense+sparse) — но в спейке только dense
Выводы
- bge-m3 + Qdrant работают — дедуп между доменами ловится (17 дублей)
- Qdrant source build — использовать Python-клиент, не raw HTTP
- Масштаб: 387 атомов за 7.4с → ~50 доменов × 200 атомов = ~10000 атомов за ~3мин (приемлемо)
- Следующий шаг: MVP stage 1 (
extract→atom_versions→ web-канал)