add fulltext search limit (#215)

* add fulltext search limit

* format

* update

* update

* update tests

* remove unused imports

* format

* mypy
This commit is contained in:
Preston Rasmussen 2024-11-14 12:18:18 -05:00 committed by GitHub
parent a8a73ec38b
commit 281fe072cb
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 301 additions and 363 deletions

View file

@ -108,7 +108,7 @@ poetry add graphiti-core
```python
from graphiti_core import Graphiti
from graphiti_core.nodes import EpisodeType
from datetime import datetime
from datetime import datetime, timezone
# Initialize Graphiti
graphiti = Graphiti("bolt://localhost:7687", "neo4j", "password")
@ -128,7 +128,7 @@ for i, episode in enumerate(episodes):
episode_body=episode,
source=EpisodeType.text,
source_description="podcast",
reference_time=datetime.now()
reference_time=datetime.now(timezone.utc)
)
# Search the graph

View file

@ -30,7 +30,7 @@
"import logging\n",
"import os\n",
"import sys\n",
"from datetime import datetime\n",
"from datetime import datetime, timezone\n",
"from pathlib import Path\n",
"\n",
"from dotenv import load_dotenv\n",
@ -111,7 +111,7 @@
" name=f'{prefix}-{i}',\n",
" episode_body=message,\n",
" source=EpisodeType.message,\n",
" reference_time=datetime.now(),\n",
" reference_time=datetime.now(timezone.utc),\n",
" source_description='Shoe conversation',\n",
" )"
]
@ -135,7 +135,7 @@
" content=str({k: v for k, v in product.items() if k != 'images'}),\n",
" source_description='ManyBirds products',\n",
" source=EpisodeType.json,\n",
" reference_time=datetime.now(),\n",
" reference_time=datetime.now(timezone.utc),\n",
" )\n",
" for i, product in enumerate(products)\n",
" ]\n",
@ -463,7 +463,7 @@
" name='Inventory management 0',\n",
" episode_body=('All Tinybirds Wool Runners styles are out of stock until December 25th 2024'),\n",
" source=EpisodeType.text,\n",
" reference_time=datetime.now(),\n",
" reference_time=datetime.now(timezone.utc),\n",
" source_description='Inventory Management Bot',\n",
")"
]
@ -499,18 +499,18 @@
"</pre>\n"
],
"text/plain": [
"\u001b[1m{\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[32m'uuid'\u001b[0m: \u001b[32m'150fce971e43402582df51d83e09dddf'\u001b[0m,\n",
"\u001b[2;32m│ \u001b[0m\u001b[32m'source_node_uuid'\u001b[0m: \u001b[32m'a06d832a07fc403f8e43df6b2b650f1a'\u001b[0m,\n",
"\u001b[2;32m│ \u001b[0m\u001b[32m'target_node_uuid'\u001b[0m: \u001b[32m'138a288fc46f40a18623ccf970d49813'\u001b[0m,\n",
"\u001b[2;32m│ \u001b[0m\u001b[32m'created_at'\u001b[0m: \u001b[1;35mdatetime.datetime\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m2024\u001b[0m, \u001b[1;36m8\u001b[0m, \u001b[1;36m31\u001b[0m, \u001b[1;36m11\u001b[0m, \u001b[1;36m34\u001b[0m, \u001b[1;36m12\u001b[0m, \u001b[1;36m9589\u001b[0m\u001b[1m)\u001b[0m,\n",
"\u001b[2;32m│ \u001b[0m\u001b[32m'name'\u001b[0m: \u001b[32m'PROVIDES_AVAILABILITY_INFO'\u001b[0m,\n",
"\u001b[2;32m│ \u001b[0m\u001b[32m'fact'\u001b[0m: \u001b[32m'AI Assistant informs that all TinyBirds Wool Runners styles are out of stock until December 25th 2024'\u001b[0m,\n",
"\u001b[2;32m│ \u001b[0m\u001b[32m'episodes'\u001b[0m: \u001b[1m[\u001b[0m\u001b[32m'1de5e192b93149b5a11ede5667d99a40'\u001b[0m\u001b[1m]\u001b[0m,\n",
"\u001b[2;32m│ \u001b[0m\u001b[32m'expired_at'\u001b[0m: \u001b[1;35mdatetime.datetime\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m2024\u001b[0m, \u001b[1;36m8\u001b[0m, \u001b[1;36m31\u001b[0m, \u001b[1;36m11\u001b[0m, \u001b[1;36m34\u001b[0m, \u001b[1;36m16\u001b[0m, \u001b[1;36m47041\u001b[0m\u001b[1m)\u001b[0m,\n",
"\u001b[2;32m│ \u001b[0m\u001b[32m'valid_at'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
"\u001b[2;32m│ \u001b[0m\u001b[32m'invalid_at'\u001b[0m: \u001b[1;35mdatetime.datetime\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m2024\u001b[0m, \u001b[1;36m12\u001b[0m, \u001b[1;36m25\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[33mtzinfo\u001b[0m=\u001b[1m<\u001b[0m\u001b[1;95mUTC\u001b[0m\u001b[1m>\u001b[0m\u001b[1m)\u001b[0m\n",
"\u001b[1m}\u001b[0m\n"
"\u001B[1m{\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[32m'uuid'\u001B[0m: \u001B[32m'150fce971e43402582df51d83e09dddf'\u001B[0m,\n",
"\u001B[2;32m│ \u001B[0m\u001B[32m'source_node_uuid'\u001B[0m: \u001B[32m'a06d832a07fc403f8e43df6b2b650f1a'\u001B[0m,\n",
"\u001B[2;32m│ \u001B[0m\u001B[32m'target_node_uuid'\u001B[0m: \u001B[32m'138a288fc46f40a18623ccf970d49813'\u001B[0m,\n",
"\u001B[2;32m│ \u001B[0m\u001B[32m'created_at'\u001B[0m: \u001B[1;35mdatetime.datetime\u001B[0m\u001B[1m(\u001B[0m\u001B[1;36m2024\u001B[0m, \u001B[1;36m8\u001B[0m, \u001B[1;36m31\u001B[0m, \u001B[1;36m11\u001B[0m, \u001B[1;36m34\u001B[0m, \u001B[1;36m12\u001B[0m, \u001B[1;36m9589\u001B[0m\u001B[1m)\u001B[0m,\n",
"\u001B[2;32m│ \u001B[0m\u001B[32m'name'\u001B[0m: \u001B[32m'PROVIDES_AVAILABILITY_INFO'\u001B[0m,\n",
"\u001B[2;32m│ \u001B[0m\u001B[32m'fact'\u001B[0m: \u001B[32m'AI Assistant informs that all TinyBirds Wool Runners styles are out of stock until December 25th 2024'\u001B[0m,\n",
"\u001B[2;32m│ \u001B[0m\u001B[32m'episodes'\u001B[0m: \u001B[1m[\u001B[0m\u001B[32m'1de5e192b93149b5a11ede5667d99a40'\u001B[0m\u001B[1m]\u001B[0m,\n",
"\u001B[2;32m│ \u001B[0m\u001B[32m'expired_at'\u001B[0m: \u001B[1;35mdatetime.datetime\u001B[0m\u001B[1m(\u001B[0m\u001B[1;36m2024\u001B[0m, \u001B[1;36m8\u001B[0m, \u001B[1;36m31\u001B[0m, \u001B[1;36m11\u001B[0m, \u001B[1;36m34\u001B[0m, \u001B[1;36m16\u001B[0m, \u001B[1;36m47041\u001B[0m\u001B[1m)\u001B[0m,\n",
"\u001B[2;32m│ \u001B[0m\u001B[32m'valid_at'\u001B[0m: \u001B[3;35mNone\u001B[0m,\n",
"\u001B[2;32m│ \u001B[0m\u001B[32m'invalid_at'\u001B[0m: \u001B[1;35mdatetime.datetime\u001B[0m\u001B[1m(\u001B[0m\u001B[1;36m2024\u001B[0m, \u001B[1;36m12\u001B[0m, \u001B[1;36m25\u001B[0m, \u001B[1;36m0\u001B[0m, \u001B[1;36m0\u001B[0m, \u001B[33mtzinfo\u001B[0m=\u001B[1m<\u001B[0m\u001B[1;95mUTC\u001B[0m\u001B[1m>\u001B[0m\u001B[1m)\u001B[0m\n",
"\u001B[1m}\u001B[0m\n"
]
},
"metadata": {},
@ -992,32 +992,32 @@
"</pre>\n"
],
"text/plain": [
"\u001b[1m[\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1m{\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'uuid'\u001b[0m: \u001b[32m'6a19ae37d5074d808d4f951ab347e2b1'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'source_node_uuid'\u001b[0m: \u001b[32m'c4091c3ffc814f2c9017304361898585'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'target_node_uuid'\u001b[0m: \u001b[32m'fcea4a4539244cd28aac1bb11def0cab'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'created_at'\u001b[0m: \u001b[1;35mdatetime.datetime\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m2024\u001b[0m, \u001b[1;36m8\u001b[0m, \u001b[1;36m31\u001b[0m, \u001b[1;36m11\u001b[0m, \u001b[1;36m35\u001b[0m, \u001b[1;36m44\u001b[0m, \u001b[1;36m738829\u001b[0m\u001b[1m)\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'name'\u001b[0m: \u001b[32m'HAS_SHOE_SIZE'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'fact'\u001b[0m: \u001b[32m\"John's shoe size is 10\"\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'episodes'\u001b[0m: \u001b[1m[\u001b[0m\u001b[32m'6b41a387ca504a2686b636a20b5673a3'\u001b[0m\u001b[1m]\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'expired_at'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'valid_at'\u001b[0m: \u001b[1;35mdatetime.datetime\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m2024\u001b[0m, \u001b[1;36m7\u001b[0m, \u001b[1;36m30\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m3\u001b[0m, \u001b[33mtzinfo\u001b[0m=\u001b[1m<\u001b[0m\u001b[1;95mUTC\u001b[0m\u001b[1m>\u001b[0m\u001b[1m)\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'invalid_at'\u001b[0m: \u001b[3;35mNone\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1m}\u001b[0m,\n",
"\u001b[2;32m│ \u001b[0m\u001b[1m{\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'uuid'\u001b[0m: \u001b[32m'0c150ca1debc423eb7e3bd535413c782'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'source_node_uuid'\u001b[0m: \u001b[32m'0e96a1b72fe145a79ec2b36842ac6fd9'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'target_node_uuid'\u001b[0m: \u001b[32m'0e96a1b72fe145a79ec2b36842ac6fd9'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'created_at'\u001b[0m: \u001b[1;35mdatetime.datetime\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m2024\u001b[0m, \u001b[1;36m8\u001b[0m, \u001b[1;36m31\u001b[0m, \u001b[1;36m11\u001b[0m, \u001b[1;36m33\u001b[0m, \u001b[1;36m39\u001b[0m, \u001b[1;36m424173\u001b[0m\u001b[1m)\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'name'\u001b[0m: \u001b[32m'IS_VARIANT_OF'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'fact'\u001b[0m: \u001b[32m\"The Men's SuperLight Wool Runners - Dark Grey \u001b[0m\u001b[32m(\u001b[0m\u001b[32mMedium Grey Sole\u001b[0m\u001b[32m)\u001b[0m\u001b[32m is a specific variant of the SuperLight Wool Runner line\"\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'episodes'\u001b[0m: \u001b[1m[\u001b[0m\u001b[32m'4a302ac072c94f9da876535b1130e03d'\u001b[0m\u001b[1m]\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'expired_at'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'valid_at'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'invalid_at'\u001b[0m: \u001b[3;35mNone\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1m}\u001b[0m\n",
"\u001b[1m]\u001b[0m\n"
"\u001B[1m[\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1m{\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'uuid'\u001B[0m: \u001B[32m'6a19ae37d5074d808d4f951ab347e2b1'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'source_node_uuid'\u001B[0m: \u001B[32m'c4091c3ffc814f2c9017304361898585'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'target_node_uuid'\u001B[0m: \u001B[32m'fcea4a4539244cd28aac1bb11def0cab'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'created_at'\u001B[0m: \u001B[1;35mdatetime.datetime\u001B[0m\u001B[1m(\u001B[0m\u001B[1;36m2024\u001B[0m, \u001B[1;36m8\u001B[0m, \u001B[1;36m31\u001B[0m, \u001B[1;36m11\u001B[0m, \u001B[1;36m35\u001B[0m, \u001B[1;36m44\u001B[0m, \u001B[1;36m738829\u001B[0m\u001B[1m)\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'name'\u001B[0m: \u001B[32m'HAS_SHOE_SIZE'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'fact'\u001B[0m: \u001B[32m\"John's shoe size is 10\"\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'episodes'\u001B[0m: \u001B[1m[\u001B[0m\u001B[32m'6b41a387ca504a2686b636a20b5673a3'\u001B[0m\u001B[1m]\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'expired_at'\u001B[0m: \u001B[3;35mNone\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'valid_at'\u001B[0m: \u001B[1;35mdatetime.datetime\u001B[0m\u001B[1m(\u001B[0m\u001B[1;36m2024\u001B[0m, \u001B[1;36m7\u001B[0m, \u001B[1;36m30\u001B[0m, \u001B[1;36m0\u001B[0m, \u001B[1;36m3\u001B[0m, \u001B[33mtzinfo\u001B[0m=\u001B[1m<\u001B[0m\u001B[1;95mUTC\u001B[0m\u001B[1m>\u001B[0m\u001B[1m)\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'invalid_at'\u001B[0m: \u001B[3;35mNone\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1m}\u001B[0m,\n",
"\u001B[2;32m│ \u001B[0m\u001B[1m{\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'uuid'\u001B[0m: \u001B[32m'0c150ca1debc423eb7e3bd535413c782'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'source_node_uuid'\u001B[0m: \u001B[32m'0e96a1b72fe145a79ec2b36842ac6fd9'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'target_node_uuid'\u001B[0m: \u001B[32m'0e96a1b72fe145a79ec2b36842ac6fd9'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'created_at'\u001B[0m: \u001B[1;35mdatetime.datetime\u001B[0m\u001B[1m(\u001B[0m\u001B[1;36m2024\u001B[0m, \u001B[1;36m8\u001B[0m, \u001B[1;36m31\u001B[0m, \u001B[1;36m11\u001B[0m, \u001B[1;36m33\u001B[0m, \u001B[1;36m39\u001B[0m, \u001B[1;36m424173\u001B[0m\u001B[1m)\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'name'\u001B[0m: \u001B[32m'IS_VARIANT_OF'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'fact'\u001B[0m: \u001B[32m\"The Men's SuperLight Wool Runners - Dark Grey \u001B[0m\u001B[32m(\u001B[0m\u001B[32mMedium Grey Sole\u001B[0m\u001B[32m)\u001B[0m\u001B[32m is a specific variant of the SuperLight Wool Runner line\"\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'episodes'\u001B[0m: \u001B[1m[\u001B[0m\u001B[32m'4a302ac072c94f9da876535b1130e03d'\u001B[0m\u001B[1m]\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'expired_at'\u001B[0m: \u001B[3;35mNone\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'valid_at'\u001B[0m: \u001B[3;35mNone\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'invalid_at'\u001B[0m: \u001B[3;35mNone\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1m}\u001B[0m\n",
"\u001B[1m]\u001B[0m\n"
]
},
"metadata": {},
@ -1057,14 +1057,14 @@
"</pre>\n"
],
"text/plain": [
"\u001b[1;35mEntityNode\u001b[0m\u001b[1m(\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[33muuid\u001b[0m=\u001b[32m'c4091c3ffc814f2c9017304361898585'\u001b[0m,\n",
"\u001b[2;32m│ \u001b[0m\u001b[33mname\u001b[0m=\u001b[32m'John'\u001b[0m,\n",
"\u001b[2;32m│ \u001b[0m\u001b[33mlabels\u001b[0m=\u001b[1m[\u001b[0m\u001b[32m'Entity'\u001b[0m\u001b[1m]\u001b[0m,\n",
"\u001b[2;32m│ \u001b[0m\u001b[33mcreated_at\u001b[0m=\u001b[1;35mdatetime\u001b[0m\u001b[1;35m.datetime\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m2024\u001b[0m, \u001b[1;36m8\u001b[0m, \u001b[1;36m31\u001b[0m, \u001b[1;36m11\u001b[0m, \u001b[1;36m34\u001b[0m, \u001b[1;36m52\u001b[0m, \u001b[1;36m870658\u001b[0m\u001b[1m)\u001b[0m,\n",
"\u001b[2;32m│ \u001b[0m\u001b[33mname_embedding\u001b[0m=\u001b[3;35mNone\u001b[0m,\n",
"\u001b[2;32m│ \u001b[0m\u001b[33msummary\u001b[0m=\u001b[32m'Customer looking for a new pair of shoes'\u001b[0m\n",
"\u001b[1m)\u001b[0m\n"
"\u001B[1;35mEntityNode\u001B[0m\u001B[1m(\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[33muuid\u001B[0m=\u001B[32m'c4091c3ffc814f2c9017304361898585'\u001B[0m,\n",
"\u001B[2;32m│ \u001B[0m\u001B[33mname\u001B[0m=\u001B[32m'John'\u001B[0m,\n",
"\u001B[2;32m│ \u001B[0m\u001B[33mlabels\u001B[0m=\u001B[1m[\u001B[0m\u001B[32m'Entity'\u001B[0m\u001B[1m]\u001B[0m,\n",
"\u001B[2;32m│ \u001B[0m\u001B[33mcreated_at\u001B[0m=\u001B[1;35mdatetime\u001B[0m\u001B[1;35m.datetime\u001B[0m\u001B[1m(\u001B[0m\u001B[1;36m2024\u001B[0m, \u001B[1;36m8\u001B[0m, \u001B[1;36m31\u001B[0m, \u001B[1;36m11\u001B[0m, \u001B[1;36m34\u001B[0m, \u001B[1;36m52\u001B[0m, \u001B[1;36m870658\u001B[0m\u001B[1m)\u001B[0m,\n",
"\u001B[2;32m│ \u001B[0m\u001B[33mname_embedding\u001B[0m=\u001B[3;35mNone\u001B[0m,\n",
"\u001B[2;32m│ \u001B[0m\u001B[33msummary\u001B[0m=\u001B[32m'Customer looking for a new pair of shoes'\u001B[0m\n",
"\u001B[1m)\u001B[0m\n"
]
},
"metadata": {},
@ -1072,7 +1072,9 @@
}
],
"source": [
"nl = await client.get_nodes_by_query('John')\n",
"from graphiti_core.search.search_config_recipes import NODE_HYBRID_SEARCH_RRF\n",
"\n",
"nl = await client._search('John', NODE_HYBRID_SEARCH_RRF)\n",
"\n",
"pretty_print(nl[0])\n",
"\n",
@ -1397,44 +1399,44 @@
"</pre>\n"
],
"text/plain": [
"\u001b[1m[\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1m{\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'uuid'\u001b[0m: \u001b[32m'199ec767d52c47d2a5965f3197b1c4d2'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'source_node_uuid'\u001b[0m: \u001b[32m'c4091c3ffc814f2c9017304361898585'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'target_node_uuid'\u001b[0m: \u001b[32m'b30e3ba27aa14f88895156331a435237'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'created_at'\u001b[0m: \u001b[1;35mdatetime.datetime\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m2024\u001b[0m, \u001b[1;36m8\u001b[0m, \u001b[1;36m31\u001b[0m, \u001b[1;36m11\u001b[0m, \u001b[1;36m36\u001b[0m, \u001b[1;36m42\u001b[0m, \u001b[1;36m827088\u001b[0m\u001b[1m)\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'name'\u001b[0m: \u001b[32m'PURCHASES'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'fact'\u001b[0m: \u001b[32m\"John purchased the Men's Couriers shoes but later decided to return them due to discomfort caused by his wide feet\"\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'episodes'\u001b[0m: \u001b[1m[\u001b[0m\u001b[32m'4c8afb4aa1b446899a85249df475bc66'\u001b[0m\u001b[1m]\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'expired_at'\u001b[0m: \u001b[1;35mdatetime.datetime\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m2024\u001b[0m, \u001b[1;36m8\u001b[0m, \u001b[1;36m31\u001b[0m, \u001b[1;36m11\u001b[0m, \u001b[1;36m38\u001b[0m, \u001b[1;36m14\u001b[0m, \u001b[1;36m818497\u001b[0m\u001b[1m)\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'valid_at'\u001b[0m: \u001b[1;35mdatetime.datetime\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m2024\u001b[0m, \u001b[1;36m7\u001b[0m, \u001b[1;36m30\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m5\u001b[0m, \u001b[33mtzinfo\u001b[0m=\u001b[1m<\u001b[0m\u001b[1;95mUTC\u001b[0m\u001b[1m>\u001b[0m\u001b[1m)\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'invalid_at'\u001b[0m: \u001b[3;35mNone\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1m}\u001b[0m,\n",
"\u001b[2;32m│ \u001b[0m\u001b[1m{\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'uuid'\u001b[0m: \u001b[32m'2a9cf189e19649c19ec127c4024cfe51'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'source_node_uuid'\u001b[0m: \u001b[32m'c4091c3ffc814f2c9017304361898585'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'target_node_uuid'\u001b[0m: \u001b[32m'77f8b23b74014a7f85fffa0067dbf815'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'created_at'\u001b[0m: \u001b[1;35mdatetime.datetime\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m2024\u001b[0m, \u001b[1;36m8\u001b[0m, \u001b[1;36m31\u001b[0m, \u001b[1;36m11\u001b[0m, \u001b[1;36m34\u001b[0m, \u001b[1;36m57\u001b[0m, \u001b[1;36m412667\u001b[0m\u001b[1m)\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'name'\u001b[0m: \u001b[32m'INTERESTED_IN'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'fact'\u001b[0m: \u001b[32m'John is looking for a new pair of shoes'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'episodes'\u001b[0m: \u001b[1m[\u001b[0m\u001b[32m'c2ebc79d2a204efb845be84b6dbf69d7'\u001b[0m\u001b[1m]\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'expired_at'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'valid_at'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'invalid_at'\u001b[0m: \u001b[3;35mNone\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1m}\u001b[0m,\n",
"\u001b[2;32m│ \u001b[0m\u001b[1m{\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'uuid'\u001b[0m: \u001b[32m'aa657e8bcb9446e19552f99a1c2299d8'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'source_node_uuid'\u001b[0m: \u001b[32m'c4091c3ffc814f2c9017304361898585'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'target_node_uuid'\u001b[0m: \u001b[32m'8b43988e689b437095c7e75aa1044490'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'created_at'\u001b[0m: \u001b[1;35mdatetime.datetime\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m2024\u001b[0m, \u001b[1;36m8\u001b[0m, \u001b[1;36m31\u001b[0m, \u001b[1;36m11\u001b[0m, \u001b[1;36m37\u001b[0m, \u001b[1;36m39\u001b[0m, \u001b[1;36m665400\u001b[0m\u001b[1m)\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'name'\u001b[0m: \u001b[32m'HAS_CHARACTERISTIC'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'fact'\u001b[0m: \u001b[32m'John has wide feet'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'episodes'\u001b[0m: \u001b[1m[\u001b[0m\u001b[32m'37c0e9ecaa424caea59854d1d8c2c756'\u001b[0m\u001b[1m]\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'expired_at'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'valid_at'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'invalid_at'\u001b[0m: \u001b[3;35mNone\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1m}\u001b[0m\n",
"\u001b[1m]\u001b[0m\n"
"\u001B[1m[\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1m{\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'uuid'\u001B[0m: \u001B[32m'199ec767d52c47d2a5965f3197b1c4d2'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'source_node_uuid'\u001B[0m: \u001B[32m'c4091c3ffc814f2c9017304361898585'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'target_node_uuid'\u001B[0m: \u001B[32m'b30e3ba27aa14f88895156331a435237'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'created_at'\u001B[0m: \u001B[1;35mdatetime.datetime\u001B[0m\u001B[1m(\u001B[0m\u001B[1;36m2024\u001B[0m, \u001B[1;36m8\u001B[0m, \u001B[1;36m31\u001B[0m, \u001B[1;36m11\u001B[0m, \u001B[1;36m36\u001B[0m, \u001B[1;36m42\u001B[0m, \u001B[1;36m827088\u001B[0m\u001B[1m)\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'name'\u001B[0m: \u001B[32m'PURCHASES'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'fact'\u001B[0m: \u001B[32m\"John purchased the Men's Couriers shoes but later decided to return them due to discomfort caused by his wide feet\"\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'episodes'\u001B[0m: \u001B[1m[\u001B[0m\u001B[32m'4c8afb4aa1b446899a85249df475bc66'\u001B[0m\u001B[1m]\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'expired_at'\u001B[0m: \u001B[1;35mdatetime.datetime\u001B[0m\u001B[1m(\u001B[0m\u001B[1;36m2024\u001B[0m, \u001B[1;36m8\u001B[0m, \u001B[1;36m31\u001B[0m, \u001B[1;36m11\u001B[0m, \u001B[1;36m38\u001B[0m, \u001B[1;36m14\u001B[0m, \u001B[1;36m818497\u001B[0m\u001B[1m)\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'valid_at'\u001B[0m: \u001B[1;35mdatetime.datetime\u001B[0m\u001B[1m(\u001B[0m\u001B[1;36m2024\u001B[0m, \u001B[1;36m7\u001B[0m, \u001B[1;36m30\u001B[0m, \u001B[1;36m0\u001B[0m, \u001B[1;36m5\u001B[0m, \u001B[33mtzinfo\u001B[0m=\u001B[1m<\u001B[0m\u001B[1;95mUTC\u001B[0m\u001B[1m>\u001B[0m\u001B[1m)\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'invalid_at'\u001B[0m: \u001B[3;35mNone\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1m}\u001B[0m,\n",
"\u001B[2;32m│ \u001B[0m\u001B[1m{\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'uuid'\u001B[0m: \u001B[32m'2a9cf189e19649c19ec127c4024cfe51'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'source_node_uuid'\u001B[0m: \u001B[32m'c4091c3ffc814f2c9017304361898585'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'target_node_uuid'\u001B[0m: \u001B[32m'77f8b23b74014a7f85fffa0067dbf815'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'created_at'\u001B[0m: \u001B[1;35mdatetime.datetime\u001B[0m\u001B[1m(\u001B[0m\u001B[1;36m2024\u001B[0m, \u001B[1;36m8\u001B[0m, \u001B[1;36m31\u001B[0m, \u001B[1;36m11\u001B[0m, \u001B[1;36m34\u001B[0m, \u001B[1;36m57\u001B[0m, \u001B[1;36m412667\u001B[0m\u001B[1m)\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'name'\u001B[0m: \u001B[32m'INTERESTED_IN'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'fact'\u001B[0m: \u001B[32m'John is looking for a new pair of shoes'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'episodes'\u001B[0m: \u001B[1m[\u001B[0m\u001B[32m'c2ebc79d2a204efb845be84b6dbf69d7'\u001B[0m\u001B[1m]\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'expired_at'\u001B[0m: \u001B[3;35mNone\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'valid_at'\u001B[0m: \u001B[3;35mNone\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'invalid_at'\u001B[0m: \u001B[3;35mNone\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1m}\u001B[0m,\n",
"\u001B[2;32m│ \u001B[0m\u001B[1m{\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'uuid'\u001B[0m: \u001B[32m'aa657e8bcb9446e19552f99a1c2299d8'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'source_node_uuid'\u001B[0m: \u001B[32m'c4091c3ffc814f2c9017304361898585'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'target_node_uuid'\u001B[0m: \u001B[32m'8b43988e689b437095c7e75aa1044490'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'created_at'\u001B[0m: \u001B[1;35mdatetime.datetime\u001B[0m\u001B[1m(\u001B[0m\u001B[1;36m2024\u001B[0m, \u001B[1;36m8\u001B[0m, \u001B[1;36m31\u001B[0m, \u001B[1;36m11\u001B[0m, \u001B[1;36m37\u001B[0m, \u001B[1;36m39\u001B[0m, \u001B[1;36m665400\u001B[0m\u001B[1m)\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'name'\u001B[0m: \u001B[32m'HAS_CHARACTERISTIC'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'fact'\u001B[0m: \u001B[32m'John has wide feet'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'episodes'\u001B[0m: \u001B[1m[\u001B[0m\u001B[32m'37c0e9ecaa424caea59854d1d8c2c756'\u001B[0m\u001B[1m]\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'expired_at'\u001B[0m: \u001B[3;35mNone\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'valid_at'\u001B[0m: \u001B[3;35mNone\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'invalid_at'\u001B[0m: \u001B[3;35mNone\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1m}\u001B[0m\n",
"\u001B[1m]\u001B[0m\n"
]
},
"metadata": {},
@ -1528,68 +1530,68 @@
"</pre>\n"
],
"text/plain": [
"\u001b[1m[\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1m{\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'uuid'\u001b[0m: \u001b[32m'199ec767d52c47d2a5965f3197b1c4d2'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'source_node_uuid'\u001b[0m: \u001b[32m'c4091c3ffc814f2c9017304361898585'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'target_node_uuid'\u001b[0m: \u001b[32m'b30e3ba27aa14f88895156331a435237'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'created_at'\u001b[0m: \u001b[1;35mdatetime.datetime\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m2024\u001b[0m, \u001b[1;36m8\u001b[0m, \u001b[1;36m31\u001b[0m, \u001b[1;36m11\u001b[0m, \u001b[1;36m36\u001b[0m, \u001b[1;36m42\u001b[0m, \u001b[1;36m827088\u001b[0m\u001b[1m)\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'name'\u001b[0m: \u001b[32m'PURCHASES'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'fact'\u001b[0m: \u001b[32m\"John purchased the Men's Couriers shoes but later decided to return them due to discomfort caused by his wide feet\"\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'episodes'\u001b[0m: \u001b[1m[\u001b[0m\u001b[32m'4c8afb4aa1b446899a85249df475bc66'\u001b[0m\u001b[1m]\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'expired_at'\u001b[0m: \u001b[1;35mdatetime.datetime\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m2024\u001b[0m, \u001b[1;36m8\u001b[0m, \u001b[1;36m31\u001b[0m, \u001b[1;36m11\u001b[0m, \u001b[1;36m38\u001b[0m, \u001b[1;36m14\u001b[0m, \u001b[1;36m818497\u001b[0m\u001b[1m)\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'valid_at'\u001b[0m: \u001b[1;35mdatetime.datetime\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m2024\u001b[0m, \u001b[1;36m7\u001b[0m, \u001b[1;36m30\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m5\u001b[0m, \u001b[33mtzinfo\u001b[0m=\u001b[1m<\u001b[0m\u001b[1;95mUTC\u001b[0m\u001b[39m>\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'invalid_at'\u001b[0m\u001b[39m: \u001b[0m\u001b[3;35mNone\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1;39m}\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1;39m{\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'uuid'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'2a9cf189e19649c19ec127c4024cfe51'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'source_node_uuid'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'c4091c3ffc814f2c9017304361898585'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'target_node_uuid'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'77f8b23b74014a7f85fffa0067dbf815'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'created_at'\u001b[0m\u001b[39m: \u001b[0m\u001b[1;35mdatetime.datetime\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m2024\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m8\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m31\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m11\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m34\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m57\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m412667\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'name'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'INTERESTED_IN'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'fact'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'John is looking for a new pair of shoes'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'episodes'\u001b[0m\u001b[39m: \u001b[0m\u001b[1;39m[\u001b[0m\u001b[32m'c2ebc79d2a204efb845be84b6dbf69d7'\u001b[0m\u001b[1;39m]\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'expired_at'\u001b[0m\u001b[39m: \u001b[0m\u001b[3;35mNone\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'valid_at'\u001b[0m\u001b[39m: \u001b[0m\u001b[3;35mNone\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'invalid_at'\u001b[0m\u001b[39m: \u001b[0m\u001b[3;35mNone\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1;39m}\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1;39m{\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'uuid'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'aa657e8bcb9446e19552f99a1c2299d8'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'source_node_uuid'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'c4091c3ffc814f2c9017304361898585'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'target_node_uuid'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'8b43988e689b437095c7e75aa1044490'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'created_at'\u001b[0m\u001b[39m: \u001b[0m\u001b[1;35mdatetime.datetime\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m2024\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m8\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m31\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m11\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m37\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m39\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m665400\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'name'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'HAS_CHARACTERISTIC'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'fact'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'John has wide feet'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'episodes'\u001b[0m\u001b[39m: \u001b[0m\u001b[1;39m[\u001b[0m\u001b[32m'37c0e9ecaa424caea59854d1d8c2c756'\u001b[0m\u001b[1;39m]\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'expired_at'\u001b[0m\u001b[39m: \u001b[0m\u001b[3;35mNone\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'valid_at'\u001b[0m\u001b[39m: \u001b[0m\u001b[3;35mNone\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'invalid_at'\u001b[0m\u001b[39m: \u001b[0m\u001b[3;35mNone\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1;39m}\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1;39m{\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'uuid'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'df1d2e82a40e40e1b3734c2298774a6b'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'source_node_uuid'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'c4091c3ffc814f2c9017304361898585'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'target_node_uuid'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'588989497641456fb33243f035731f98'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'created_at'\u001b[0m\u001b[39m: \u001b[0m\u001b[1;35mdatetime.datetime\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m2024\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m8\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m31\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m11\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m36\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m42\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m828745\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'name'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'LIKES'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'fact'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'John expresses that he likes the Basin Blue color for the shoes'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'episodes'\u001b[0m\u001b[39m: \u001b[0m\u001b[1;39m[\u001b[0m\u001b[32m'4c8afb4aa1b446899a85249df475bc66'\u001b[0m\u001b[1;39m]\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'expired_at'\u001b[0m\u001b[39m: \u001b[0m\u001b[3;35mNone\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'valid_at'\u001b[0m\u001b[39m: \u001b[0m\u001b[1;35mdatetime.datetime\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m2024\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m7\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m30\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m0\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m5\u001b[0m\u001b[39m, \u001b[0m\u001b[33mtzinfo\u001b[0m\u001b[39m=<UTC\u001b[0m\u001b[1m>\u001b[0m\u001b[1m)\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'invalid_at'\u001b[0m: \u001b[3;35mNone\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1m}\u001b[0m,\n",
"\u001b[2;32m│ \u001b[0m\u001b[1m{\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'uuid'\u001b[0m: \u001b[32m'6a19ae37d5074d808d4f951ab347e2b1'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'source_node_uuid'\u001b[0m: \u001b[32m'c4091c3ffc814f2c9017304361898585'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'target_node_uuid'\u001b[0m: \u001b[32m'fcea4a4539244cd28aac1bb11def0cab'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'created_at'\u001b[0m: \u001b[1;35mdatetime.datetime\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m2024\u001b[0m, \u001b[1;36m8\u001b[0m, \u001b[1;36m31\u001b[0m, \u001b[1;36m11\u001b[0m, \u001b[1;36m35\u001b[0m, \u001b[1;36m44\u001b[0m, \u001b[1;36m738829\u001b[0m\u001b[1m)\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'name'\u001b[0m: \u001b[32m'HAS_SHOE_SIZE'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'fact'\u001b[0m: \u001b[32m\"John's shoe size is 10\"\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'episodes'\u001b[0m: \u001b[1m[\u001b[0m\u001b[32m'6b41a387ca504a2686b636a20b5673a3'\u001b[0m\u001b[1m]\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'expired_at'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'valid_at'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'invalid_at'\u001b[0m: \u001b[3;35mNone\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1m}\u001b[0m\n",
"\u001b[1m]\u001b[0m\n"
"\u001B[1m[\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1m{\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'uuid'\u001B[0m: \u001B[32m'199ec767d52c47d2a5965f3197b1c4d2'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'source_node_uuid'\u001B[0m: \u001B[32m'c4091c3ffc814f2c9017304361898585'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'target_node_uuid'\u001B[0m: \u001B[32m'b30e3ba27aa14f88895156331a435237'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'created_at'\u001B[0m: \u001B[1;35mdatetime.datetime\u001B[0m\u001B[1m(\u001B[0m\u001B[1;36m2024\u001B[0m, \u001B[1;36m8\u001B[0m, \u001B[1;36m31\u001B[0m, \u001B[1;36m11\u001B[0m, \u001B[1;36m36\u001B[0m, \u001B[1;36m42\u001B[0m, \u001B[1;36m827088\u001B[0m\u001B[1m)\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'name'\u001B[0m: \u001B[32m'PURCHASES'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'fact'\u001B[0m: \u001B[32m\"John purchased the Men's Couriers shoes but later decided to return them due to discomfort caused by his wide feet\"\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'episodes'\u001B[0m: \u001B[1m[\u001B[0m\u001B[32m'4c8afb4aa1b446899a85249df475bc66'\u001B[0m\u001B[1m]\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'expired_at'\u001B[0m: \u001B[1;35mdatetime.datetime\u001B[0m\u001B[1m(\u001B[0m\u001B[1;36m2024\u001B[0m, \u001B[1;36m8\u001B[0m, \u001B[1;36m31\u001B[0m, \u001B[1;36m11\u001B[0m, \u001B[1;36m38\u001B[0m, \u001B[1;36m14\u001B[0m, \u001B[1;36m818497\u001B[0m\u001B[1m)\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'valid_at'\u001B[0m: \u001B[1;35mdatetime.datetime\u001B[0m\u001B[1m(\u001B[0m\u001B[1;36m2024\u001B[0m, \u001B[1;36m7\u001B[0m, \u001B[1;36m30\u001B[0m, \u001B[1;36m0\u001B[0m, \u001B[1;36m5\u001B[0m, \u001B[33mtzinfo\u001B[0m=\u001B[1m<\u001B[0m\u001B[1;95mUTC\u001B[0m\u001B[39m>\u001B[0m\u001B[1;39m)\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'invalid_at'\u001B[0m\u001B[39m: \u001B[0m\u001B[3;35mNone\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1;39m}\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1;39m{\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'uuid'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'2a9cf189e19649c19ec127c4024cfe51'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'source_node_uuid'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'c4091c3ffc814f2c9017304361898585'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'target_node_uuid'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'77f8b23b74014a7f85fffa0067dbf815'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'created_at'\u001B[0m\u001B[39m: \u001B[0m\u001B[1;35mdatetime.datetime\u001B[0m\u001B[1;39m(\u001B[0m\u001B[1;36m2024\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m8\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m31\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m11\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m34\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m57\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m412667\u001B[0m\u001B[1;39m)\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'name'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'INTERESTED_IN'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'fact'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'John is looking for a new pair of shoes'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'episodes'\u001B[0m\u001B[39m: \u001B[0m\u001B[1;39m[\u001B[0m\u001B[32m'c2ebc79d2a204efb845be84b6dbf69d7'\u001B[0m\u001B[1;39m]\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'expired_at'\u001B[0m\u001B[39m: \u001B[0m\u001B[3;35mNone\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'valid_at'\u001B[0m\u001B[39m: \u001B[0m\u001B[3;35mNone\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'invalid_at'\u001B[0m\u001B[39m: \u001B[0m\u001B[3;35mNone\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1;39m}\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1;39m{\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'uuid'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'aa657e8bcb9446e19552f99a1c2299d8'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'source_node_uuid'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'c4091c3ffc814f2c9017304361898585'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'target_node_uuid'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'8b43988e689b437095c7e75aa1044490'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'created_at'\u001B[0m\u001B[39m: \u001B[0m\u001B[1;35mdatetime.datetime\u001B[0m\u001B[1;39m(\u001B[0m\u001B[1;36m2024\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m8\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m31\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m11\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m37\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m39\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m665400\u001B[0m\u001B[1;39m)\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'name'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'HAS_CHARACTERISTIC'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'fact'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'John has wide feet'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'episodes'\u001B[0m\u001B[39m: \u001B[0m\u001B[1;39m[\u001B[0m\u001B[32m'37c0e9ecaa424caea59854d1d8c2c756'\u001B[0m\u001B[1;39m]\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'expired_at'\u001B[0m\u001B[39m: \u001B[0m\u001B[3;35mNone\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'valid_at'\u001B[0m\u001B[39m: \u001B[0m\u001B[3;35mNone\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'invalid_at'\u001B[0m\u001B[39m: \u001B[0m\u001B[3;35mNone\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1;39m}\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1;39m{\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'uuid'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'df1d2e82a40e40e1b3734c2298774a6b'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'source_node_uuid'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'c4091c3ffc814f2c9017304361898585'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'target_node_uuid'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'588989497641456fb33243f035731f98'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'created_at'\u001B[0m\u001B[39m: \u001B[0m\u001B[1;35mdatetime.datetime\u001B[0m\u001B[1;39m(\u001B[0m\u001B[1;36m2024\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m8\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m31\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m11\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m36\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m42\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m828745\u001B[0m\u001B[1;39m)\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'name'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'LIKES'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'fact'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'John expresses that he likes the Basin Blue color for the shoes'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'episodes'\u001B[0m\u001B[39m: \u001B[0m\u001B[1;39m[\u001B[0m\u001B[32m'4c8afb4aa1b446899a85249df475bc66'\u001B[0m\u001B[1;39m]\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'expired_at'\u001B[0m\u001B[39m: \u001B[0m\u001B[3;35mNone\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'valid_at'\u001B[0m\u001B[39m: \u001B[0m\u001B[1;35mdatetime.datetime\u001B[0m\u001B[1;39m(\u001B[0m\u001B[1;36m2024\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m7\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m30\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m0\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m5\u001B[0m\u001B[39m, \u001B[0m\u001B[33mtzinfo\u001B[0m\u001B[39m=<UTC\u001B[0m\u001B[1m>\u001B[0m\u001B[1m)\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'invalid_at'\u001B[0m: \u001B[3;35mNone\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1m}\u001B[0m,\n",
"\u001B[2;32m│ \u001B[0m\u001B[1m{\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'uuid'\u001B[0m: \u001B[32m'6a19ae37d5074d808d4f951ab347e2b1'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'source_node_uuid'\u001B[0m: \u001B[32m'c4091c3ffc814f2c9017304361898585'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'target_node_uuid'\u001B[0m: \u001B[32m'fcea4a4539244cd28aac1bb11def0cab'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'created_at'\u001B[0m: \u001B[1;35mdatetime.datetime\u001B[0m\u001B[1m(\u001B[0m\u001B[1;36m2024\u001B[0m, \u001B[1;36m8\u001B[0m, \u001B[1;36m31\u001B[0m, \u001B[1;36m11\u001B[0m, \u001B[1;36m35\u001B[0m, \u001B[1;36m44\u001B[0m, \u001B[1;36m738829\u001B[0m\u001B[1m)\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'name'\u001B[0m: \u001B[32m'HAS_SHOE_SIZE'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'fact'\u001B[0m: \u001B[32m\"John's shoe size is 10\"\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'episodes'\u001B[0m: \u001B[1m[\u001B[0m\u001B[32m'6b41a387ca504a2686b636a20b5673a3'\u001B[0m\u001B[1m]\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'expired_at'\u001B[0m: \u001B[3;35mNone\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'valid_at'\u001B[0m: \u001B[3;35mNone\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'invalid_at'\u001B[0m: \u001B[3;35mNone\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1m}\u001B[0m\n",
"\u001B[1m]\u001B[0m\n"
]
},
"metadata": {},
@ -1683,68 +1685,68 @@
"</pre>\n"
],
"text/plain": [
"\u001b[1m[\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1m{\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'uuid'\u001b[0m: \u001b[32m'e4cd07dfddc84072985aa8cf4e1dc01b'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'source_node_uuid'\u001b[0m: \u001b[32m'c4091c3ffc814f2c9017304361898585'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'target_node_uuid'\u001b[0m: \u001b[32m'ccd7590b3601440f9ae816507da79130'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'created_at'\u001b[0m: \u001b[1;35mdatetime.datetime\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m2024\u001b[0m, \u001b[1;36m8\u001b[0m, \u001b[1;36m31\u001b[0m, \u001b[1;36m11\u001b[0m, \u001b[1;36m35\u001b[0m, \u001b[1;36m44\u001b[0m, \u001b[1;36m738205\u001b[0m\u001b[1m)\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'name'\u001b[0m: \u001b[32m'IS_ALLERGIC_TO'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'fact'\u001b[0m: \u001b[32m'John is allergic to wool'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'episodes'\u001b[0m: \u001b[1m[\u001b[0m\u001b[32m'6b41a387ca504a2686b636a20b5673a3'\u001b[0m\u001b[1m]\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'expired_at'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'valid_at'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'invalid_at'\u001b[0m: \u001b[3;35mNone\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1m}\u001b[0m,\n",
"\u001b[2;32m│ \u001b[0m\u001b[1m{\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'uuid'\u001b[0m: \u001b[32m'aa657e8bcb9446e19552f99a1c2299d8'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'source_node_uuid'\u001b[0m: \u001b[32m'c4091c3ffc814f2c9017304361898585'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'target_node_uuid'\u001b[0m: \u001b[32m'8b43988e689b437095c7e75aa1044490'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'created_at'\u001b[0m: \u001b[1;35mdatetime.datetime\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m2024\u001b[0m, \u001b[1;36m8\u001b[0m, \u001b[1;36m31\u001b[0m, \u001b[1;36m11\u001b[0m, \u001b[1;36m37\u001b[0m, \u001b[1;36m39\u001b[0m, \u001b[1;36m665400\u001b[0m\u001b[1m)\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'name'\u001b[0m: \u001b[32m'HAS_CHARACTERISTIC'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'fact'\u001b[0m: \u001b[32m'John has wide feet'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'episodes'\u001b[0m: \u001b[1m[\u001b[0m\u001b[32m'37c0e9ecaa424caea59854d1d8c2c756'\u001b[0m\u001b[1m]\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'expired_at'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'valid_at'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'invalid_at'\u001b[0m: \u001b[3;35mNone\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1m}\u001b[0m,\n",
"\u001b[2;32m│ \u001b[0m\u001b[1m{\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'uuid'\u001b[0m: \u001b[32m'6a19ae37d5074d808d4f951ab347e2b1'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'source_node_uuid'\u001b[0m: \u001b[32m'c4091c3ffc814f2c9017304361898585'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'target_node_uuid'\u001b[0m: \u001b[32m'fcea4a4539244cd28aac1bb11def0cab'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'created_at'\u001b[0m: \u001b[1;35mdatetime.datetime\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m2024\u001b[0m, \u001b[1;36m8\u001b[0m, \u001b[1;36m31\u001b[0m, \u001b[1;36m11\u001b[0m, \u001b[1;36m35\u001b[0m, \u001b[1;36m44\u001b[0m, \u001b[1;36m738829\u001b[0m\u001b[1m)\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'name'\u001b[0m: \u001b[32m'HAS_SHOE_SIZE'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'fact'\u001b[0m: \u001b[32m\"John's shoe size is 10\"\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'episodes'\u001b[0m: \u001b[1m[\u001b[0m\u001b[32m'6b41a387ca504a2686b636a20b5673a3'\u001b[0m\u001b[1m]\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'expired_at'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'valid_at'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'invalid_at'\u001b[0m: \u001b[3;35mNone\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1m}\u001b[0m,\n",
"\u001b[2;32m│ \u001b[0m\u001b[1m{\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'uuid'\u001b[0m: \u001b[32m'518d5ef539004ceca7b9b9a750e22bd4'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'source_node_uuid'\u001b[0m: \u001b[32m'd362076a1e584227bcf51239914e39ad'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'target_node_uuid'\u001b[0m: \u001b[32m'c4091c3ffc814f2c9017304361898585'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'created_at'\u001b[0m: \u001b[1;35mdatetime.datetime\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m2024\u001b[0m, \u001b[1;36m8\u001b[0m, \u001b[1;36m31\u001b[0m, \u001b[1;36m11\u001b[0m, \u001b[1;36m37\u001b[0m, \u001b[1;36m15\u001b[0m, \u001b[1;36m423989\u001b[0m\u001b[1m)\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'name'\u001b[0m: \u001b[32m'ASSISTS'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'fact'\u001b[0m: \u001b[32m'SalesBot offers assistance to John'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'episodes'\u001b[0m: \u001b[1m[\u001b[0m\u001b[32m'7087342bfe86423bb702060fa9cc612b'\u001b[0m\u001b[1m]\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'expired_at'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'valid_at'\u001b[0m: \u001b[1;35mdatetime.datetime\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m2024\u001b[0m, \u001b[1;36m8\u001b[0m, \u001b[1;36m20\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m2\u001b[0m, \u001b[33mtzinfo\u001b[0m=\u001b[1m<\u001b[0m\u001b[1;95mUTC\u001b[0m\u001b[1m>\u001b[0m\u001b[1m)\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'invalid_at'\u001b[0m: \u001b[3;35mNone\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1m}\u001b[0m,\n",
"\u001b[2;32m│ \u001b[0m\u001b[1m{\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'uuid'\u001b[0m: \u001b[32m'2a9cf189e19649c19ec127c4024cfe51'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'source_node_uuid'\u001b[0m: \u001b[32m'c4091c3ffc814f2c9017304361898585'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'target_node_uuid'\u001b[0m: \u001b[32m'77f8b23b74014a7f85fffa0067dbf815'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'created_at'\u001b[0m: \u001b[1;35mdatetime.datetime\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m2024\u001b[0m, \u001b[1;36m8\u001b[0m, \u001b[1;36m31\u001b[0m, \u001b[1;36m11\u001b[0m, \u001b[1;36m34\u001b[0m, \u001b[1;36m57\u001b[0m, \u001b[1;36m412667\u001b[0m\u001b[1m)\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'name'\u001b[0m: \u001b[32m'INTERESTED_IN'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'fact'\u001b[0m: \u001b[32m'John is looking for a new pair of shoes'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'episodes'\u001b[0m: \u001b[1m[\u001b[0m\u001b[32m'c2ebc79d2a204efb845be84b6dbf69d7'\u001b[0m\u001b[1m]\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'expired_at'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'valid_at'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'invalid_at'\u001b[0m: \u001b[3;35mNone\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1m}\u001b[0m\n",
"\u001b[1m]\u001b[0m\n"
"\u001B[1m[\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1m{\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'uuid'\u001B[0m: \u001B[32m'e4cd07dfddc84072985aa8cf4e1dc01b'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'source_node_uuid'\u001B[0m: \u001B[32m'c4091c3ffc814f2c9017304361898585'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'target_node_uuid'\u001B[0m: \u001B[32m'ccd7590b3601440f9ae816507da79130'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'created_at'\u001B[0m: \u001B[1;35mdatetime.datetime\u001B[0m\u001B[1m(\u001B[0m\u001B[1;36m2024\u001B[0m, \u001B[1;36m8\u001B[0m, \u001B[1;36m31\u001B[0m, \u001B[1;36m11\u001B[0m, \u001B[1;36m35\u001B[0m, \u001B[1;36m44\u001B[0m, \u001B[1;36m738205\u001B[0m\u001B[1m)\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'name'\u001B[0m: \u001B[32m'IS_ALLERGIC_TO'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'fact'\u001B[0m: \u001B[32m'John is allergic to wool'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'episodes'\u001B[0m: \u001B[1m[\u001B[0m\u001B[32m'6b41a387ca504a2686b636a20b5673a3'\u001B[0m\u001B[1m]\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'expired_at'\u001B[0m: \u001B[3;35mNone\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'valid_at'\u001B[0m: \u001B[3;35mNone\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'invalid_at'\u001B[0m: \u001B[3;35mNone\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1m}\u001B[0m,\n",
"\u001B[2;32m│ \u001B[0m\u001B[1m{\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'uuid'\u001B[0m: \u001B[32m'aa657e8bcb9446e19552f99a1c2299d8'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'source_node_uuid'\u001B[0m: \u001B[32m'c4091c3ffc814f2c9017304361898585'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'target_node_uuid'\u001B[0m: \u001B[32m'8b43988e689b437095c7e75aa1044490'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'created_at'\u001B[0m: \u001B[1;35mdatetime.datetime\u001B[0m\u001B[1m(\u001B[0m\u001B[1;36m2024\u001B[0m, \u001B[1;36m8\u001B[0m, \u001B[1;36m31\u001B[0m, \u001B[1;36m11\u001B[0m, \u001B[1;36m37\u001B[0m, \u001B[1;36m39\u001B[0m, \u001B[1;36m665400\u001B[0m\u001B[1m)\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'name'\u001B[0m: \u001B[32m'HAS_CHARACTERISTIC'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'fact'\u001B[0m: \u001B[32m'John has wide feet'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'episodes'\u001B[0m: \u001B[1m[\u001B[0m\u001B[32m'37c0e9ecaa424caea59854d1d8c2c756'\u001B[0m\u001B[1m]\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'expired_at'\u001B[0m: \u001B[3;35mNone\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'valid_at'\u001B[0m: \u001B[3;35mNone\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'invalid_at'\u001B[0m: \u001B[3;35mNone\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1m}\u001B[0m,\n",
"\u001B[2;32m│ \u001B[0m\u001B[1m{\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'uuid'\u001B[0m: \u001B[32m'6a19ae37d5074d808d4f951ab347e2b1'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'source_node_uuid'\u001B[0m: \u001B[32m'c4091c3ffc814f2c9017304361898585'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'target_node_uuid'\u001B[0m: \u001B[32m'fcea4a4539244cd28aac1bb11def0cab'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'created_at'\u001B[0m: \u001B[1;35mdatetime.datetime\u001B[0m\u001B[1m(\u001B[0m\u001B[1;36m2024\u001B[0m, \u001B[1;36m8\u001B[0m, \u001B[1;36m31\u001B[0m, \u001B[1;36m11\u001B[0m, \u001B[1;36m35\u001B[0m, \u001B[1;36m44\u001B[0m, \u001B[1;36m738829\u001B[0m\u001B[1m)\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'name'\u001B[0m: \u001B[32m'HAS_SHOE_SIZE'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'fact'\u001B[0m: \u001B[32m\"John's shoe size is 10\"\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'episodes'\u001B[0m: \u001B[1m[\u001B[0m\u001B[32m'6b41a387ca504a2686b636a20b5673a3'\u001B[0m\u001B[1m]\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'expired_at'\u001B[0m: \u001B[3;35mNone\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'valid_at'\u001B[0m: \u001B[3;35mNone\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'invalid_at'\u001B[0m: \u001B[3;35mNone\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1m}\u001B[0m,\n",
"\u001B[2;32m│ \u001B[0m\u001B[1m{\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'uuid'\u001B[0m: \u001B[32m'518d5ef539004ceca7b9b9a750e22bd4'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'source_node_uuid'\u001B[0m: \u001B[32m'd362076a1e584227bcf51239914e39ad'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'target_node_uuid'\u001B[0m: \u001B[32m'c4091c3ffc814f2c9017304361898585'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'created_at'\u001B[0m: \u001B[1;35mdatetime.datetime\u001B[0m\u001B[1m(\u001B[0m\u001B[1;36m2024\u001B[0m, \u001B[1;36m8\u001B[0m, \u001B[1;36m31\u001B[0m, \u001B[1;36m11\u001B[0m, \u001B[1;36m37\u001B[0m, \u001B[1;36m15\u001B[0m, \u001B[1;36m423989\u001B[0m\u001B[1m)\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'name'\u001B[0m: \u001B[32m'ASSISTS'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'fact'\u001B[0m: \u001B[32m'SalesBot offers assistance to John'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'episodes'\u001B[0m: \u001B[1m[\u001B[0m\u001B[32m'7087342bfe86423bb702060fa9cc612b'\u001B[0m\u001B[1m]\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'expired_at'\u001B[0m: \u001B[3;35mNone\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'valid_at'\u001B[0m: \u001B[1;35mdatetime.datetime\u001B[0m\u001B[1m(\u001B[0m\u001B[1;36m2024\u001B[0m, \u001B[1;36m8\u001B[0m, \u001B[1;36m20\u001B[0m, \u001B[1;36m0\u001B[0m, \u001B[1;36m2\u001B[0m, \u001B[33mtzinfo\u001B[0m=\u001B[1m<\u001B[0m\u001B[1;95mUTC\u001B[0m\u001B[1m>\u001B[0m\u001B[1m)\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'invalid_at'\u001B[0m: \u001B[3;35mNone\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1m}\u001B[0m,\n",
"\u001B[2;32m│ \u001B[0m\u001B[1m{\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'uuid'\u001B[0m: \u001B[32m'2a9cf189e19649c19ec127c4024cfe51'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'source_node_uuid'\u001B[0m: \u001B[32m'c4091c3ffc814f2c9017304361898585'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'target_node_uuid'\u001B[0m: \u001B[32m'77f8b23b74014a7f85fffa0067dbf815'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'created_at'\u001B[0m: \u001B[1;35mdatetime.datetime\u001B[0m\u001B[1m(\u001B[0m\u001B[1;36m2024\u001B[0m, \u001B[1;36m8\u001B[0m, \u001B[1;36m31\u001B[0m, \u001B[1;36m11\u001B[0m, \u001B[1;36m34\u001B[0m, \u001B[1;36m57\u001B[0m, \u001B[1;36m412667\u001B[0m\u001B[1m)\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'name'\u001B[0m: \u001B[32m'INTERESTED_IN'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'fact'\u001B[0m: \u001B[32m'John is looking for a new pair of shoes'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'episodes'\u001B[0m: \u001B[1m[\u001B[0m\u001B[32m'c2ebc79d2a204efb845be84b6dbf69d7'\u001B[0m\u001B[1m]\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'expired_at'\u001B[0m: \u001B[3;35mNone\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'valid_at'\u001B[0m: \u001B[3;35mNone\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'invalid_at'\u001B[0m: \u001B[3;35mNone\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1m}\u001B[0m\n",
"\u001B[1m]\u001B[0m\n"
]
},
"metadata": {},
@ -1838,68 +1840,68 @@
"</pre>\n"
],
"text/plain": [
"\u001b[1m[\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1m{\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'uuid'\u001b[0m: \u001b[32m'1055fb8279af4c4c8c3fb78350d610d0'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'source_node_uuid'\u001b[0m: \u001b[32m'8b43988e689b437095c7e75aa1044490'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'target_node_uuid'\u001b[0m: \u001b[32m'b30e3ba27aa14f88895156331a435237'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'created_at'\u001b[0m: \u001b[1;35mdatetime.datetime\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m2024\u001b[0m, \u001b[1;36m8\u001b[0m, \u001b[1;36m31\u001b[0m, \u001b[1;36m11\u001b[0m, \u001b[1;36m37\u001b[0m, \u001b[1;36m39\u001b[0m, \u001b[1;36m664102\u001b[0m\u001b[1m)\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'name'\u001b[0m: \u001b[32m'CAUSES_DISCOMFORT'\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'fact'\u001b[0m: \u001b[32m\"John's wide feet cause discomfort with the Men's Couriers shoes\"\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'episodes'\u001b[0m: \u001b[1m[\u001b[0m\u001b[32m'37c0e9ecaa424caea59854d1d8c2c756'\u001b[0m\u001b[1m]\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'expired_at'\u001b[0m: \u001b[3;35mNone\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'valid_at'\u001b[0m: \u001b[1;35mdatetime.datetime\u001b[0m\u001b[1m(\u001b[0m\u001b[1;36m2024\u001b[0m, \u001b[1;36m8\u001b[0m, \u001b[1;36m20\u001b[0m, \u001b[1;36m0\u001b[0m, \u001b[1;36m1\u001b[0m, \u001b[33mtzinfo\u001b[0m=\u001b[1m<\u001b[0m\u001b[1;95mUTC\u001b[0m\u001b[39m>\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'invalid_at'\u001b[0m\u001b[39m: \u001b[0m\u001b[3;35mNone\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1;39m}\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1;39m{\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'uuid'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'199ec767d52c47d2a5965f3197b1c4d2'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'source_node_uuid'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'c4091c3ffc814f2c9017304361898585'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'target_node_uuid'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'b30e3ba27aa14f88895156331a435237'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'created_at'\u001b[0m\u001b[39m: \u001b[0m\u001b[1;35mdatetime.datetime\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m2024\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m8\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m31\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m11\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m36\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m42\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m827088\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'name'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'PURCHASES'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'fact'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m\"John purchased the Men's Couriers shoes but later decided to return them due to discomfort caused by his wide feet\"\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'episodes'\u001b[0m\u001b[39m: \u001b[0m\u001b[1;39m[\u001b[0m\u001b[32m'4c8afb4aa1b446899a85249df475bc66'\u001b[0m\u001b[1;39m]\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'expired_at'\u001b[0m\u001b[39m: \u001b[0m\u001b[1;35mdatetime.datetime\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m2024\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m8\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m31\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m11\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m38\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m14\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m818497\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'valid_at'\u001b[0m\u001b[39m: \u001b[0m\u001b[1;35mdatetime.datetime\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m2024\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m7\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m30\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m0\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m5\u001b[0m\u001b[39m, \u001b[0m\u001b[33mtzinfo\u001b[0m\u001b[39m=<UTC>\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'invalid_at'\u001b[0m\u001b[39m: \u001b[0m\u001b[3;35mNone\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1;39m}\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1;39m{\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'uuid'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'2a9cf189e19649c19ec127c4024cfe51'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'source_node_uuid'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'c4091c3ffc814f2c9017304361898585'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'target_node_uuid'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'77f8b23b74014a7f85fffa0067dbf815'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'created_at'\u001b[0m\u001b[39m: \u001b[0m\u001b[1;35mdatetime.datetime\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m2024\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m8\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m31\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m11\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m34\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m57\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m412667\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'name'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'INTERESTED_IN'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'fact'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'John is looking for a new pair of shoes'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'episodes'\u001b[0m\u001b[39m: \u001b[0m\u001b[1;39m[\u001b[0m\u001b[32m'c2ebc79d2a204efb845be84b6dbf69d7'\u001b[0m\u001b[1;39m]\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'expired_at'\u001b[0m\u001b[39m: \u001b[0m\u001b[3;35mNone\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'valid_at'\u001b[0m\u001b[39m: \u001b[0m\u001b[3;35mNone\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'invalid_at'\u001b[0m\u001b[39m: \u001b[0m\u001b[3;35mNone\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1;39m}\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1;39m{\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'uuid'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'4721330c8f2b45e69e07f520773f8794'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'source_node_uuid'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'd362076a1e584227bcf51239914e39ad'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'target_node_uuid'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'ed9688ba1e9940ff87d3e26bcf5d7ae4'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'created_at'\u001b[0m\u001b[39m: \u001b[0m\u001b[1;35mdatetime.datetime\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m2024\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m8\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m31\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m11\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m36\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m12\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m540437\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'name'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'RECOMMENDS'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'fact'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m\"SalesBot recommends Men's Couriers shoes to the customer\"\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'episodes'\u001b[0m\u001b[39m: \u001b[0m\u001b[1;39m[\u001b[0m\u001b[32m'e7c29d5d38854cac801bc07d236240a8'\u001b[0m\u001b[1;39m]\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'expired_at'\u001b[0m\u001b[39m: \u001b[0m\u001b[3;35mNone\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'valid_at'\u001b[0m\u001b[39m: \u001b[0m\u001b[3;35mNone\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'invalid_at'\u001b[0m\u001b[39m: \u001b[0m\u001b[3;35mNone\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1;39m}\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1;39m{\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'uuid'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'df1d2e82a40e40e1b3734c2298774a6b'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'source_node_uuid'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'c4091c3ffc814f2c9017304361898585'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'target_node_uuid'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'588989497641456fb33243f035731f98'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'created_at'\u001b[0m\u001b[39m: \u001b[0m\u001b[1;35mdatetime.datetime\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m2024\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m8\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m31\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m11\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m36\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m42\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m828745\u001b[0m\u001b[1;39m)\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'name'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'LIKES'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'fact'\u001b[0m\u001b[39m: \u001b[0m\u001b[32m'John expresses that he likes the Basin Blue color for the shoes'\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'episodes'\u001b[0m\u001b[39m: \u001b[0m\u001b[1;39m[\u001b[0m\u001b[32m'4c8afb4aa1b446899a85249df475bc66'\u001b[0m\u001b[1;39m]\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'expired_at'\u001b[0m\u001b[39m: \u001b[0m\u001b[3;35mNone\u001b[0m\u001b[39m,\u001b[0m\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'valid_at'\u001b[0m\u001b[39m: \u001b[0m\u001b[1;35mdatetime.datetime\u001b[0m\u001b[1;39m(\u001b[0m\u001b[1;36m2024\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m7\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m30\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m0\u001b[0m\u001b[39m, \u001b[0m\u001b[1;36m5\u001b[0m\u001b[39m, \u001b[0m\u001b[33mtzinfo\u001b[0m\u001b[39m=<UTC\u001b[0m\u001b[1m>\u001b[0m\u001b[1m)\u001b[0m,\n",
"\u001b[2;32m│ │ \u001b[0m\u001b[32m'invalid_at'\u001b[0m: \u001b[3;35mNone\u001b[0m\n",
"\u001b[2;32m│ \u001b[0m\u001b[1m}\u001b[0m\n",
"\u001b[1m]\u001b[0m\n"
"\u001B[1m[\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1m{\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'uuid'\u001B[0m: \u001B[32m'1055fb8279af4c4c8c3fb78350d610d0'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'source_node_uuid'\u001B[0m: \u001B[32m'8b43988e689b437095c7e75aa1044490'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'target_node_uuid'\u001B[0m: \u001B[32m'b30e3ba27aa14f88895156331a435237'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'created_at'\u001B[0m: \u001B[1;35mdatetime.datetime\u001B[0m\u001B[1m(\u001B[0m\u001B[1;36m2024\u001B[0m, \u001B[1;36m8\u001B[0m, \u001B[1;36m31\u001B[0m, \u001B[1;36m11\u001B[0m, \u001B[1;36m37\u001B[0m, \u001B[1;36m39\u001B[0m, \u001B[1;36m664102\u001B[0m\u001B[1m)\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'name'\u001B[0m: \u001B[32m'CAUSES_DISCOMFORT'\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'fact'\u001B[0m: \u001B[32m\"John's wide feet cause discomfort with the Men's Couriers shoes\"\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'episodes'\u001B[0m: \u001B[1m[\u001B[0m\u001B[32m'37c0e9ecaa424caea59854d1d8c2c756'\u001B[0m\u001B[1m]\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'expired_at'\u001B[0m: \u001B[3;35mNone\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'valid_at'\u001B[0m: \u001B[1;35mdatetime.datetime\u001B[0m\u001B[1m(\u001B[0m\u001B[1;36m2024\u001B[0m, \u001B[1;36m8\u001B[0m, \u001B[1;36m20\u001B[0m, \u001B[1;36m0\u001B[0m, \u001B[1;36m1\u001B[0m, \u001B[33mtzinfo\u001B[0m=\u001B[1m<\u001B[0m\u001B[1;95mUTC\u001B[0m\u001B[39m>\u001B[0m\u001B[1;39m)\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'invalid_at'\u001B[0m\u001B[39m: \u001B[0m\u001B[3;35mNone\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1;39m}\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1;39m{\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'uuid'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'199ec767d52c47d2a5965f3197b1c4d2'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'source_node_uuid'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'c4091c3ffc814f2c9017304361898585'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'target_node_uuid'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'b30e3ba27aa14f88895156331a435237'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'created_at'\u001B[0m\u001B[39m: \u001B[0m\u001B[1;35mdatetime.datetime\u001B[0m\u001B[1;39m(\u001B[0m\u001B[1;36m2024\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m8\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m31\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m11\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m36\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m42\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m827088\u001B[0m\u001B[1;39m)\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'name'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'PURCHASES'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'fact'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m\"John purchased the Men's Couriers shoes but later decided to return them due to discomfort caused by his wide feet\"\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'episodes'\u001B[0m\u001B[39m: \u001B[0m\u001B[1;39m[\u001B[0m\u001B[32m'4c8afb4aa1b446899a85249df475bc66'\u001B[0m\u001B[1;39m]\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'expired_at'\u001B[0m\u001B[39m: \u001B[0m\u001B[1;35mdatetime.datetime\u001B[0m\u001B[1;39m(\u001B[0m\u001B[1;36m2024\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m8\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m31\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m11\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m38\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m14\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m818497\u001B[0m\u001B[1;39m)\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'valid_at'\u001B[0m\u001B[39m: \u001B[0m\u001B[1;35mdatetime.datetime\u001B[0m\u001B[1;39m(\u001B[0m\u001B[1;36m2024\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m7\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m30\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m0\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m5\u001B[0m\u001B[39m, \u001B[0m\u001B[33mtzinfo\u001B[0m\u001B[39m=<UTC>\u001B[0m\u001B[1;39m)\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'invalid_at'\u001B[0m\u001B[39m: \u001B[0m\u001B[3;35mNone\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1;39m}\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1;39m{\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'uuid'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'2a9cf189e19649c19ec127c4024cfe51'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'source_node_uuid'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'c4091c3ffc814f2c9017304361898585'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'target_node_uuid'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'77f8b23b74014a7f85fffa0067dbf815'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'created_at'\u001B[0m\u001B[39m: \u001B[0m\u001B[1;35mdatetime.datetime\u001B[0m\u001B[1;39m(\u001B[0m\u001B[1;36m2024\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m8\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m31\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m11\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m34\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m57\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m412667\u001B[0m\u001B[1;39m)\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'name'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'INTERESTED_IN'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'fact'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'John is looking for a new pair of shoes'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'episodes'\u001B[0m\u001B[39m: \u001B[0m\u001B[1;39m[\u001B[0m\u001B[32m'c2ebc79d2a204efb845be84b6dbf69d7'\u001B[0m\u001B[1;39m]\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'expired_at'\u001B[0m\u001B[39m: \u001B[0m\u001B[3;35mNone\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'valid_at'\u001B[0m\u001B[39m: \u001B[0m\u001B[3;35mNone\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'invalid_at'\u001B[0m\u001B[39m: \u001B[0m\u001B[3;35mNone\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1;39m}\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1;39m{\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'uuid'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'4721330c8f2b45e69e07f520773f8794'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'source_node_uuid'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'd362076a1e584227bcf51239914e39ad'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'target_node_uuid'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'ed9688ba1e9940ff87d3e26bcf5d7ae4'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'created_at'\u001B[0m\u001B[39m: \u001B[0m\u001B[1;35mdatetime.datetime\u001B[0m\u001B[1;39m(\u001B[0m\u001B[1;36m2024\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m8\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m31\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m11\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m36\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m12\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m540437\u001B[0m\u001B[1;39m)\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'name'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'RECOMMENDS'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'fact'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m\"SalesBot recommends Men's Couriers shoes to the customer\"\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'episodes'\u001B[0m\u001B[39m: \u001B[0m\u001B[1;39m[\u001B[0m\u001B[32m'e7c29d5d38854cac801bc07d236240a8'\u001B[0m\u001B[1;39m]\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'expired_at'\u001B[0m\u001B[39m: \u001B[0m\u001B[3;35mNone\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'valid_at'\u001B[0m\u001B[39m: \u001B[0m\u001B[3;35mNone\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'invalid_at'\u001B[0m\u001B[39m: \u001B[0m\u001B[3;35mNone\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1;39m}\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1;39m{\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'uuid'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'df1d2e82a40e40e1b3734c2298774a6b'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'source_node_uuid'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'c4091c3ffc814f2c9017304361898585'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'target_node_uuid'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'588989497641456fb33243f035731f98'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'created_at'\u001B[0m\u001B[39m: \u001B[0m\u001B[1;35mdatetime.datetime\u001B[0m\u001B[1;39m(\u001B[0m\u001B[1;36m2024\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m8\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m31\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m11\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m36\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m42\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m828745\u001B[0m\u001B[1;39m)\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'name'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'LIKES'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'fact'\u001B[0m\u001B[39m: \u001B[0m\u001B[32m'John expresses that he likes the Basin Blue color for the shoes'\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'episodes'\u001B[0m\u001B[39m: \u001B[0m\u001B[1;39m[\u001B[0m\u001B[32m'4c8afb4aa1b446899a85249df475bc66'\u001B[0m\u001B[1;39m]\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'expired_at'\u001B[0m\u001B[39m: \u001B[0m\u001B[3;35mNone\u001B[0m\u001B[39m,\u001B[0m\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'valid_at'\u001B[0m\u001B[39m: \u001B[0m\u001B[1;35mdatetime.datetime\u001B[0m\u001B[1;39m(\u001B[0m\u001B[1;36m2024\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m7\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m30\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m0\u001B[0m\u001B[39m, \u001B[0m\u001B[1;36m5\u001B[0m\u001B[39m, \u001B[0m\u001B[33mtzinfo\u001B[0m\u001B[39m=<UTC\u001B[0m\u001B[1m>\u001B[0m\u001B[1m)\u001B[0m,\n",
"\u001B[2;32m│ │ \u001B[0m\u001B[32m'invalid_at'\u001B[0m: \u001B[3;35mNone\u001B[0m\n",
"\u001B[2;32m│ \u001B[0m\u001B[1m}\u001B[0m\n",
"\u001B[1m]\u001B[0m\n"
]
},
"metadata": {},

View file

@ -45,7 +45,7 @@
"import sys\n",
"import uuid\n",
"from contextlib import suppress\n",
"from datetime import datetime\n",
"from datetime import datetime, timezone\n",
"from pathlib import Path\n",
"from typing import Annotated\n",
"\n",
@ -191,7 +191,7 @@
" content=str({k: v for k, v in product.items() if k != 'images'}),\n",
" source_description='ManyBirds products',\n",
" source=EpisodeType.json,\n",
" reference_time=datetime.now(),\n",
" reference_time=datetime.now(timezone.utc),\n",
" )\n",
" for i, product in enumerate(products)\n",
" ]\n",
@ -217,23 +217,25 @@
"metadata": {},
"outputs": [],
"source": [
"from graphiti_core.search.search_config_recipes import NODE_HYBRID_SEARCH_RRF\n",
"\n",
"user_name = 'jess'\n",
"\n",
"await client.add_episode(\n",
" name='User Creation',\n",
" episode_body=(f'{user_name} is interested in buying a pair of shoes'),\n",
" source=EpisodeType.text,\n",
" reference_time=datetime.now(),\n",
" reference_time=datetime.now(timezone.utc),\n",
" source_description='SalesBot',\n",
")\n",
"\n",
"# let's get Jess's node uuid\n",
"nl = await client.get_nodes_by_query(user_name)\n",
"nl = await client._search(user_name, NODE_HYBRID_SEARCH_RRF)\n",
"\n",
"user_node_uuid = nl[0].uuid\n",
"\n",
"# and the ManyBirds node uuid\n",
"nl = await client.get_nodes_by_query('ManyBirds')\n",
"nl = await client._search('ManyBirds', NODE_HYBRID_SEARCH_RRF)\n",
"manybirds_node_uuid = nl[0].uuid"
]
},
@ -390,7 +392,7 @@
" name='Chatbot Response',\n",
" episode_body=f\"{state['user_name']}: {state['messages'][-1]}\\nSalesBot: {response.content}\",\n",
" source=EpisodeType.message,\n",
" reference_time=datetime.now(),\n",
" reference_time=datetime.now(timezone.utc),\n",
" source_description='Chatbot',\n",
" )\n",
" )\n",
@ -443,7 +445,6 @@
"graph_builder.add_conditional_edges('agent', should_continue, {'continue': 'tools', 'end': END})\n",
"graph_builder.add_edge('tools', 'agent')\n",
"\n",
"\n",
"graph = graph_builder.compile(checkpointer=memory)"
]
},

View file

@ -35,8 +35,6 @@ from graphiti_core.search.search_config import DEFAULT_SEARCH_LIMIT, SearchResul
from graphiti_core.search.search_config_recipes import (
EDGE_HYBRID_SEARCH_NODE_DISTANCE,
EDGE_HYBRID_SEARCH_RRF,
NODE_HYBRID_SEARCH_NODE_DISTANCE,
NODE_HYBRID_SEARCH_RRF,
)
from graphiti_core.search.search_utils import (
RELEVANT_SCHEMA_LIMIT,
@ -318,7 +316,7 @@ class Graphiti:
now = datetime.now(timezone.utc)
previous_episodes = await self.retrieve_episodes(
reference_time, last_n=3, group_ids=[group_id]
reference_time, last_n=RELEVANT_SCHEMA_LIMIT, group_ids=[group_id]
)
episode = EpisodicNode(
name=name,
@ -343,13 +341,14 @@ class Graphiti:
*[node.generate_name_embedding(self.embedder) for node in extracted_nodes]
)
# Resolve extracted nodes with nodes already in the graph and extract facts
# Find relevant nodes already in the graph
existing_nodes_lists: list[list[EntityNode]] = list(
await asyncio.gather(
*[get_relevant_nodes([node], self.driver) for node in extracted_nodes]
*[get_relevant_nodes(self.driver, [node]) for node in extracted_nodes]
)
)
# Resolve extracted nodes with nodes already in the graph and extract facts
logger.debug(f'Extracted nodes: {[(n.name, n.uuid) for n in extracted_nodes]}')
(mentioned_nodes, uuid_map), extracted_edges = await asyncio.gather(
@ -693,67 +692,6 @@ class Graphiti:
bfs_origin_node_uuids,
)
async def get_nodes_by_query(
self,
query: str,
center_node_uuid: str | None = None,
group_ids: list[str] | None = None,
limit: int = DEFAULT_SEARCH_LIMIT,
) -> list[EntityNode]:
"""
Retrieve nodes from the graph database based on a text query.
This method performs a hybrid search using both text-based and
embedding-based approaches to find relevant nodes.
Parameters
----------
query : str
The text query to search for in the graph
center_node_uuid: str, optional
Facts will be reranked based on proximity to this node.
group_ids : list[str | None] | None, optional
The graph partitions to return data from.
limit : int | None, optional
The maximum number of results to return per search method.
If None, a default limit will be applied.
Returns
-------
list[EntityNode]
A list of EntityNode objects that match the search criteria.
Notes
-----
This method uses the following steps:
1. Generates an embedding for the input query using the LLM client's embedder.
2. Calls the hybrid_node_search function with both the text query and its embedding.
3. The hybrid search combines fulltext search and vector similarity search
to find the most relevant nodes.
The method leverages the LLM client's embedding capabilities to enhance
the search with semantic similarity matching. The 'limit' parameter is applied
to each individual search method before results are combined and deduplicated.
If not specified, a default limit (defined in the search functions) will be used.
"""
search_config = (
NODE_HYBRID_SEARCH_RRF if center_node_uuid is None else NODE_HYBRID_SEARCH_NODE_DISTANCE
)
search_config.limit = limit
nodes = (
await search(
self.driver,
self.embedder,
self.cross_encoder,
query,
group_ids,
search_config,
center_node_uuid,
)
).nodes
return nodes
async def get_episode_mentions(self, episode_uuids: list[str]) -> SearchResults:
episodes = await EpisodicNode.get_by_uuids(self.driver, episode_uuids)
@ -781,8 +719,8 @@ class Graphiti:
self.llm_client,
[source_node, target_node],
[
await get_relevant_nodes([source_node], self.driver),
await get_relevant_nodes([target_node], self.driver),
await get_relevant_nodes(self.driver, [source_node]),
await get_relevant_nodes(self.driver, [target_node]),
],
)

View file

@ -146,7 +146,7 @@ async def edge_fulltext_search(
return []
cypher_query = Query("""
CALL db.index.fulltext.queryRelationships("edge_name_and_fact", $query)
CALL db.index.fulltext.queryRelationships("edge_name_and_fact", $query, {limit: $limit})
YIELD relationship AS rel, score
MATCH (n:Entity)-[r {uuid: rel.uuid}]->(m:Entity)
WHERE ($source_uuid IS NULL OR n.uuid IN [$source_uuid, $target_uuid])
@ -296,7 +296,7 @@ async def node_fulltext_search(
records, _, _ = await driver.execute_query(
"""
CALL db.index.fulltext.queryNodes("node_name_and_summary", $query)
CALL db.index.fulltext.queryNodes("node_name_and_summary", $query, {limit: $limit})
YIELD node AS n, score
RETURN
n.uuid AS uuid,
@ -407,7 +407,7 @@ async def community_fulltext_search(
records, _, _ = await driver.execute_query(
"""
CALL db.index.fulltext.queryNodes("community_name", $query)
CALL db.index.fulltext.queryNodes("community_name", $query, {limit: $limit})
YIELD node AS comm, score
RETURN
comm.uuid AS uuid,
@ -539,8 +539,8 @@ async def hybrid_node_search(
async def get_relevant_nodes(
nodes: list[EntityNode],
driver: AsyncDriver,
nodes: list[EntityNode],
) -> list[EntityNode]:
"""
Retrieve relevant nodes based on the provided list of EntityNodes.
@ -573,6 +573,7 @@ async def get_relevant_nodes(
driver,
[node.group_id for node in nodes],
)
return relevant_nodes

View file

@ -169,7 +169,7 @@ async def dedupe_nodes_bulk(
existing_nodes_chunks: list[list[EntityNode]] = list(
await asyncio.gather(
*[get_relevant_nodes(node_chunk, driver) for node_chunk in node_chunks]
*[get_relevant_nodes(driver, node_chunk) for node_chunk in node_chunks]
)
)

View file

@ -305,7 +305,7 @@ async def update_community(
community.name = new_name
if is_new:
community_edge = (build_community_edges([entity], community, datetime.now()))[0]
community_edge = (build_community_edges([entity], community, datetime.now(timezone.utc)))[0]
await community_edge.save(driver)
await community.generate_name_embedding(embedder)

View file

@ -98,14 +98,10 @@ async def test_graphiti_init():
await graphiti.add_triplet(alice_node, entity_edge, bob_node)
episodes = await graphiti.retrieve_episodes(datetime.now(timezone.utc), group_ids=None)
episode_uuids = [episode.uuid for episode in episodes]
results = await graphiti._search(
"Emily: I can't log in",
COMBINED_HYBRID_SEARCH_CROSS_ENCODER,
bfs_origin_node_uuids=episode_uuids,
group_ids=None,
group_ids=['test'],
)
pretty_results = {
'edges': [edge.fact for edge in results.edges],