Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Jack/initial eval framework #251

Closed
wants to merge 205 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
205 commits
Select commit Hold shift + click to select a range
f68b030
Merge pull request #1 from getzep/add-readme-and-poetry-config
paul-paliychuk Aug 13, 2024
26a9ed3
chore: Initial draft of stubs (#2)
paul-paliychuk Aug 14, 2024
57f2a13
renaming and add indices (#3)
prasmussen15 Aug 15, 2024
b8b02cd
Refactor maintenance structure, add prompt library (#4)
paul-paliychuk Aug 15, 2024
a335b7b
Cleanup maintenance utilities + add podcast runner (#5)
paul-paliychuk Aug 16, 2024
5efc225
Update Maintenance LLM Queries and Partial Schema Retrieval (#6)
prasmussen15 Aug 18, 2024
b894e57
fix: Address graph disconnect (#7)
paul-paliychuk Aug 19, 2024
250df1f
feat: Initial version of temporal invalidation + tests (#8)
paul-paliychuk Aug 20, 2024
6db06e0
Create Bulk Add Episode for faster processing (#9)
prasmussen15 Aug 21, 2024
a7a686a
chore: Add development environment to the action (#12)
paul-paliychuk Aug 22, 2024
34ec656
Create dependabot.yml (#11)
danielchalef Aug 22, 2024
1a5b540
Create SECURITY.md (#10)
danielchalef Aug 22, 2024
0793d89
move podcast to examples (#15)
danielchalef Aug 22, 2024
d307033
search updates (#14)
prasmussen15 Aug 22, 2024
f2079eb
format and linting (#18)
danielchalef Aug 22, 2024
77dffd1
ruff action (#17)
danielchalef Aug 22, 2024
71a2eab
rm podcast (#16)
danielchalef Aug 22, 2024
e58277a
search updates (#19)
prasmussen15 Aug 22, 2024
0ac7e37
Invalidation updates && improvements (#20)
paul-paliychuk Aug 22, 2024
7660dfb
chore: enable mypy; actions cleanup (#21)
danielchalef Aug 22, 2024
eea0160
depot + cleanup (#22)
danielchalef Aug 22, 2024
71db49c
Fix temporal invalidation unit tests (#23)
paul-paliychuk Aug 22, 2024
d1412cb
fix constraints (#25)
prasmussen15 Aug 22, 2024
35711c4
chore: Fix Typing Issues (#27)
danielchalef Aug 23, 2024
b17dd31
improve deduping issue (#28)
prasmussen15 Aug 23, 2024
6e6df65
Add a LICENSE file containing the Apache v2 license (#29)
danielchalef Aug 23, 2024
00de8b9
feat: Add real world dates extraction (#26)
paul-paliychuk Aug 23, 2024
bdffb40
Add Apache License 2.0 boilerplate to all Python files (#30)
danielchalef Aug 23, 2024
24887ec
feat: Add CLA Assistant workflow and CONTRIBUTING guidelines (#32)
danielchalef Aug 23, 2024
2832b2b
chore: Update the context for date extraction + bug fixes (#31)
paul-paliychuk Aug 23, 2024
13a710b
Update CONTRIBUTING.md to reflect Python 3.10+ requirement (#33)
danielchalef Aug 23, 2024
e1e38eb
dedupe fixes (#35)
prasmussen15 Aug 23, 2024
5d63a1b
chore: Fix packaging (#38)
danielchalef Aug 25, 2024
1b06564
Controlled example (#37)
paul-paliychuk Aug 26, 2024
9d3429c
chore: Add comments to graphiti methods (#40)
paul-paliychuk Aug 26, 2024
898b051
implement diskcache (#39)
danielchalef Aug 26, 2024
b76de44
Implement retry for LLMClient (#44)
danielchalef Aug 26, 2024
d61a20a
Search node centering (#45)
prasmussen15 Aug 26, 2024
a2493d5
Add text episode type (#46)
danielchalef Aug 26, 2024
94a46f3
Update cla.yml for dependabot[bot] whitelist (#47)
danielchalef Aug 26, 2024
351c27c
Update search method to return EntityEdge objects (#48)
danielchalef Aug 27, 2024
6b328ca
Update cla.yml to add ellipsisdev[bot] to whitelist (#50)
danielchalef Aug 27, 2024
a0e4e50
Add get_nodes_by_query method to Graphiti class (#49)
danielchalef Aug 27, 2024
7fdf9c2
README wip (#42)
danielchalef Aug 27, 2024
7ee5f7f
feat: Add graphiti demo slides to README.md (#52)
danielchalef Aug 27, 2024
634d13c
Chore/add-intro-gif v2 (#54)
danielchalef Aug 27, 2024
c801e3b
Update README.md (#55)
danielchalef Aug 27, 2024
e9121bf
Update status and roadmap section (#53)
paul-paliychuk Aug 27, 2024
d160c1f
Update README.md w/ spacing (#56)
danielchalef Aug 27, 2024
dc44999
Update README.md (#57)
danielchalef Aug 27, 2024
df798c4
Update README.md (#58)
danielchalef Aug 27, 2024
8a529ae
Update README.md (#59)
danielchalef Aug 27, 2024
9b95ebc
Update README.md - docs to docs site (#60)
danielchalef Aug 27, 2024
3a3c478
chore: Move anthropic to dev deps, remove anthropic and groq clients …
paul-paliychuk Aug 27, 2024
e4530ca
feat: Add release workflow (#62)
paul-paliychuk Aug 27, 2024
525a138
Add Missing Node and edge CRUD (#51)
prasmussen15 Aug 27, 2024
28e17bd
chore: Version bump (#63)
paul-paliychuk Aug 27, 2024
c271ae3
Update README.md - init (#64)
danielchalef Aug 27, 2024
ac6737f
Update cla.yml - name of ellipsis bot (#65)
danielchalef Aug 27, 2024
b793e64
Update README.md - CRUD done (#66)
danielchalef Aug 28, 2024
7a7e95c
add bulk temporal extraction and improve bulk quality and performance…
prasmussen15 Aug 30, 2024
0356603
chore(deps-dev): Bump pytest-asyncio from 0.23.8 to 0.24.0 (#43)
dependabot[bot] Aug 30, 2024
e4d0b38
Update README.md messaging (#69)
danielchalef Aug 31, 2024
3fa3599
Update README.md - fix image url (#70)
danielchalef Aug 31, 2024
2114ad6
Update README.md (#71)
danielchalef Aug 31, 2024
c0f7f60
chore(deps-dev): Bump jupyterlab from 4.2.4 to 4.2.5 in the pip group…
dependabot[bot] Aug 31, 2024
de7cf5c
Node Distance Reranker: Limit max hops (and cleanup prints) (#72)
danielchalef Sep 1, 2024
d075543
Feat/langgraph-example (#73)
danielchalef Sep 1, 2024
55e6984
README.md fixes (#74)
danielchalef Sep 1, 2024
9105cbd
Speed up add episode (#77)
prasmussen15 Sep 3, 2024
5bc5a1b
chore(deps-dev): Bump groq from 0.9.0 to 0.10.0 (#76)
dependabot[bot] Sep 3, 2024
08ad6b2
chore(deps-dev): Bump langgraph from 0.2.15 to 0.2.16 (#75)
dependabot[bot] Sep 3, 2024
8b6b160
Update image URL in README.md (#78)
danielchalef Sep 3, 2024
cd6fec2
chore: Version bump (#79)
paul-paliychuk Sep 3, 2024
b4ec5b2
Update README.md (#80)
danielchalef Sep 4, 2024
1b6a2d0
search update (#81)
prasmussen15 Sep 4, 2024
70a68b3
Update README.md (#84)
danielchalef Sep 5, 2024
89989ef
Add episode refactor (#85)
prasmussen15 Sep 5, 2024
af52baa
fix clearing name embeddings bug (#87)
prasmussen15 Sep 5, 2024
ea9f563
Add Fastapi graph service (#88)
paul-paliychuk Sep 6, 2024
a473a88
Fix manual image release workflow (#90)
paul-paliychuk Sep 6, 2024
90663c4
Fix manual image release workflow (#91)
paul-paliychuk Sep 6, 2024
ddd2dd9
Add group ids (#89)
prasmussen15 Sep 6, 2024
96ac5c1
feat: Add group id support to service (#92)
paul-paliychuk Sep 6, 2024
e323ef9
chore: Update service readme (#93)
paul-paliychuk Sep 6, 2024
474ea2a
Loosen numpy dependency to numpy>=1.0.0 (#94)
danielchalef Sep 9, 2024
6a2bf86
chore(deps-dev): Bump langsmith from 0.1.115 to 0.1.116 (#99)
dependabot[bot] Sep 9, 2024
ccc1913
chore(deps): Bump pydantic from 2.9.0 to 2.9.1 (#98)
dependabot[bot] Sep 9, 2024
c9fdee9
chore(deps): Bump openai from 1.43.1 to 1.44.0 (#97)
dependabot[bot] Sep 9, 2024
8907b72
chore(deps-dev): Bump groq from 0.10.0 to 0.11.0 (#96)
dependabot[bot] Sep 9, 2024
0ad07d1
chore(deps-dev): Bump langgraph from 0.2.18 to 0.2.19 (#95)
dependabot[bot] Sep 9, 2024
031863e
Fix missing default None for add_episode_bulk (#101)
danielchalef Sep 10, 2024
016ed35
feat(graph-service): add entity node handling and update Docker confi…
paul-paliychuk Sep 10, 2024
adc058d
Fix llm client retry (#102)
danielchalef Sep 10, 2024
17ca4c1
Add py.typed file (#105)
danielchalef Sep 11, 2024
b3d1b43
add extract nodes from text prompt (#106)
prasmussen15 Sep 11, 2024
69c0d1c
Community nodes (#103)
prasmussen15 Sep 11, 2024
fd9c27f
feat: add error handling for missing nodes and edges, introduce new A…
paul-paliychuk Sep 11, 2024
f694c16
Improve node distance reranker speed (#107)
prasmussen15 Sep 12, 2024
bb24c92
Version bump (#108)
paul-paliychuk Sep 13, 2024
ceaac46
Search refactor + Community search (#111)
prasmussen15 Sep 16, 2024
e034848
Fix groupless search (#118)
paul-paliychuk Sep 16, 2024
c0372ca
fix: Syntax error on node crud (#119)
paul-paliychuk Sep 17, 2024
ebff757
Add community update (#121)
prasmussen15 Sep 18, 2024
45f5eb7
chore(deps-dev): Bump langchain-openai from 0.1.23 to 0.1.25 (#117)
dependabot[bot] Sep 18, 2024
f87c1b6
chore(deps): Bump openai from 1.44.0 to 1.45.1 (#116)
dependabot[bot] Sep 18, 2024
9132f86
chore(deps-dev): Bump ruff from 0.6.4 to 0.6.5 (#115)
dependabot[bot] Sep 18, 2024
e39cfdc
chore(deps-dev): Bump langsmith from 0.1.116 to 0.1.121 (#114)
dependabot[bot] Sep 18, 2024
be4a6ee
fix: update UUID generation and message handling (#123)
paul-paliychuk Sep 18, 2024
1d6f3f9
chore(deps-dev): Bump pytest from 8.3.2 to 8.3.3 (#113)
dependabot[bot] Sep 18, 2024
45605c7
Mentions reranker (#124)
prasmussen15 Sep 18, 2024
c429dc0
Add group_id CRUD endpoints and option store content bool (#130)
prasmussen15 Sep 19, 2024
10b1cce
feat: add OpenAI configuration options to Settings and update LLM cli…
paul-paliychuk Sep 19, 2024
281cc9f
Update README.md with graphiti logo (#131)
danielchalef Sep 19, 2024
f04df65
Handle JSONDecodeError in is_server_or_retry_error function (#133)
danielchalef Sep 20, 2024
aacec14
feat: Fix bug in dedupe_node_list function (#137)
danielchalef Sep 21, 2024
f4ccd65
feat: Refactor OpenAIClient initialization and add client parameter (…
danielchalef Sep 21, 2024
2851cf4
chore: Update DEFAULT_MAX_TOKENS to 16384 in config.py (#138)
danielchalef Sep 22, 2024
44ada92
Add instructions to set up integration testing to contributor docs (#…
kylediaz Sep 22, 2024
3b038da
feat: Add delete group endpoint (#132)
paul-paliychuk Sep 22, 2024
b98819e
Override default max tokens for Anthropic and Groq clients (#143)
danielchalef Sep 22, 2024
8215ddd
add py.typed (#141)
danielchalef Sep 22, 2024
98876f6
limit community building concurrency (#142)
danielchalef Sep 22, 2024
6a88503
feat: add FastAPI lifespan and healthcheck endpoint (#144)
paul-paliychuk Sep 23, 2024
e7ca5f9
In memory label propagation community detection (#136)
prasmussen15 Sep 23, 2024
719accb
chore(deps-dev): Bump langgraph from 0.2.19 to 0.2.23 (#150)
dependabot[bot] Sep 23, 2024
4b61fbe
chore(deps): Bump pydantic from 2.9.1 to 2.9.2 (#149)
dependabot[bot] Sep 23, 2024
ce07d61
chore(deps): Bump openai from 1.45.1 to 1.47.0 (#148)
dependabot[bot] Sep 23, 2024
ced875f
chore(deps-dev): Bump ruff from 0.6.5 to 0.6.7 (#147)
dependabot[bot] Sep 23, 2024
b0dc79a
chore(deps-dev): Bump langsmith from 0.1.121 to 0.1.125 (#146)
dependabot[bot] Sep 23, 2024
d9e774d
Group id fix (#152)
prasmussen15 Sep 24, 2024
9333ea5
feat: async close and multi-group search support (#151)
paul-paliychuk Sep 24, 2024
1f24fd4
refactor: remove unnecessary type casting in `search()` function (#153)
paul-paliychuk Sep 24, 2024
2b1cbfc
fix: Make groupIds option in search query dto (#154)
paul-paliychuk Sep 24, 2024
582a07c
chore: Make deleting groups safer (#155)
paul-paliychuk Sep 25, 2024
9568d2a
Add MSC benchmark and improve search performance (#157)
prasmussen15 Sep 26, 2024
b61f82f
feat: configurable embedding model (#156)
ArnoChenFx Sep 26, 2024
bf5f253
chore: simplify Docker image release workflow (#158)
paul-paliychuk Sep 26, 2024
238f529
feat: Dedicated embedder interface (#159)
paul-paliychuk Sep 27, 2024
71395c3
chore: Update openai version (#162)
paul-paliychuk Sep 28, 2024
62f3e97
chore(deps): Bump neo4j from 5.24.0 to 5.25.0 (#168)
dependabot[bot] Oct 1, 2024
74abf52
chore(deps-dev): Bump langgraph from 0.2.23 to 0.2.28 (#167)
dependabot[bot] Oct 1, 2024
38e41f5
chore(deps-dev): Bump ruff from 0.6.7 to 0.6.8 (#166)
dependabot[bot] Oct 1, 2024
aef4227
chore(deps-dev): Bump langsmith from 0.1.125 to 0.1.129 (#165)
dependabot[bot] Oct 1, 2024
772413d
chore: Add build and start CI workflow (#164)
paul-paliychuk Oct 1, 2024
70b57b3
feat: add health checks and dependencies to docker-compose (#163)
paul-paliychuk Oct 1, 2024
834dd75
update lucene sanitizer (#170)
prasmussen15 Oct 2, 2024
845b37c
test escape characters (#171)
prasmussen15 Oct 3, 2024
e3f5e76
Msc benchmark update (#173)
prasmussen15 Oct 3, 2024
427c761
add addepisode return object (#172)
prasmussen15 Oct 3, 2024
5cef44e
Fix edge invalidation (#174)
prasmussen15 Oct 7, 2024
0c98115
chore(deps): Bump numpy from 2.1.1 to 2.1.2 (#179)
dependabot[bot] Oct 8, 2024
d970835
chore(deps-dev): Bump ruff from 0.6.8 to 0.6.9 (#178)
dependabot[bot] Oct 8, 2024
95c8fe7
chore(deps-dev): Bump langsmith from 0.1.130 to 0.1.131 (#177)
dependabot[bot] Oct 8, 2024
1a071fd
chore(deps): Bump openai from 1.51.0 to 1.51.1 (#175)
dependabot[bot] Oct 8, 2024
4216db7
Add mmr reranking (#180)
prasmussen15 Oct 8, 2024
cb3c576
chore(deps-dev): Bump anthropic from 0.34.2 to 0.35.0 (#176)
dependabot[bot] Oct 8, 2024
b536858
fix: Release workflow for service image (#182)
paul-paliychuk Oct 8, 2024
0f8f159
Fix release workflow (#183)
paul-paliychuk Oct 8, 2024
cefa71e
make broader use of debug logs (#187)
prasmussen15 Oct 11, 2024
887e386
Node group error type (#185)
prasmussen15 Oct 11, 2024
6cad040
bump version (#189)
prasmussen15 Oct 11, 2024
7da31fa
fix duplicate search results bug (#190)
prasmussen15 Oct 15, 2024
b4f57eb
set content to empty after episode extractions have happened (#191)
prasmussen15 Oct 15, 2024
07fa6f9
ZEPAI-676: Remove fuzzy query in fulltext search to avoid errors with…
prasmussen15 Oct 19, 2024
d7e231e
update lucene search (#193)
prasmussen15 Oct 20, 2024
8cb1c11
chore: Add missing permissions in release image workflow (#194)
paul-paliychuk Oct 21, 2024
e2a011e
Make default DB explicit (#195)
prasmussen15 Oct 21, 2024
a19d714
load env in helper file (#196)
prasmussen15 Oct 22, 2024
427cb51
Use sessions search (#197)
prasmussen15 Oct 22, 2024
6a9c636
chore: Bump version (#198)
paul-paliychuk Oct 22, 2024
8384611
Number of Neo4j Connections Optimizations (#199)
prasmussen15 Oct 23, 2024
c2817c8
chore: Set up cross encoder client (#201)
paul-paliychuk Oct 24, 2024
8300ed8
Cross encoder reranker in search query (#202)
prasmussen15 Oct 25, 2024
6427ecd
Update reranker limits (#203)
prasmussen15 Oct 28, 2024
e01eb22
update new names with input_data (#204)
prasmussen15 Oct 29, 2024
3fdbf47
Bulk add nodes and edges (#205)
prasmussen15 Oct 31, 2024
0df1e0f
return no results with empty search string (#206)
prasmussen15 Nov 4, 2024
cf9f560
add_fact endpoint (#207)
prasmussen15 Nov 6, 2024
1d5f7cf
Update MSC dataset (#208)
prasmussen15 Nov 6, 2024
efe6134
add search recipes (#210)
prasmussen15 Nov 6, 2024
c89a9ae
update dependency versions (#209)
prasmussen15 Nov 8, 2024
6580cac
Fix OpenAI cross-encoder prompt (#213)
prasmussen15 Nov 12, 2024
cb79715
add reflexion (#212)
prasmussen15 Nov 13, 2024
83f22a4
Add episode latency improvements (#214)
prasmussen15 Nov 14, 2024
ee8754b
add fulltext search limit (#215)
prasmussen15 Nov 14, 2024
2b91dec
Update edge search (#216)
prasmussen15 Nov 15, 2024
04adbad
add delete nodes by group_id (#217)
prasmussen15 Nov 18, 2024
09d4cad
Pagination for get by group_id (#218)
prasmussen15 Dec 2, 2024
3397f4c
update episode override (#219)
prasmussen15 Dec 2, 2024
b67c244
add unicode escape (#224)
prasmussen15 Dec 3, 2024
65e6b4d
Implement OpenAI Structured Output (#225)
danielchalef Dec 5, 2024
9db2d98
pre-release version bump (#226)
prasmussen15 Dec 5, 2024
9269de2
update summary length (#227)
prasmussen15 Dec 5, 2024
7a99d4c
bump version (#228)
prasmussen15 Dec 5, 2024
02bee8f
feat: add retry logic and improve logging in OpenAIClient (#229)
danielchalef Dec 6, 2024
69b964b
pre3 (#230)
prasmussen15 Dec 6, 2024
a2b1af7
fix node distance reranker (#231)
prasmussen15 Dec 6, 2024
523c2a1
default to no pagination (#232)
prasmussen15 Dec 6, 2024
1b80d5d
update lucene escaping (#233)
prasmussen15 Dec 9, 2024
0adf38d
refactor: use `utc_now()` for consistent UTC datetime handling (#234)
danielchalef Dec 9, 2024
ac8e8d9
bump version (#236)
prasmussen15 Dec 9, 2024
5084aa4
Initial eval platform work
jackaldenryan Dec 26, 2024
6f70ad6
add partial completion of full ingestion and other things
jackaldenryan Jan 9, 2025
f0c1bd9
cleanup
jackaldenryan Jan 10, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file added .DS_Store
Binary file not shown.
2 changes: 1 addition & 1 deletion .env.example
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
OPENAI_API_KEY=
NEO4J_URI=
NEO4J_USER=
NEO4J_PASSWORD=
NEO4J_PASSWORD=
11 changes: 11 additions & 0 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file

version: 2
updates:
- package-ecosystem: "pip" # See documentation for possible values
directory: "/" # Location of package manifests
schedule:
interval: "weekly"
48 changes: 48 additions & 0 deletions .github/workflows/build-and-start-svc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
name: Build and Start Graphiti Service

on:
pull_request:
branches: [ "main" ]
push:
tags: [ 'v*.*.*' ]
workflow_call:
jobs:
build-and-start:
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
env:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
NEO4J_USER: neo4j
NEO4J_PASSWORD: testpassword
NEO4J_PORT: 7687
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Depot CLI
uses: depot/setup-action@v1

- name: Build Graphiti service image with Depot
uses: depot/build-push-action@v1
with:
context: .
push: false
load: true
tags: graphiti-service:${{ github.sha }}

- name: Run Docker Compose
run: docker compose -f docker-compose.test.yml up -d --wait

- name: Check service logs
if: failure()
run: |
echo "Graphiti service logs:"
docker compose -f docker-compose.test.yml logs graph
echo "Neo4j logs:"
docker compose -f docker-compose.test.yml logs neo4j

- name: Cleanup
if: always()
run: docker compose -f docker-compose.test.yml down
40 changes: 40 additions & 0 deletions .github/workflows/cla.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: "CLA Assistant"
on:
issue_comment:
types: [created]
pull_request_target:
types: [opened, closed, synchronize]

# explicitly configure permissions, in case your GITHUB_TOKEN workflow permissions are set to read-only in repository settings
permissions:
actions: write
contents: write # this can be 'read' if the signatures are in remote repository
pull-requests: write
statuses: write

jobs:
CLAAssistant:
runs-on: ubuntu-latest
steps:
- name: "CLA Assistant"
if: (github.event.comment.body == 'recheck' || github.event.comment.body == 'I have read the CLA Document and I hereby sign the CLA') || github.event_name == 'pull_request_target'
uses: contributor-assistant/[email protected]
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
path-to-signatures: "signatures/version1/cla.json"
path-to-document: "https://github.com/getzep/graphiti/blob/main/Zep-CLA.md" # e.g. a CLA or a DCO document
# branch should not be protected
branch: "main"
allowlist: paul-paliychuk,prasmussen15,danielchalef,dependabot[bot],ellipsis-dev

# the followings are the optional inputs - If the optional inputs are not given, then default values will be taken
#remote-organization-name: enter the remote organization name where the signatures should be stored (Default is storing the signatures in the same repository)
#remote-repository-name: enter the remote repository name where the signatures should be stored (Default is storing the signatures in the same repository)
#create-file-commit-message: 'For example: Creating file for storing CLA Signatures'
#signed-commit-message: 'For example: $contributorName has signed the CLA in $owner/$repo#$pullRequestNo'
#custom-notsigned-prcomment: 'pull request comment with Introductory message to ask new contributors to sign'
#custom-pr-sign-comment: 'The signature to be committed in order to sign the CLA'
#custom-allsigned-prcomment: 'pull request comment when all contributors has signed, defaults to **CLA Assistant Lite bot** All Contributors have signed the CLA.'
#lock-pullrequest-aftermerge: false - if you don't want this bot to automatically lock the pull request after merging (default - true)
#use-dco-flag: true - If you are using DCO instead of CLA
24 changes: 24 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
name: Lint with Ruff

on:
push:
branches: ["main"]
pull_request:
branches: ["main"]

jobs:
ruff:
environment: development
runs-on: depot-ubuntu-22.04
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install dependencies
run: |
python -m pip install --upgrade pip
pip install "ruff>0.1.7"
- name: Run Ruff linting
run: ruff check --output-format=github
38 changes: 38 additions & 0 deletions .github/workflows/release-graphiti-core.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,38 @@
name: Release to PyPI

on:
push:
tags: ["v*.*.*"]

env:
POETRY_VERSION: "1.8.3"

jobs:
release:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: write
environment:
name: release
url: https://pypi.org/p/zep-cloud
steps:
- uses: actions/checkout@v4
- name: Install poetry
run: pipx install poetry==$POETRY_VERSION
- name: Set up Python 3.10
uses: actions/setup-python@v5
with:
python-version: "3.10"
cache: "poetry"
- name: Compare pyproject version with tag
run: |
TAG_VERSION=${GITHUB_REF#refs/tags/}
if [ "$TAG_VERSION" != "v$(poetry version --short)" ]; then
echo "Tag version $TAG_VERSION does not match the project version $(poetry version --short)"
exit 1
fi
- name: Build project for distribution
run: poetry build
- name: Publish package distributions to PyPI
uses: pypa/gh-action-pypi-publish@release/v1
61 changes: 61 additions & 0 deletions .github/workflows/release-service-image.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
name: Build image

on:
push:
# Publish semver tags as releases.
tags: [ 'v*.*.*' ]

env:
REGISTRY: docker.io
IMAGE_NAME: zepai/graphiti

jobs:
build_and_start_svc:
uses: ./.github/workflows/build-and-start-svc.yml
permissions:
contents: read
id-token: write
docker-image:
needs: build_and_start_svc
environment:
name: release
runs-on: ubuntu-latest
permissions:
contents: read
id-token: write
steps:
- name: Checkout repo for tag push
uses: actions/checkout@v4
with:
ref: ${{ github.event.inputs.tag || github.ref }}

- name: Set up Depot CLI
uses: depot/setup-action@v1

- name: Login to DockerHub
uses: docker/login-action@v2
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}

- name: Extract Docker metadata
id: meta
uses: docker/[email protected]
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=match,pattern=v(.*-beta),group=1
type=match,pattern=v.*-(beta),group=1

- name: Depot build and push image
uses: depot/build-push-action@v1
with:
context: .
platforms: linux/amd64,linux/arm64
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags || env.TAGS }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
50 changes: 50 additions & 0 deletions .github/workflows/typecheck.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
name: MyPy Type Check

on:
push:
branches: ["main"]
pull_request:
branches: ["main"]

jobs:
mypy:
runs-on: depot-ubuntu-22.04
environment: development
steps:
- uses: actions/checkout@v4
- name: Set up Python
id: setup-python
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install Poetry
uses: snok/install-poetry@v1
with:
version: 1.8.0
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
- name: Install dependencies
run: poetry install --no-interaction --with dev
- name: Run MyPy for graphiti-core
shell: bash
run: |
set -o pipefail
poetry run mypy ./graphiti_core --show-column-numbers --show-error-codes | sed -E '
s/^(.*):([0-9]+):([0-9]+): (error|warning): (.+) \[(.+)\]/::error file=\1,line=\2,endLine=\2,col=\3,title=\6::\5/;
s/^(.*):([0-9]+):([0-9]+): note: (.+)/::notice file=\1,line=\2,endLine=\2,col=\3,title=Note::\4/;
'
- name: Install graph-service dependencies
shell: bash
run: |
cd server
poetry install --no-interaction --with dev
- name: Run MyPy for graph-service
shell: bash
run: |
cd server
set -o pipefail
poetry run mypy . --show-column-numbers --show-error-codes | sed -E '
s/^(.*):([0-9]+):([0-9]+): (error|warning): (.+) \[(.+)\]/::error file=\1,line=\2,endLine=\2,col=\3,title=\6::\5/;
s/^(.*):([0-9]+):([0-9]+): note: (.+)/::notice file=\1,line=\2,endLine=\2,col=\3,title=Note::\4/;
'
37 changes: 37 additions & 0 deletions .github/workflows/unit_tests.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Unit Tests

on:
push:
branches: [main]
pull_request:
branches: [main]

jobs:
test:
runs-on: depot-ubuntu-22.04
environment:
name: development
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Load cached Poetry installation
uses: actions/cache@v4
with:
path: ~/.local
key: poetry-${{ runner.os }}-${{ hashFiles('**/poetry.lock') }}
- name: Install Poetry
uses: snok/install-poetry@v1
with:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
- name: Install dependencies
run: poetry install --no-interaction --no-root
- name: Run non-integration tests
env:
PYTHONPATH: ${{ github.workspace }}
run: |
poetry run pytest -m "not integration"
12 changes: 11 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -158,5 +158,15 @@ cython_debug/
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
# and can be added to the global gitignore or merged into this file. For a more nuclear
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
#.idea/
.idea/
.vscode/

## Other
# Cache files
cache.db*

# LongMemEval data
longmemeval_data/

# All DS_Store files
.DS_Store
Loading
Loading