spike: extract_atoms.py — bge-m3 + Qdrant dedup (387 atoms, 17 dupes found)
This commit is contained in:
1 parent
ad180cc518
commit
ecd3c2e7b3
2 files changed
+242
No files matched your search
@@ -0,0 +1,36 @@
|
||||
# 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-level `ids`)
|
||||
- `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
|
||||
|
||||
## Выводы
|
||||
|
||||
1. **bge-m3 + Qdrant работают** — дедуп между доменами ловится (17 дублей)
|
||||
2. **Qdrant source build** — использовать Python-клиент, не raw HTTP
|
||||
3. **Масштаб:** 387 атомов за 7.4с → ~50 доменов × 200 атомов = ~10000 атомов за ~3мин (приемлемо)
|
||||
4. **Следующий шаг:** MVP stage 1 (`extract` → `atom_versions` → web-канал)
|
||||
Reference in new issue
Block a user