Commit Graph

50 Commits

Author SHA1 Message Date
Pavlo Paliychuk
398e1c13dc Update status and roadmap section (#53)
* Update status and roadmap section

* update

* update
2024-08-27 11:01:08 -07:00
Daniel Chalef
ea0bb87ff3 Update README.md (#55) 2024-08-27 10:59:50 -07:00
Daniel Chalef
0c8242bb0a Chore/add-intro-gif v2 (#54)
* feat: Update image URL in README.md for graphiti demo slides

* Update image URL in README.md for graphiti demo slides

* Update image URL in README.md for graphiti demo slides

* Update image URL in README.md for graphiti demo slides

* Update image URL in README.md for graphiti demo slides

* Update image URL in README.md for graphiti demo slides

* Update image URL in README.md for graphiti demo slides

* Update image URL in README.md for graphiti demo slides

* Update image URL in README.md for graphiti demo slides

* Update image URL in README.md for graphiti demo slides

* Update image URL in README.md for graphiti demo slides

* Update image URL in README.md for graphiti demo slides

* Update image URL in README.md for graphiti demo slides
2024-08-27 10:52:28 -07:00
Daniel Chalef
66917bae57 feat: Add graphiti demo slides to README.md (#52) 2024-08-27 10:24:28 -07:00
Daniel Chalef
a498344fe3 README wip (#42)
* wip

* chore: Update project name and description, fix packaging, and update pyproject.toml

* wip

* wip

* wip

* wip

* wip

* chore: Update project name and description, fix packaging, and update pyproject.toml

* readme wip

* chore: Update README.md formatting and episode body in graphiti_core

* chore: Update source description and metadata in graphiti_core

* Update episode body formatting in README.md

* chore: Update episode body formatting in README.md

* chore: Update episode body formatting in README.md

* chore: Update episode body formatting in README.md

* chore: Update episode body formatting in README.md
2024-08-27 06:39:55 -07:00
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
Daniel Chalef
06c3de87ee Update cla.yml to add ellipsisdev[bot] to whitelist (#50) 2024-08-26 17:37:28 -07:00
Daniel Chalef
7ca4f7fe5b Update search method to return EntityEdge objects (#48)
---

For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/getzep/graphiti?shareId=XXXX-XXXX-XXXX-XXXX).
2024-08-26 17:24:35 -07:00
Daniel Chalef
598e9fd0c5 Update cla.yml for dependabot[bot] whitelist (#47) 2024-08-26 16:04:41 -07:00
Daniel Chalef
a6d63f0c0d Add text episode type (#46)
Add a new `text` episode type and update the `extract_nodes` function to handle it.

* **EpisodeType Enum:**
  - Add `text` to the `EpisodeType` enum in `graphiti_core/nodes.py`.
  - Update the `from_str` method to handle the `text` episode type.

* **extract_nodes Function:**
  - Update the `extract_nodes` function in `graphiti_core/utils/maintenance/node_operations.py` to handle the `text` episode type.
  - Use the `message` type prompt for both `message` and `text` episodes.

---

For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/getzep/graphiti?shareId=XXXX-XXXX-XXXX-XXXX).
2024-08-26 15:51:13 -07:00
Preston Rasmussen
2d01e5d7b7 Search node centering (#45)
* add new search reranker and update search

* node distance reranking

* format

* rebase

* no need for enumerate

* mypy typing

* defaultdict update

* rrf prelim ranking
2024-08-26 18:34:57 -04:00
Daniel Chalef
fc4bf3bde2 Implement retry for LLMClient (#44)
* implement retry

* chore: Refactor tenacity retry logic and improve LLMClient error handling

* poetry

* remove unnecessary try
2024-08-26 12:53:16 -07:00
Daniel Chalef
895afc7be1 implement diskcache (#39)
* chore: Add romeo runner

* fix: Linter

* wip

* wip dump

* chore: Update romeo parser

* chore: Anthropic model fix

* wip

* allbirds

* allbirds runner

* format

* wip

* wip

* mypy updates

* update

* remove r

* update tests

* format

* wip

* chore: Strategically update the message

* rebase and fix import issues

* Update package imports for graphiti_core in examples and utils

* nits

* chore: Update OpenAI GPT-4o model to gpt-4o-2024-08-06

* implement groq

* improvments & linting

* cleanup and nits

* Refactor package imports for graphiti_core in examples and utils

* Refactor package imports for graphiti_core in examples and utils

* implement diskcache

* remove debug stuff

* log cache hit when debugging only

* Improve LLM config. Fix bugs (#41)

Refactor LLMConfig class to allow None values for model and base_url

* chore: Resolve mc

---------

Co-authored-by: paulpaliychuk <pavlo.paliychuk.ca@gmail.com>
Co-authored-by: prestonrasmussen <prasmuss15@gmail.com>
2024-08-26 13:13:05 -04:00
Pavlo Paliychuk
6e8c964aef chore: Add comments to graphiti methods (#40)
* chore: Add comments to graphiti methods

* chore: Update int test name + add header to test files

* chore: Add comments to episode type
2024-08-26 13:11:50 -04:00
Pavlo Paliychuk
0ed7739bc0 Controlled example (#37)
* chore: Add romeo runner

* fix: Linter

* dedupe fixes

* wip

* wip dump

* allbirds

* chore: Update romeo parser

* chore: Anthropic model fix

* allbirds runner

* format

* wip

* mypy updates

* update

* remove r

* update tests

* format

* wip

* wip

* wip

* chore: Strategically update the message

* chore: Add romeo runner

* fix: Linter

* wip

* wip dump

* chore: Update romeo parser

* chore: Anthropic model fix

* wip

* allbirds

* allbirds runner

* format

* wip

* wip

* mypy updates

* update

* remove r

* update tests

* format

* wip

* chore: Strategically update the message

* rebase and fix import issues

* Update package imports for graphiti_core in examples and utils

* nits

* chore: Update OpenAI GPT-4o model to gpt-4o-2024-08-06

* implement groq

* improvments & linting

* cleanup and nits

* Refactor package imports for graphiti_core in examples and utils

* Refactor package imports for graphiti_core in examples and utils

* chore: Nuke unused examples

* chore: Nuke unused examples

* chore: Only run type check on graphiti_core

* fix unit tests

* reformat

* unit test

* fix: Unit tests

* test: Add coverage for extract_date_strings_from_edge

* lint

* remove commented code

---------

Co-authored-by: prestonrasmussen <prasmuss15@gmail.com>
Co-authored-by: Daniel Chalef <131175+danielchalef@users.noreply.github.com>
2024-08-26 10:30:22 -04:00
Daniel Chalef
c5e52153c4 chore: Fix packaging (#38)
* feat: Update project name and description

The project name and description in the `pyproject.toml` file have been updated to reflect the changes made to the project.

* chore: Update pyproject.toml to include core package

The `pyproject.toml` file has been updated to include the `core` package in the list of packages. This change ensures that the `core` package is included when building the project.

* fix imports

* fix importats
2024-08-25 10:07:50 -07:00
Preston Rasmussen
0d2942daea dedupe fixes (#35) 2024-08-23 18:06:42 -04:00
Daniel Chalef
57aed456fa Update CONTRIBUTING.md to reflect Python 3.10+ requirement (#33)
* Update CONTRIBUTING.md to reflect Python 3.10+ requirement



---

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

* sig file

* feat: Initialize CLA file with empty signed contributors array
2024-08-23 13:54:44 -07:00
Pavlo Paliychuk
427a67b8f8 chore: Update the context for date extraction + bug fixes (#31)
* chore: Update the context for date extraction + bug fixes

* chore: Remove logs
2024-08-23 16:45:59 -04:00
Daniel Chalef
c2aaf94be4 feat: Add CLA Assistant workflow and CONTRIBUTING guidelines (#32)
Add a new GitHub Actions workflow file to handle the CLA Assistant functionality. Also, include a CONTRIBUTING.md file with guidelines for contributing to the project.
2024-08-23 13:32:57 -07:00
Daniel Chalef
6d52be49f4 Add Apache License 2.0 boilerplate to all Python files (#30)
* Add Apache License 2.0 boilerplate to all Python files

---

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

* format

* format

* chore: Add Ellipsis configuration file
2024-08-23 16:01:33 -04:00
Pavlo Paliychuk
605219f8c7 feat: Add real world dates extraction (#26)
* feat: Add real world dates extraction

* fix: Linter

* fix: 💄 mypy errors

* chore: handle invalid dates returned by the llm

* chore: Polish prompt

* reformat

* style: 💄 reformat
2024-08-23 14:18:45 -04:00
Daniel Chalef
dbc7004eb7 Add a LICENSE file containing the Apache v2 license (#29)
---

For more details, open the [Copilot Workspace session](https://copilot-workspace.githubnext.com/getzep/graphiti?shareId=XXXX-XXXX-XXXX-XXXX).
2024-08-23 11:16:12 -07:00
Preston Rasmussen
a1e54881a2 improve deduping issue (#28)
* improve deduping issue

* fix comment

* commit format

* default embeddings

* update
2024-08-23 12:17:15 -04:00
Daniel Chalef
9cc9883e66 chore: Fix Typing Issues (#27)
* typing.Any and friends

* message

* chore: Import Message model in llm_client

* fix: 💄 mypy errors

* clean up mypy stuff

* mypy

* format

* mypy

* mypy

* mypy

---------

Co-authored-by: paulpaliychuk <pavlo.paliychuk.ca@gmail.com>
Co-authored-by: prestonrasmussen <prasmuss15@gmail.com>
2024-08-23 11:15:44 -04:00
Preston Rasmussen
7152a211ae fix constraints (#25) 2024-08-22 19:10:18 -04:00
Pavlo Paliychuk
8a55f48f5e Fix temporal invalidation unit tests (#23)
* wip

* wip

* wip

* fix: Linter errors

* fix formatting

* chore: fix ruff

* fix: Duplication

* chore: Fix unit tests for temporal invalidation

* attempt to fix unit tests

* fix: format

---------

Co-authored-by: Daniel Chalef <131175+danielchalef@users.noreply.github.com>
2024-08-22 19:02:20 -04:00
Daniel Chalef
72dfa3c1e3 depot + cleanup (#22) 2024-08-22 15:16:15 -07:00
Daniel Chalef
c90b4e01ab chore: enable mypy; actions cleanup (#21)
* chore: eenable mypy

* chore: Update MyPy command in typecheck.yml workflow

* fix caching. makefile lint improvements

* chore: Fix sed command in typecheck.yml workflow

* chore: Update sed command in typecheck.yml workflow

* chore: Update Python version to 3.10 in typecheck.yml workflow

* remove pretty

* pipefail
2024-08-22 15:10:24 -07:00
Pavlo Paliychuk
1f1652f56c Invalidation updates && improvements (#20)
* wip

* wip

* wip

* fix: Linter errors

* fix formatting

* chore: fix ruff

* fix: Duplication

---------

Co-authored-by: Daniel Chalef <131175+danielchalef@users.noreply.github.com>
2024-08-22 18:09:44 -04:00
Preston Rasmussen
94873f1083 search updates (#19)
* search updates

* add helper function

* make format

* updates
2024-08-22 17:24:59 -04:00
Daniel Chalef
6ae9c4e262 rm podcast (#16) 2024-08-22 13:08:41 -07:00
Daniel Chalef
73ec0146ff ruff action (#17)
* ruff action

* chore: Update Python version to 3.10 in lint.yml workflow

* fix lint and formatting

* cleanup
2024-08-22 13:06:42 -07:00
Daniel Chalef
50da9d0f31 format and linting (#18)
* Makefile and format

* fix podcast stuff

* refactor: update import statement for transcript_parser in podcast_runner.py

* format and linting

* chore: Update import statements and remove unused code in maintenance module
2024-08-22 12:26:13 -07:00
Preston Rasmussen
63b9790026 search updates (#14)
* search updates

* test updates

* add opinionated search

* update
2024-08-22 14:26:26 -04:00
Daniel Chalef
8141a783b1 move podcast to examples (#15) 2024-08-22 11:13:41 -07:00
Daniel Chalef
5150b2b030 Create SECURITY.md (#10) 2024-08-21 21:51:23 -07:00
Daniel Chalef
e16467f768 Create dependabot.yml (#11) 2024-08-21 21:51:10 -07:00
Pavlo Paliychuk
5a4709a2a4 chore: Add development environment to the action (#12) 2024-08-21 21:50:41 -07:00
Preston Rasmussen
d6add504bd Create Bulk Add Episode for faster processing (#9)
* benchmark logging

* load schema updates

* add extract bulk nodes and edges

* updated bulk calls

* compression updates

* bulk updates

* bulk logic first pass

* updated bulk process

* debug

* remove exact names first

* cleaned up prompt

* fix bad merge

* update

* fix merge issues
2024-08-21 12:03:32 -04:00
Pavlo Paliychuk
a6fd0ddb75 feat: Initial version of temporal invalidation + tests (#8)
* feat: Initial version of temporal invalidation + tests

* fix: dont run int tests on CI

* fix: dont run int tests on CI

* fix: dont run int tests on CI

* fix: time of day issue

* fix: running non int tests in ci

* fix: running non int tests in ci

* fix: running non int tests in ci

* fix: running non int tests in ci

* fix: running non int tests in ci

* fix: running non int tests in ci

* fix: running non int tests in ci

* revert: Tests structural changes

* chore: Remove idea file

* chore: Get rid of NodesWithEdges class and define a triplet type instead
2024-08-20 16:29:19 -04:00
Pavlo Paliychuk
40e74a2e97 fix: Address graph disconnect (#7)
* fix: Address graph disconnect

* chore: Remove valid_to and valid_from setting in extract edges step (will be handled during invalidation step)
2024-08-19 09:37:56 -04:00
Preston Rasmussen
4db3906049 Update Maintenance LLM Queries and Partial Schema Retrieval (#6)
* search updates

* add search_utils

* updates

* graph maintenance updates

* revert extract_new_nodes

* revert extract_new_edges

* parallelize node searching

* add edge fulltext search

* search optimizations
2024-08-18 13:22:31 -04:00
Pavlo Paliychuk
ad552b527e Cleanup maintenance utilities + add podcast runner (#5)
* chore: Fix minor issues with episodic edge building + cleanup

* feat: Port podcast runner

* feat: Port podcast runner
2024-08-16 09:29:57 -04:00
Pavlo Paliychuk
f1c2224c0e Refactor maintenance structure, add prompt library (#4)
* chore: Initial draft of stubs

* chore: Add comments and mock implementation of the add_episode method

* chore: Add success and error callbacks

* chore: Add success and error callbacks

* refactor: Fix conflicts with the latest merge
2024-08-15 12:03:41 -04:00
Preston Rasmussen
b728ff0f68 renaming and add indices (#3)
rename and add indices
2024-08-15 11:04:57 -04:00
Pavlo Paliychuk
83c7640d9c chore: Initial draft of stubs (#2)
* chore: Initial draft of stubs

* updates

* chore: Add comments and mock implementation of the add_episode method

* chore: Add success and error callbacks

* stub updates

---------

Co-authored-by: prestonrasmussen <prasmuss15@gmail.com>
2024-08-14 10:17:12 -04:00
Pavlo Paliychuk
dab3a62247 Merge pull request #1 from getzep/add-readme-and-poetry-config
chore: Add readme, gitignore and poetry files
2024-08-13 14:59:16 -04:00
paulpaliychuk
37007d87bc chore: Add readme, gitignore and poetry files 2024-08-13 14:50:17 -04:00
prestonrasmussen
1de840dc94 add nodes and edges 2024-08-13 14:35:43 -04:00