Zep.Graph.Episode (Zep v1.0.0)

Copy Markdown View Source

Operations on individual graph episodes (units of ingested data).

Summary

Functions

Deletes an episode by uuid.

Fetches a single episode by uuid.

Lists episodes for a user's or graph's graph, paginated.

Lazily streams every episode for a user's or graph's graph across all pages, following the response cursor.

Functions

delete(client_or_opts, uuid)

@spec delete(Zep.Client.t() | keyword(), String.t()) ::
  {:ok, term()} | {:error, term()}

Deletes an episode by uuid.

get(client_or_opts, uuid)

@spec get(Zep.Client.t() | keyword(), String.t()) ::
  {:ok, Zep.Schemas.Episode.t()} | {:error, term()}

Fetches a single episode by uuid.

get_by_user_or_graph(client_or_opts, opts \\ [])

@spec get_by_user_or_graph(
  Zep.Client.t() | keyword(),
  keyword()
) ::
  {:ok,
   %{episodes: [Zep.Schemas.Episode.t()], total_count: non_neg_integer() | nil}}
  | {:error, term()}

Lists episodes for a user's or graph's graph, paginated.

Options

  • :user_id / :graph_id - scope
  • :limit / :cursor - pagination

stream(client_or_opts, opts \\ [])

@spec stream(
  Zep.Client.t() | keyword(),
  keyword()
) :: Enumerable.t()

Lazily streams every episode for a user's or graph's graph across all pages, following the response cursor.

Note

This assumes the last episode's uuid in a page can be used as the next page's :cursor, consistent with the cursor pattern used elsewhere in the API. If the API instead returns an explicit next_cursor field, this will need a one-line update to read it directly from the response instead - worth confirming against a live response before relying on this for very large graphs.