# Migrate active memory facts into Qdrant from __future__ import annotations import asyncio from sqlalchemy import select from app.config import get_settings from app.db.base import SessionLocal, init_db from app.db.models import MemoryFact, SessionSummary from app.rag.ingest import index_memory_fact, index_session_summary from app.rag.store import ensure_collections async def main() -> None: settings = get_settings() if not settings.rag_enabled: print("RAG disabled; set RAG_ENABLED=true") return init_db() ensure_collections() db = SessionLocal() try: facts = db.scalars(select(MemoryFact).where(MemoryFact.active.is_(True))).all() for fact in facts: await index_memory_fact(fact) summaries = db.scalars(select(SessionSummary)).all() for row in summaries: if row.summary: await index_session_summary(row.session_id, row.summary) print(f"Indexed {len(facts)} facts and {len(summaries)} summaries") finally: db.close() if __name__ == "__main__": asyncio.run(main())