Initial commit: Pegas Memory (PG + Qdrant + Memgraph, MCP server, 14 tools)
This commit is contained in:
commit
83e77ea8c9
24 files changed
+2201
No files matched your search
@@ -0,0 +1,26 @@
|
||||
"""Инициализация: применить schema.sql + создать коллекцию Qdrant."""
|
||||
import sys, pathlib
|
||||
sys.path.insert(0, str(pathlib.Path(__file__).resolve().parents[1]))
|
||||
|
||||
from pegas_memory import config, db, qdrant_store
|
||||
|
||||
def main():
|
||||
print("Применяю schema.sql к", config.PG_DSN.split('@')[-1])
|
||||
sql = pathlib.Path(__file__).resolve().parents[1] / "schema.sql"
|
||||
conn = db.connect()
|
||||
with conn.cursor() as cur:
|
||||
cur.execute(sql.read_text())
|
||||
conn.commit()
|
||||
print(" -> schema OK")
|
||||
|
||||
print("Создаю коллекцию Qdrant", config.QDRANT_COLLECTION, "(dim=%d)" % config.EMBED_DIM)
|
||||
qdrant_store.ensure_collection()
|
||||
print(" -> collection OK")
|
||||
|
||||
# проверить эмбеддинг
|
||||
v = __import__('pegas_memory.embedding', fromlist=['embed']).embed("проверка")
|
||||
print(" -> embedding dim:", len(v))
|
||||
print("DONE")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,32 @@
|
||||
"""Smoke-тест: текст → атомы → PG → Qdrant → поиск."""
|
||||
import sys, pathlib
|
||||
sys.path.insert(0, str(pathlib.Path(__file__).resolve().parents[1]))
|
||||
|
||||
from pegas_memory import db, pipeline, outbox_sync, qdrant_store
|
||||
|
||||
SAMPLE = '''
|
||||
PostgreSQL — это объектно-реляционная система управления базами данных.
|
||||
pgvector — расширение PostgreSQL для хранения векторов и поиска по сходству.
|
||||
Qdrant — специализированная векторная база данных, быстрее pgvector на больших объёмах.
|
||||
Memgraph — in-memory графовая база данных, использует язык запросов Cypher.
|
||||
EmbeddingGemma 2 — модель эмбеддингов Google, размерность 768.
|
||||
'''
|
||||
|
||||
def main():
|
||||
conn = db.connect()
|
||||
print("Ингест тестового текста...")
|
||||
stats = pipeline.ingest_text(conn, SAMPLE, title="smoke-test", min_confidence=0.3)
|
||||
print(" stats:", stats)
|
||||
|
||||
print("Outbox-синк → Qdrant...")
|
||||
s = outbox_sync.sync_all(conn)
|
||||
print(" sync:", s)
|
||||
|
||||
print("Поиск 'векторная база данных'...")
|
||||
hits = qdrant_store.search("векторная база данных", top_k=3)
|
||||
for h in hits:
|
||||
print(f" [{h['score']:.3f}] ({h['type']}) {h['claim'][:80]}")
|
||||
print("DONE")
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in new issue
Block a user