Files
portal/knowledge/aleksandra/brain/build_index.py
T
Дмитрий 6b26bf28a7 feat(brain): построение индекса ниш из карточек + CLI-пересборка
index_store.py сканирует папку карточек, считает отпечаток каждой (embed_fn
инъекцией) и складывает индекс nisha/roditel/sinonimy/path/vector;
save_index/load_index — JSON roundtrip. build_index.py — CLI ручной
пересборки индекса (провайдер эмбеддингов через ALEX_EMBED). TDD: тест
падал на ModuleNotFoundError до реализации, затем 2 passed (плюс полный
пакет brain — 12 passed, регрессий нет).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-17 08:20:19 +03:00

23 lines
919 B
Python

"""CLI: пересобрать индекс ниш. Запуск (из корня репо):
python -m brain.build_index --nishi knowledge/aleksandra/nishi --out knowledge/aleksandra/nishi_index.json
Провайдер эмбеддингов — переменная ALEX_EMBED (aitunnel|local|fake)."""
import argparse
from brain.embed import get_embedder
from brain.index_store import build_index, save_index
def main():
ap = argparse.ArgumentParser()
ap.add_argument("--nishi", default="knowledge/aleksandra/nishi")
ap.add_argument("--out", default="knowledge/aleksandra/nishi_index.json")
ap.add_argument("--provider", default=None)
a = ap.parse_args()
emb = get_embedder(provider=a.provider)
idx = build_index(a.nishi, embed_fn=emb)
save_index(idx, a.out)
print(f"индекс собран: {len(idx)} карточек → {a.out}")
if __name__ == "__main__":
main()