Download the PHP package bogdankharchenko/laravel-graphiti without Composer
On this page you can find all versions of the php package bogdankharchenko/laravel-graphiti. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download bogdankharchenko/laravel-graphiti
More information about bogdankharchenko/laravel-graphiti
Files in bogdankharchenko/laravel-graphiti
Package laravel-graphiti
Short Description Laravel client for the Graphiti knowledge-graph REST service
License MIT
Informations about the package laravel-graphiti
Laravel Graphiti
A Laravel client for the Graphiti REST service — the temporal knowledge-graph engine that turns episodic content (meeting transcripts, Slack threads, tickets) into extracted, deduplicated, time-aware facts stored in Neo4j.
This package talks to the zepai/graphiti REST server. It does not talk to
Neo4j directly; for raw Cypher queries pair it with
laudis/neo4j-php-client.
Installation
Set the service URL in .env (config publishes via
php artisan vendor:publish --tag=graphiti-config if you need more):
Ingesting
Each Message becomes an episode: a unit of source content the service
extracts entities and facts from. Ingestion is asynchronous server-side —
the call returns as soon as the messages are queued.
Large backfills
addMessages() accepts any iterable and POSTs in chunks (default 50), so a
generator or LazyCollection streams an arbitrarily large backfill in
constant memory:
Searching
Hybrid semantic + keyword search over facts. Facts carry a validity window:
a fact with invalidAt set has been superseded by a later episode.
Everything else
The client covers the full REST surface of the Graphiti server:
Pagination — the honest note
The Graphiti REST API has no cursors. search() is capped by maxFacts
(results are relevance-ranked — ask for what you intend to use) and
episodes() returns the most recent lastN. Both are bounded windows, not
pages. For deep, offset-based listings query Neo4j directly with
SKIP/LIMIT via laudis/neo4j-php-client. Memory management on the write
path is covered by chunked, lazy ingestion (above).
Errors and retries
Transient failures (connection errors, 5xx) are retried
(GRAPHITI_RETRY_TIMES, default 2) before a GraphitiRequestException is
thrown; 4xx responses fail fast. The exception exposes the Response for
inspection. All requests honor GRAPHITI_TIMEOUT (default 30s).
Testing your app
The client uses Laravel's HTTP client, so Http::fake() works as usual:
Running the package tests
Coverage is enforced at 100% in CI (pest --coverage --min=100). Locally it
needs a coverage driver (PCOV or Xdebug); without one installed, run it in a
container:
All versions of laravel-graphiti with dependencies
guzzlehttp/guzzle Version ^7.8
illuminate/contracts Version ^12.0|^13.0
illuminate/http Version ^12.0|^13.0
illuminate/support Version ^12.0|^13.0
nesbot/carbon Version ^3.0