v0.3.4 — g.ingest() text-to-graph ingestion
What's new
g.ingest() is live — extract entities and relationships from any text and write them directly to Neo4j.
from gibsgraph import Graph
g = Graph("bolt://localhost:7687", password="...", read_only=False)
g.ingest("Apple acquired Beats Electronics for $3 billion in 2014.", source="news")Highlights
- Free-form extraction — no schema required, works on any text
- Entity resolution — prevents duplicates on repeated ingestion
- All 4 LLM providers — OpenAI, Anthropic, Mistral, xAI/Grok
- Jupyter-friendly — clear error message with
nest_asynciohint when running in notebooks - 12 new unit tests (244 total passing), mypy strict clean
Details
- Uses neo4j-graphrag
SimpleKGPipelineunder the hood - Embeddings via OpenAI (
text-embedding-3-smallby default) - Entity counts computed via before/after delta on
__Entity__label - No new dependencies —
neo4j-graphrag[all]was already in deps
Full Changelog: v0.3.3...v0.3.4
Full Changelog: v0.3.3...v0.3.4