Daniel Chalef 2d0705fc1b Add get_nodes_by_query method to Graphiti class (#49)
* Add get_nodes_by_query method to Graphiti class

Add a method to the Graphiti class that wraps `get_relevant_nodes` and returns a list of nodes given a query.

* Add `get_nodes_by_query` method to the `Graphiti` class in `graphiti_core/graphiti.py`.
* Import `generate_embedding` from `graphiti_core/llm_client/utils.py`.
* Use `generate_embedding` to generate an embedding for the query.
* Call `get_relevant_nodes` with the generated embedding and return the relevant nodes.

Add an embedding function to `llm_client/utils.py`.

* Add `generate_embedding` function to `graphiti_core/llm_client/utils.py`.
* Accept an embedder and model_id as parameters.
* Generate an embedding for the given text and return it.

---

For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/getzep/graphiti?shareId=XXXX-XXXX-XXXX-XXXX).

* address comments left by @danielchalef on #49 (Add get_nodes_by_query method to Graphiti class);

* fix ellipsis name in cla config

* feat: Add get_nodes_by_query method to Graphiti class

* chore: Cleanup unused files, add hybrid node search, add tests

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
Co-authored-by: paulpaliychuk <pavlo.paliychuk.ca@gmail.com>
2024-08-26 20:00:28 -07:00
2024-08-13 14:35:43 -04:00
2024-08-26 13:13:05 -04:00
2024-08-22 12:26:13 -07:00
2024-08-25 10:07:50 -07:00
2024-08-22 12:26:13 -07:00

Graphiti (LLM generated readme)

Graphiti is a Python library for building and managing knowledge graphs using Neo4j and OpenAI's language models. It provides a flexible framework for processing episodes of information, extracting semantic nodes and edges, and maintaining a dynamic graph structure.

Features

  • Asynchronous interaction with Neo4j database
  • Integration with OpenAI's GPT models for natural language processing
  • Automatic extraction of semantic nodes and edges from episodic data
  • Temporal tracking of relationships and facts
  • Flexible schema management

Installation

(Add installation instructions here)

Quick Start

from graphiti import Graphiti

# Initialize Graphiti
graphiti = Graphiti("bolt://localhost:7687", "neo4j", "password")

# Process an episode
await graphiti.process_episode(
    name="Example Episode",
    episode_body="Alice met Bob at the coffee shop.",
    source_description="User input",
    reference_time=datetime.now()
)

# Retrieve recent episodes
recent_episodes = await graphiti.retrieve_episodes(last_n=5)

# Close the connection
graphiti.close()

Documentation

(Add link to full documentation when available)

Contributing

(Add contribution guidelines)

License

This project is licensed under the Apache License, Version 2.0. See the LICENSE file for details.

Description
Build and query dynamic, temporally-aware Knowledge Graphs
Readme Apache-2.0 2.9 MiB
Languages
Python 98.9%
Dockerfile 0.6%
Makefile 0.5%