We’ve been building RAG and agentic systems on top of large, messy document corpora (PDFs, reports, internal docs, Markdown). In practice, we kept running into the same problem: unstructured text is easy to read, but hard to reason over.
Vector search helps, but once you need multi-hop reasoning, consistency across documents, domain rules, or to understand why an answer is correct, we kept wanting explicit structure. In every project, we ended up rebuilding the same glue: parsing documents, extracting entities and relations, enforcing domain logic, exporting TTL, loading into a graph store, then wiring retrieval on top.
So we pulled that work out into a small SDK we could actually reuse.
Perseus is a Python SDK that turns text documents (Markdown / TXT) into explicit knowledge graphs (Turtle .ttl), optionally guided by an ontology, and usable for GraphRAG, agents, or analytics.
At a high level: • Input: Markdown / TXT • Optional: ontology (or none) • Output: .ttl knowledge graph • Optional: push directly into Neo4j
The SDK is async-first, intentionally small, and opinionated around producing inspectable entities and relations rather than just embeddings.
We include: • a simple “build graph” example • an end-to-end GraphRAG example: PDF → Markdown → KG → report (infra reproducible with Docker Compose: Neo4j, Qdrant, embedder)
How to try it: pip install perseus-client==1.0.0-rc.1 Repo:https://github.com/Lettria/perseus-client/
We’re running a very open early access for the next few weeks, with generous free limits so people can actually experiment without worrying about quotas. API keys are available here if you want to try the full pipeline: https://app.perseus.lettria.net/app/
We’d really appreciate feedback from people building GraphRAG or agent memory systems — especially what feels awkward, missing, or unnecessary. Happy to go deep in the comments.
gkorland•3h ago