* chore: Initial draft of stubs * updates * chore: Add comments and mock implementation of the add_episode method * chore: Add success and error callbacks * stub updates --------- Co-authored-by: prestonrasmussen <prasmuss15@gmail.com>
45 lines
1 KiB
Python
45 lines
1 KiB
Python
from typing import Tuple
|
|
|
|
from core.edges import EpisodicEdge, SemanticEdge, Edge
|
|
from core.nodes import SemanticNode, EpisodicNode, Node
|
|
|
|
|
|
async def bfs(
|
|
nodes: list[Node], edges: list[Edge], k: int
|
|
) -> Tuple[list[SemanticNode], list[SemanticEdge]]: ...
|
|
|
|
|
|
# Breadth first search over nodes and edges with desired depth
|
|
|
|
|
|
async def similarity_search(
|
|
query: str, embedder
|
|
) -> Tuple[list[SemanticNode], list[SemanticEdge]]: ...
|
|
|
|
|
|
# vector similarity search over embedded facts
|
|
|
|
|
|
async def fulltext_search(
|
|
query: str,
|
|
) -> Tuple[list[SemanticNode], list[SemanticEdge]]: ...
|
|
|
|
|
|
# fulltext search over names and summary
|
|
|
|
|
|
def build_episodic_edges(
|
|
semantic_nodes: list[SemanticNode], episode: EpisodicNode
|
|
) -> list[EpisodicEdge]:
|
|
edges: list[EpisodicEdge] = []
|
|
|
|
for node in semantic_nodes:
|
|
edges.append(
|
|
EpisodicEdge(
|
|
source_node=episode,
|
|
target_node=node,
|
|
transaction_from=episode.transaction_from,
|
|
)
|
|
)
|
|
|
|
return edges
|