Commit graph

561 commits

Author SHA1 Message Date
Daniel Chalef
9c1e1ad7ef @liangyuanpeng has signed the CLA in getzep/graphiti#847 2025-08-20 04:35:53 -07:00
Preston Rasmussen
1c27a3563b
update prompts and support thinking models (#846)
* update prompts and support thinking models

* update

* type ignore
2025-08-19 12:31:50 -04:00
Preston Rasmussen
c28bde6b07
fix typo and model selector (#843)
* fix typo and model selector

* bump version
2025-08-18 11:15:45 -04:00
Gal Shubeli
1abb4b0fa3
Fix Community Operations with FalkorDB (#824)
* Update node_db_queries.py

* Update node_db_queries.py

* fix-community-operations

---------

Co-authored-by: Naseem Ali <34807727+Naseem77@users.noreply.github.com>
2025-08-18 10:38:24 -04:00
Daniel Chalef
50d385ce06 @Wizmann has signed the CLA in getzep/graphiti#842 2025-08-18 04:09:46 -07:00
Preston Rasmussen
1278f877d8
add bulk delete (#837)
* add bulk delete

* Update graphiti_core/edges.py

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Update graphiti_core/edges.py

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

* Update graphiti_core/edges.py

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-08-15 12:15:07 -04:00
Daniel Chalef
0a5000af7b @CaroLe-prw has signed the CLA in getzep/graphiti#833 2025-08-14 20:11:25 -07:00
Cklee
506bc4fc98
Fix: Search methods configuration ignored (#788) (#829)
fix: respect search_methods configuration in edge_search and node_search

The search functions were ignoring the configured search_methods and
always executing all three methods (BM25, cosine similarity, and BFS).
This was causing unnecessary performance overhead - running 3x the
required computations when users only wanted specific search methods.

Now the functions build search tasks dynamically based on what's
actually configured in search_methods, only executing the requested
search algorithms.

This should significantly improve performance when users need only
specific search methods. Would appreciate your review on this approach\!

Fixes #788
2025-08-13 11:56:20 -04:00
Daniel Chalef
708d30cd6a
Update CONTRIBUTING.md (#830) 2025-08-12 16:37:32 -07:00
Preston Rasmussen
bfe51a0fcd
Null search datetimes (#818)
* support null operations

* update

* only provide variables for non-null params

* test update
2025-08-12 12:24:37 -04:00
Preston Rasmussen
baa6825708
ensure ascii default to false (#817) 2025-08-08 11:20:02 -04:00
HUGO SON
ce9ef3ca79
Add support for non-ASCII characters in LLM prompts (#805)
* Add support for non-ASCII characters in LLM prompts

- Add ensure_ascii parameter to Graphiti class (default: True)
- Create to_prompt_json helper function for consistent JSON serialization
- Update all prompt files to use new helper function
- Preserve Korean/Japanese/Chinese characters when ensure_ascii=False
- Maintain backward compatibility with existing behavior

Fixes issue where non-ASCII characters were escaped as unicode sequences
in prompts, making them unreadable in LLM logs and potentially affecting
model understanding.

* Remove unused json imports after replacing with to_prompt_json helper

- Fix ruff lint errors (F401) for unused json imports
- All prompt files now use to_prompt_json helper instead of json.dumps
- Maintains clean code style and passes lint checks

* Fix ensure_ascii propagation to all LLM calls

- Add ensure_ascii parameter to maintenance operation functions that were missing it
- Update function signatures in node_operations, community_operations, temporal_operations, and edge_operations
- Ensure all llm_client.generate_response calls receive proper ensure_ascii context
- Fix hardcoded ensure_ascii: True values that prevented non-ASCII character preservation
- Maintain backward compatibility with default ensure_ascii=True
- Complete the fix for issue #804 ensuring Korean/Japanese/Chinese characters are properly handled in LLM prompts
2025-08-08 11:07:32 -04:00
Daniel Chalef
0f186c59ca @liebertar has signed the CLA in getzep/graphiti#816 2025-08-08 00:52:37 -07:00
Daniel Chalef
f49ef259ff @vjeeva has signed the CLA in getzep/graphiti#814 2025-08-07 13:24:37 -07:00
Preston Rasmussen
0c01417e1f
add batch delete capabilities (#813)
* add batch delete capabilities

* use session for delete queries
2025-08-07 15:51:30 -04:00
Daniel Chalef
3ad4ea2ea0 @v-khanna has signed the CLA in getzep/graphiti#812 2025-08-06 19:23:19 -07:00
Daniel Chalef
947a8a7ac1 @mvanders has signed the CLA in getzep/graphiti#808 2025-08-06 07:56:34 -07:00
Jack Ryan
2b16eab0f5
Fix Azure OpenAI configuration parameter in README (#807)
Change llm_config parameter to config in OpenAIClient and OpenAIRerankerClient
examples to match actual API. This resolves TypeError when users follow the
Azure OpenAI configuration examples.

Fixes: TypeError: OpenAIClient.__init__() got an unexpected keyword argument 'llm_config'

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-authored-by: Claude <noreply@anthropic.com>
2025-08-05 13:40:29 -05:00
Preston Rasmussen
f0cc7709bd
test updates (#806)
* test updates

* update
2025-08-05 10:49:44 -04:00
Daniel Chalef
79ec748452 @hugo-son has signed the CLA in getzep/graphiti#805 2025-08-05 05:27:25 -07:00
Preston Rasmussen
6f3f369be4
update add triple to always have embeddings (#803)
update
2025-08-04 16:33:07 -04:00
Preston Rasmussen
0eb98647a9
add community group id index (#802)
* add community group id index

* updates nodes and indices
2025-08-04 12:24:44 -04:00
Preston Rasmussen
ab8106cb4f
move summary out of attribute extraction (#792)
* move summary out of attribute extraction

* linter

* linter

* fix db query
2025-07-31 12:15:21 -04:00
Daniel Chalef
e5112244e5 @bechbd has signed the CLA in getzep/graphiti#793 2025-07-31 08:58:23 -07:00
prestonrasmussen
6f3a4f19eb dedupe prompt update 2025-07-29 18:43:42 -04:00
Preston Rasmussen
19bddb5528
validate pydantic objects (#783)
* validate pydantic objects

* unused imports

* linter
2025-07-29 17:54:09 -04:00
Daniel Chalef
78731316ce @gifflet has signed the CLA in getzep/graphiti#782 2025-07-29 13:00:42 -07:00
Daniel Chalef
dcc9da3f68
chore/prepare kuzu integration (#762)
* Prepare code

* Fix tests

* As -> AS, remove trailing spaces

* Enable more tests for FalkorDB

* Fix more cypher queries

* Return all created nodes and edges

* Add Neo4j service to unit tests workflow

- Introduced Neo4j as a service in the GitHub Actions workflow for unit tests.
- Configured Neo4j with appropriate ports, authentication, and health checks.
- Updated test steps to include waiting for Neo4j and running integration tests against it.
- Set environment variables for Neo4j connection in both non-integration and integration test steps.

* Update Neo4j authentication in unit tests workflow

- Changed Neo4j authentication password from 'test' to 'testpass' in the GitHub Actions workflow.
- Updated health check command to reflect the new password.
- Ensured consistency across all test steps that utilize Neo4j credentials.

* fix health check

* Fix Neo4j integration tests in CI workflow

Remove reference to non-existent test_neo4j_driver.py file from test command.
Integration tests now run via parametrized tests using the drivers list.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Add OPENAI_API_KEY to Neo4j integration tests

Neo4j integration tests require OpenAI API access for LLM functionality.
Add the secret environment variable to enable these tests to run properly.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix Neo4j Cypher syntax error in BFS search queries

Replace parameter substitution in relationship pattern ranges (*1..$depth)
with direct string interpolation (*1..{bfs_max_depth}). Neo4j doesn't allow
parameter maps in MATCH pattern ranges - they must be literal values.

Fixed in both node_bfs_search and edge_bfs_search functions.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Fix variable name mismatch in edge_bfs_search query

Change relationship variable from 'r' to 'e' to match ENTITY_EDGE_RETURN
constant expectations. The ENTITY_EDGE_RETURN constant references variable
'e' for relationships, but the query was using 'r', causing "Variable e
not defined" errors.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

* Isolate database tests in CI workflow

- FalkorDB tests: Add DISABLE_NEO4J=1 and remove Neo4j env vars
- Neo4j tests: Keep current setup without DISABLE_NEO4J flag

This ensures proper test isolation where each test suite only runs
against its intended database backend.

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Siddhartha Sahu <sid@kuzudb.com>
Co-authored-by: Claude <noreply@anthropic.com>
2025-07-29 09:07:34 -04:00
Daniel Chalef
9ceeb54186
add concurrency explanation, update Zep (#766) 2025-07-24 11:36:06 -07:00
Daniel Chalef
21b63faec5 @paveljakov has signed the CLA in getzep/graphiti#764 2025-07-24 08:48:46 -07:00
Daniel Chalef
721e92f8fb
feat/falkordb dynamic graph names (#761)
* graphiti-graph-name

* fix-lint

* fix-unittest

* clone-update

* groupid-none

* groupid-def-fulltext

* lint

* Remove redundant function definition for fulltext_query in search_utils.py

* Refactor get_default_group_id function and remove redundant code in falkordb_driver and search_utils. Added import statement in driver.py.

* Refactor test cases in test_falkordb_driver.py for improved readability by consolidating multi-line assertions into single lines. No functional changes made.

* Refactor fulltext_query function in search_utils.py to use double quotes for group_id in the filter list, enhancing consistency in query syntax.

* Remove duplicate assignment of fuzzy_query in episode_fulltext_search function in search_utils.py to eliminate redundancy.

* Remove duplicate assignment of fuzzy_query in community_fulltext_search function in search_utils.py to streamline code.

---------

Co-authored-by: Gal Shubeli <galshubeli93@gmail.com>
2025-07-24 07:17:59 -07:00
Preston Rasmussen
17747ff58d
Return reranker scores (#758)
* add search reranker scores to search output

* bump version

* updates
2025-07-23 16:05:48 -04:00
Daniel Chalef
266f3f396c
bump 0.17.11 (#755) 2025-07-22 17:19:17 -07:00
Daniel Chalef
059a64e5e9
Group ID filtering in BFS and full-text queries (#754)
Enhance search functions to include group ID filtering in BFS and full-text queries
2025-07-22 17:02:46 -07:00
prestonrasmussen
5bbc3cf814 optimize fulltext query update 2025-07-22 14:12:21 -04:00
prestonrasmussen
c0cae61d52 fulltext query update 2025-07-22 14:07:41 -04:00
Preston Rasmussen
38dd3e8dc3
Edge search updates (#753)
* update edge fulltext search

* update

* update
2025-07-22 10:05:58 -04:00
Daniel Chalef
7daa46067e
fix: missing group filter on node ft search (#752)
* Enhance full-text search to filter by group IDs in node queries

* Bump version to 0.17.8 in pyproject.toml
2025-07-21 22:57:27 -07:00
Daniel Chalef
1309a12119 @kavenGw has signed the CLA in getzep/graphiti#750 2025-07-21 19:59:01 -07:00
prestonrasmussen
f4dc7e2fba update max query length 2025-07-21 19:39:31 -04:00
Daniel Chalef
d31ea2d8eb @Naseem77 has signed the CLA in getzep/graphiti#742 2025-07-20 00:07:45 -07:00
Daniel Chalef
61e9da13e4 @sdht0 has signed the CLA in getzep/graphiti#748 2025-07-19 12:52:33 -07:00
Gal Shubeli
35e0692328
[Bug Fix] Fix the Group ID usage with FalkorDB (#733)
* groupid-none

* groupid-def-fulltext

* lint

* Update graphiti_core/helpers.py

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>

---------

Co-authored-by: ellipsis-dev[bot] <65095814+ellipsis-dev[bot]@users.noreply.github.com>
2025-07-17 12:35:08 -04:00
Daniel Chalef
d96f362875 @soraxas has signed the CLA in getzep/graphiti#741 2025-07-17 06:33:36 -07:00
Preston Rasmussen
0ac2541b35
make egg_operations more robust (#737)
update
2025-07-16 17:12:20 -04:00
Preston Rasmussen
748464dfa5
Return embeddings option in get_by_uuids (#736)
* add with_embeddings option

* update
2025-07-16 11:09:10 -04:00
Preston Rasmussen
5d45d71259
Bulk updates (#732)
* updates

* update

* update

* typo

* linter
2025-07-16 02:26:33 -04:00
prestonrasmussen
0de2812eb6 bump version 2025-07-15 11:43:46 -04:00
Preston Rasmussen
62df6624d4
bulk utils update (#727)
* bulk utils update

* remove unused imports

* edge model type guard
2025-07-15 11:42:08 -04:00
Pavlo Paliychuk
5821776512
fix: discord badge (#726) 2025-07-15 10:41:45 -04:00