Fix poetry deps
This commit is contained in:
parent
84cab02c34
commit
ee67af5562
3 changed files with 45 additions and 4 deletions
|
|
@ -1,3 +1,4 @@
|
||||||
from .api.v1.add.add import add
|
from .api.v1.add.add import add
|
||||||
from .api.v1.cognify.cognify import cognify
|
from .api.v1.cognify.cognify import cognify
|
||||||
from .api.v1.list_datasets.list_datasets import list_datasets
|
from .api.v1.list_datasets.list_datasets import list_datasets
|
||||||
|
from .api.v1.search import search
|
||||||
|
|
|
||||||
|
|
@ -1,10 +1,13 @@
|
||||||
""" This module contains the search function that is used to search for nodes in the graph."""
|
""" This module contains the search function that is used to search for nodes in the graph."""
|
||||||
from enum import Enum, auto
|
from enum import Enum, auto
|
||||||
from typing import Dict, Any, Callable, List
|
from typing import Dict, Any, Callable, List
|
||||||
|
|
||||||
|
from cognitive_architecture.infrastructure.databases.graph.get_graph_client import get_graph_client
|
||||||
from cognitive_architecture.modules.search.graph.search_adjacent import search_adjacent
|
from cognitive_architecture.modules.search.graph.search_adjacent import search_adjacent
|
||||||
from cognitive_architecture.modules.search.vector.search_similarity import search_similarity
|
from cognitive_architecture.modules.search.vector.search_similarity import search_similarity
|
||||||
from cognitive_architecture.modules.search.graph.search_categories import search_categories
|
from cognitive_architecture.modules.search.graph.search_categories import search_categories
|
||||||
from cognitive_architecture.modules.search.graph.search_neighbour import search_neighbour
|
from cognitive_architecture.modules.search.graph.search_neighbour import search_neighbour
|
||||||
|
from cognitive_architecture.shared.data_models import GraphDBType
|
||||||
|
|
||||||
|
|
||||||
class SearchType(Enum):
|
class SearchType(Enum):
|
||||||
|
|
@ -14,7 +17,7 @@ class SearchType(Enum):
|
||||||
NEIGHBOR = auto()
|
NEIGHBOR = auto()
|
||||||
|
|
||||||
|
|
||||||
def complex_search(graph, query_params: Dict[SearchType, Dict[str, Any]]) -> List:
|
async def complex_search(graph, query_params: Dict[SearchType, Dict[str, Any]]) -> List:
|
||||||
search_functions: Dict[SearchType, Callable] = {
|
search_functions: Dict[SearchType, Callable] = {
|
||||||
SearchType.ADJACENT: search_adjacent,
|
SearchType.ADJACENT: search_adjacent,
|
||||||
SearchType.SIMILARITY: search_similarity,
|
SearchType.SIMILARITY: search_similarity,
|
||||||
|
|
@ -24,10 +27,40 @@ def complex_search(graph, query_params: Dict[SearchType, Dict[str, Any]]) -> Lis
|
||||||
|
|
||||||
results = set()
|
results = set()
|
||||||
|
|
||||||
|
# Create a list to hold all the coroutine objects
|
||||||
|
search_tasks = []
|
||||||
|
|
||||||
for search_type, params in query_params.items():
|
for search_type, params in query_params.items():
|
||||||
search_func = search_functions.get(search_type)
|
search_func = search_functions.get(search_type)
|
||||||
if search_func:
|
if search_func:
|
||||||
search_result = search_func(graph, **params)
|
# Schedule the coroutine for execution and store the task
|
||||||
results.update(search_result)
|
task = search_func(graph, **params)
|
||||||
|
search_tasks.append(task)
|
||||||
|
|
||||||
|
# Use asyncio.gather to run all scheduled tasks concurrently
|
||||||
|
search_results = await asyncio.gather(*search_tasks)
|
||||||
|
|
||||||
|
# Update the results set with the results from all tasks
|
||||||
|
for search_result in search_results:
|
||||||
|
results.update(search_result)
|
||||||
|
|
||||||
return list(results)
|
return list(results)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
import asyncio
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
query_params = {
|
||||||
|
SearchType.SIMILARITY: {'query': 'your search query here'}
|
||||||
|
}
|
||||||
|
async def main():
|
||||||
|
graph_client = get_graph_client(GraphDBType.NETWORKX)
|
||||||
|
|
||||||
|
await graph_client.load_graph_from_file()
|
||||||
|
graph = graph_client.graph
|
||||||
|
results = await complex_search(graph, query_params)
|
||||||
|
print(results)
|
||||||
|
|
||||||
|
asyncio.run(main())
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,14 @@
|
||||||
|
|
||||||
from cognitive_architecture.infrastructure.llm.get_llm_client import get_llm_client
|
from cognitive_architecture.infrastructure.llm.get_llm_client import get_llm_client
|
||||||
|
from cognitive_architecture.modules.cognify.graph.add_node_connections import extract_node_descriptions
|
||||||
|
|
||||||
async def search_similarity(query ,unique_layer_uuids):
|
|
||||||
|
async def search_similarity(query:str ,graph):
|
||||||
|
|
||||||
|
node_descriptions = await extract_node_descriptions(graph.nodes(data = True))
|
||||||
|
# print(node_descriptions)
|
||||||
|
|
||||||
|
unique_layer_uuids = set(node["layer_decomposition_uuid"] for node in node_descriptions)
|
||||||
|
|
||||||
client = get_llm_client()
|
client = get_llm_client()
|
||||||
out = []
|
out = []
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue