Skip to content

Commit

Permalink
Update image URL in README.md (#78)
Browse files Browse the repository at this point in the history
  • Loading branch information
danielchalef committed Sep 3, 2024
1 parent 03f2493 commit f97eb76
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 13 deletions.
21 changes: 8 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,14 @@ Graphiti builds dynamic, temporally aware Knowledge Graphs that represent comple

<br />


<p align="center">
<img src="/images/graphiti-intro-slides-stock-2.gif" alt="Graphiti demo slides" width="700px">
<img src="/images/graphiti-graph-intro.gif" alt="Graphiti temporal walkthrough" width="700px">
</p>

<br />

Graphiti helps you create and query Knowledge Graphs that evolve over time. A knowledge graph is a network of interconnected facts, such as _“Kendra loves Adidas shoes.”_ Each fact is a “triplet” represented by two entities, or nodes (_”Kendra”_, _“Adidas shoes”_), and their relationship, or edge (_”loves”_). Knowledge Graphs have been explored extensively for information retrieval. What makes Graphiti unique is its ability to autonomously build a knowledge graph while handling changing relationships and maintaining historical context.

With Graphiti, you can build LLM applications such as:

- Assistants that learn from user interactions, fusing personal knowledge with dynamic data from business systems like CRMs and billing platforms.
Expand All @@ -41,21 +40,23 @@ Graphiti supports a wide range of applications in sales, customer service, healt
We were intrigued by Microsoft’s GraphRAG, which expanded on RAG text chunking by using a graph to better model a document corpus and making this representation available via semantic and graph search techniques. However, GraphRAG did not address our core problem: It's primarily designed for static documents and doesn't inherently handle temporal aspects of data.

Graphiti is designed from the ground up to handle constantly changing information, hybrid semantic and graph search, and scale:

- **Temporal Awareness:** Tracks changes in facts and relationships over time, enabling point-in-time queries. Graph edges include temporal metadata to record relationship lifecycles.
- **Episodic Processing:** Ingests data as discrete episodes, maintaining data provenance and allowing incremental entity and relationship extraction.
- **Hybrid Search:** Combines semantic and BM25 full-text search, with the ability to rerank results by distance from a central node e.g. “Kendra”.
- **Scalable:** Designed for processing large datasets, with parallelization of LLM calls for bulk processing while preserving the chronology of events.
- **Supports Varied Sources:** Can ingest both unstructured text and structured JSON data.

<p align="center">
<img src="/images/graphiti-intro-slides-stock-2.gif" alt="Graphiti structured + unstructured demo" width="700px">
</p>

## Graphiti and Zep Memory

Graphiti powers the core of [Zep's memory layer](https://www.getzep.com) for LLM-powered Assistants and Agents.

We're excited to open-source Graphiti, believing its potential reaches far beyond memory applications.



## Installation

Requirements:
Expand All @@ -81,8 +82,6 @@ or
poetry add graphiti-core
```



## Quick Start

> [!IMPORTANT]
Expand All @@ -97,7 +96,7 @@ from datetime import datetime
graphiti = Graphiti("bolt://localhost:7687", "neo4j", "password")

# Initialize the graph database with Graphiti's indices. This only needs to be done once.
graphiti.build_indices_and_constraints()
graphiti.build_indices_and_constraints()

# Add episodes
episodes = [
Expand Down Expand Up @@ -150,18 +149,15 @@ await graphiti.search('Who was the California Attorney General?', center_node_uu
graphiti.close()
```



## Documentation

Visit the Zep knowledge base for Graphiti [Guides and API documentation](https://help.getzep.com/Graphiti/Graphiti).


## Status and Roadmap

Graphiti is under active development. We aim to maintain API stability while working on:

- [X] Implementing node and edge CRUD operations
- [x] Implementing node and edge CRUD operations
- [ ] Improving performance and scalability
- [ ] Achieving good performance with different LLM and embedding models
- [ ] Creating a dedicated embedder interface
Expand All @@ -171,7 +167,6 @@ Graphiti is under active development. We aim to maintain API stability while wor
- [ ] Enhancing retrieval capabilities with more robust and configurable options
- [ ] Expanding test coverage to ensure reliability and catch edge cases


## Contributing

We encourage and appreciate all forms of contributions, whether it's code, documentation, addressing GitHub Issues, or answering questions in the Graphiti Discord channel. For detailed guidelines on code contributions, please refer to [CONTRIBUTING](CONTRIBUTING.md).
Expand Down
Binary file added images/graphiti-graph-intro.gif
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.

0 comments on commit f97eb76

Please sign in to comment.