diff --git a/.github/workflows/test_code_graph_example.yml b/.github/workflows/test_code_graph_example.yml
index 47c36c467..3a017de51 100644
--- a/.github/workflows/test_code_graph_example.yml
+++ b/.github/workflows/test_code_graph_example.yml
@@ -15,7 +15,7 @@ jobs:
uses: ./.github/workflows/reusable_python_example.yml
with:
example-location: ./examples/python/code_graph_example.py
- arguments: "--repo_path ./evals"
+ arguments: "--repo_path ./cognee/tasks/graph"
secrets:
OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
LLM_API_KEY: ${{ secrets.OPENAI_API_KEY }}
diff --git a/Dockerfile b/Dockerfile
index ffb37c98e..fac4c2707 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -5,11 +5,11 @@ ARG POETRY_EXTRAS="\
# API \
api \
# Storage & Databases \
-filesystem postgres weaviate qdrant neo4j falkordb milvus kuzu \
+filesystem postgres weaviate qdrant neo4j falkordb milvus kuzu chromadb \
# Notebooks & Interactive Environments \
notebook \
# LLM & AI Frameworks \
-langchain llama-index gemini huggingface ollama mistral groq \
+langchain llama-index gemini huggingface ollama mistral groq anthropic \
# Evaluation & Monitoring \
deepeval evals posthog \
# Graph Processing & Code Analysis \
diff --git a/README.md b/README.md
index 8aecb27cf..fdbf9567a 100644
--- a/README.md
+++ b/README.md
@@ -113,7 +113,8 @@ if __name__ == '__main__':
```
Example output:
```
- # ({'id': UUID('bc338a39-64d6-549a-acec-da60846dd90d'), 'updated_at': datetime.datetime(2024, 11, 21, 12, 23, 1, 211808, tzinfo=datetime.timezone.utc), 'name': 'natural language processing', 'description': 'An interdisciplinary subfield of computer science and information retrieval.'}, {'relationship_name': 'is_a_subfield_of', 'source_node_id': UUID('bc338a39-64d6-549a-acec-da60846dd90d'), 'target_node_id': UUID('6218dbab-eb6a-5759-a864-b3419755ffe0'), 'updated_at': datetime.datetime(2024, 11, 21, 12, 23, 15, 473137, tzinfo=datetime.timezone.utc)}, {'id': UUID('6218dbab-eb6a-5759-a864-b3419755ffe0'), 'updated_at': datetime.datetime(2024, 11, 21, 12, 23, 1, 211808, tzinfo=datetime.timezone.utc), 'name': 'computer science', 'description': 'The study of computation and information processing.'})
+ Natural Language Processing (NLP) is a cross-disciplinary and interdisciplinary field that involves computer science and information retrieval. It focuses on the interaction between computers and human language, enabling machines to understand and process natural language.
+
```
Graph visualization:
@@ -132,10 +133,18 @@ For more advanced usage, have a look at our do
## Demos
-What is AI memory:
+1. What is AI memory:
[Learn about cognee](https://github.com/user-attachments/assets/8b2a0050-5ec4-424c-b417-8269971503f0)
+2. Simple GraphRAG demo
+
+[Simple GraphRAG demo](https://github.com/user-attachments/assets/d80b0776-4eb9-4b8e-aa22-3691e2d44b8f)
+
+3. cognee with Ollama
+
+[cognee with local models](https://github.com/user-attachments/assets/8621d3e8-ecb8-4860-afb2-5594f2ee17db)
+
## Code of Conduct
diff --git a/cognee-mcp/src/server.py b/cognee-mcp/src/server.py
index bab785c8e..491bd699d 100755
--- a/cognee-mcp/src/server.py
+++ b/cognee-mcp/src/server.py
@@ -1,10 +1,11 @@
import asyncio
import json
import os
+import sys
import cognee
from cognee.shared.logging_utils import get_logger, get_log_file_location
import importlib.util
-from contextlib import redirect_stderr, redirect_stdout
+from contextlib import redirect_stdout
# from PIL import Image as PILImage
import mcp.types as types
@@ -90,56 +91,55 @@ async def list_tools() -> list[types.Tool]:
@mcp.call_tool()
async def call_tools(name: str, arguments: dict) -> list[types.TextContent]:
try:
- with open(os.devnull, "w") as fnull:
- with redirect_stdout(fnull), redirect_stderr(fnull):
- log_file = get_log_file_location()
+ # NOTE: MCP uses stdout to communicate, we must redirect all output
+ # going to stdout ( like the print function ) to stderr.
+ with redirect_stdout(sys.stderr):
+ log_file = get_log_file_location()
- if name == "cognify":
- asyncio.create_task(
- cognify(
- text=arguments["text"],
- graph_model_file=arguments.get("graph_model_file"),
- graph_model_name=arguments.get("graph_model_name"),
- )
+ if name == "cognify":
+ asyncio.create_task(
+ cognify(
+ text=arguments["text"],
+ graph_model_file=arguments.get("graph_model_file"),
+ graph_model_name=arguments.get("graph_model_name"),
)
+ )
- text = (
- f"Background process launched due to MCP timeout limitations.\n"
- f"Average completion time is around 4 minutes.\n"
- f"For current cognify status you can check the log file at: {log_file}"
+ text = (
+ f"Background process launched due to MCP timeout limitations.\n"
+ f"Average completion time is around 4 minutes.\n"
+ f"For current cognify status you can check the log file at: {log_file}"
+ )
+
+ return [
+ types.TextContent(
+ type="text",
+ text=text,
)
+ ]
+ if name == "codify":
+ asyncio.create_task(codify(arguments.get("repo_path")))
- return [
- types.TextContent(
- type="text",
- text=text,
- )
- ]
- if name == "codify":
- asyncio.create_task(codify(arguments.get("repo_path")))
+ text = (
+ f"Background process launched due to MCP timeout limitations.\n"
+ f"Average completion time is around 4 minutes.\n"
+ f"For current codify status you can check the log file at: {log_file}"
+ )
- text = (
- f"Background process launched due to MCP timeout limitations.\n"
- f"Average completion time is around 4 minutes.\n"
- f"For current codify status you can check the log file at: {log_file}"
+ return [
+ types.TextContent(
+ type="text",
+ text=text,
)
+ ]
+ elif name == "search":
+ search_results = await search(arguments["search_query"], arguments["search_type"])
- return [
- types.TextContent(
- type="text",
- text=text,
- )
- ]
- elif name == "search":
- search_results = await search(
- arguments["search_query"], arguments["search_type"]
- )
+ return [types.TextContent(type="text", text=search_results)]
+ elif name == "prune":
+ await prune()
- return [types.TextContent(type="text", text=search_results)]
- elif name == "prune":
- await prune()
-
- return [types.TextContent(type="text", text="Pruned")]
+ return [types.TextContent(type="text", text="Pruned")]
except Exception as e:
logger.error(f"Error calling tool '{name}': {str(e)}")
return [types.TextContent(type="text", text=f"Error calling tool '{name}': {str(e)}")]
@@ -147,45 +147,56 @@ async def call_tools(name: str, arguments: dict) -> list[types.TextContent]:
async def cognify(text: str, graph_model_file: str = None, graph_model_name: str = None) -> str:
"""Build knowledge graph from the input text"""
- logger.info("Cognify process starting.")
- if graph_model_file and graph_model_name:
- graph_model = load_class(graph_model_file, graph_model_name)
- else:
- graph_model = KnowledgeGraph
+ # NOTE: MCP uses stdout to communicate, we must redirect all output
+ # going to stdout ( like the print function ) to stderr.
+ # As cognify is an async background job the output had to be redirected again.
+ with redirect_stdout(sys.stderr):
+ logger.info("Cognify process starting.")
+ if graph_model_file and graph_model_name:
+ graph_model = load_class(graph_model_file, graph_model_name)
+ else:
+ graph_model = KnowledgeGraph
- await cognee.add(text)
+ await cognee.add(text)
- try:
- await cognee.cognify(graph_model=graph_model)
- logger.info("Cognify process finished.")
- except Exception as e:
- logger.error("Cognify process failed.")
- raise ValueError(f"Failed to cognify: {str(e)}")
+ try:
+ await cognee.cognify(graph_model=graph_model)
+ logger.info("Cognify process finished.")
+ except Exception as e:
+ logger.error("Cognify process failed.")
+ raise ValueError(f"Failed to cognify: {str(e)}")
async def codify(repo_path: str):
- logger.info("Codify process starting.")
- results = []
- async for result in run_code_graph_pipeline(repo_path, False):
- results.append(result)
- logger.info(result)
- if all(results):
- logger.info("Codify process finished succesfully.")
- else:
- logger.info("Codify process failed.")
+ # NOTE: MCP uses stdout to communicate, we must redirect all output
+ # going to stdout ( like the print function ) to stderr.
+ # As codify is an async background job the output had to be redirected again.
+ with redirect_stdout(sys.stderr):
+ logger.info("Codify process starting.")
+ results = []
+ async for result in run_code_graph_pipeline(repo_path, False):
+ results.append(result)
+ logger.info(result)
+ if all(results):
+ logger.info("Codify process finished succesfully.")
+ else:
+ logger.info("Codify process failed.")
async def search(search_query: str, search_type: str) -> str:
"""Search the knowledge graph"""
- search_results = await cognee.search(
- query_type=SearchType[search_type.upper()], query_text=search_query
- )
+ # NOTE: MCP uses stdout to communicate, we must redirect all output
+ # going to stdout ( like the print function ) to stderr.
+ with redirect_stdout(sys.stderr):
+ search_results = await cognee.search(
+ query_type=SearchType[search_type.upper()], query_text=search_query
+ )
- if search_type.upper() == "CODE":
- return json.dumps(search_results, cls=JSONEncoder)
- else:
- results = retrieved_edges_to_string(search_results)
- return results
+ if search_type.upper() == "CODE":
+ return json.dumps(search_results, cls=JSONEncoder)
+ else:
+ results = retrieved_edges_to_string(search_results)
+ return results
async def prune():
@@ -198,7 +209,7 @@ async def main():
try:
from mcp.server.stdio import stdio_server
- logger.info("Starting Cognee MCP server...")
+ logger.info("Cognee MCP server started...")
async with stdio_server() as (read_stream, write_stream):
await mcp.run(
@@ -215,7 +226,8 @@ async def main():
raise_exceptions=True,
)
- logger.info("Cognee MCP server started.")
+ logger.info("Cognee MCP server closed.")
+
except Exception as e:
logger.error(f"Server failed to start: {str(e)}", exc_info=True)
raise
diff --git a/cognee/infrastructure/files/utils/get_file_metadata.py b/cognee/infrastructure/files/utils/get_file_metadata.py
index 4bce29f60..e5d884c60 100644
--- a/cognee/infrastructure/files/utils/get_file_metadata.py
+++ b/cognee/infrastructure/files/utils/get_file_metadata.py
@@ -21,7 +21,7 @@ def get_file_metadata(file: BinaryIO) -> FileMetadata:
file_type = guess_file_type(file)
file_path = file.name
- file_name = file_path.split("/")[-1].split(".")[0] if file_path else None
+ file_name = str(file_path).split("/")[-1].split(".")[0] if file_path else None
return FileMetadata(
name=file_name,
diff --git a/cognee/modules/ingestion/classify.py b/cognee/modules/ingestion/classify.py
index 8c428cbb9..dd52df86a 100644
--- a/cognee/modules/ingestion/classify.py
+++ b/cognee/modules/ingestion/classify.py
@@ -11,7 +11,7 @@ def classify(data: Union[str, BinaryIO], filename: str = None):
return TextData(data)
if isinstance(data, BufferedReader) or isinstance(data, SpooledTemporaryFile):
- return BinaryData(data, data.name.split("/")[-1] if data.name else filename)
+ return BinaryData(data, str(data.name).split("/")[-1] if data.name else filename)
raise IngestionError(
message=f"Type of data sent to classify(data: Union[str, BinaryIO) not supported: {type(data)}"
diff --git a/cognee/shared/logging_utils.py b/cognee/shared/logging_utils.py
index f4b6141a8..2a96c6f8c 100644
--- a/cognee/shared/logging_utils.py
+++ b/cognee/shared/logging_utils.py
@@ -69,7 +69,7 @@ class PlainFileHandler(logging.FileHandler):
logger_name = record.msg.get("logger", record.name)
# Format timestamp
- timestamp = datetime.now().strftime("%Y-%m-%dT%H:%M:%S.%fZ")
+ timestamp = datetime.now().strftime(get_timestamp_format())
# Create the log entry
log_entry = f"{timestamp} [{record.levelname.ljust(8)}] {message}{context_str} [{logger_name}]\n"
@@ -226,7 +226,7 @@ def setup_logging(log_level=None, name=None):
structlog.stdlib.add_logger_name,
structlog.stdlib.add_log_level,
structlog.stdlib.PositionalArgumentsFormatter(),
- structlog.processors.TimeStamper(fmt="iso"),
+ structlog.processors.TimeStamper(fmt=get_timestamp_format(), utc=True),
structlog.processors.StackInfoRenderer(),
exception_handler, # Add our custom exception handler
structlog.processors.UnicodeDecoder(),
@@ -288,9 +288,18 @@ def setup_logging(log_level=None, name=None):
stream_handler.setFormatter(console_formatter)
stream_handler.setLevel(log_level)
+ # Check if we already have a log file path from the environment
+ # NOTE: environment variable must be used here as it allows us to
+ # log to a single file with a name based on a timestamp in a multiprocess setting.
+ # Without it, we would have a separate log file for every process.
+ log_file_path = os.environ.get("LOG_FILE_NAME")
+ if not log_file_path:
+ # Create a new log file name with the cognee start time
+ start_time = datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
+ log_file_path = os.path.join(LOGS_DIR, f"{start_time}.log")
+ os.environ["LOG_FILE_NAME"] = log_file_path
+
# Create a file handler that uses our custom PlainFileHandler
- current_time = datetime.now().strftime("%Y-%m-%d_%H-%M-%S")
- log_file_path = os.path.join(LOGS_DIR, f"{current_time}.log")
file_handler = PlainFileHandler(log_file_path, encoding="utf-8")
file_handler.setLevel(DEBUG)
@@ -328,3 +337,23 @@ def get_log_file_location():
for handler in root_logger.handlers:
if isinstance(handler, logging.FileHandler):
return handler.baseFilename
+
+
+def get_timestamp_format():
+ # NOTE: Some users have complained that Cognee crashes when trying to get microsecond value
+ # Added handler to not use microseconds if users can't access it
+ logger = structlog.get_logger()
+ try:
+ # We call datetime.now() here to test if microseconds are supported.
+ # If they are not supported a ValueError will be raised
+ datetime.now().strftime("%Y-%m-%dT%H:%M:%S.%f")
+ return "%Y-%m-%dT%H:%M:%S.%f"
+ except Exception as e:
+ logger.debug(f"Exception caught: {e}")
+ logger.debug(
+ "Could not use microseconds for the logging timestamp, defaulting to use hours minutes and seconds only"
+ )
+ # We call datetime.now() here to test if won't break.
+ datetime.now().strftime("%Y-%m-%dT%H:%M:%S")
+ # We return the timestamp format without microseconds as they are not supported
+ return "%Y-%m-%dT%H:%M:%S"
diff --git a/docker-compose.yml b/docker-compose.yml
index c075cf7c5..75c76d542 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -22,19 +22,23 @@ services:
cpus: "2.0"
memory: 8GB
- frontend:
- container_name: frontend
- build:
- context: ./cognee-frontend
- dockerfile: Dockerfile
- volumes:
- - ./cognee-frontend/src:/app/src
- - ./cognee-frontend/public:/app/public
- ports:
- - 3000:3000
- # - 9229:9229 # Debugging
- networks:
- - cognee-network
+# NOTE: Frontend is a work in progress and is not intended to be used by users yet.
+# If you want to use Cognee with a UI environment you can run the cognee-gui.py script or
+# integrate the Cognee MCP Server to Cursor / Claude Desktop / Visual Studio Code ( through Cline/Roo )
+
+# frontend:
+# container_name: frontend
+# build:
+# context: ./cognee-frontend
+# dockerfile: Dockerfile
+# volumes:
+# - ./cognee-frontend/src:/app/src
+# - ./cognee-frontend/public:/app/public
+# ports:
+# - 3000:3000
+# # - 9229:9229 # Debugging
+# networks:
+# - cognee-network
neo4j:
image: neo4j:latest
diff --git a/examples/python/code_graph_example.py b/examples/python/code_graph_example.py
index bffe95e1b..6a0745f01 100644
--- a/examples/python/code_graph_example.py
+++ b/examples/python/code_graph_example.py
@@ -1,5 +1,7 @@
import argparse
import asyncio
+import cognee
+from cognee import SearchType
from cognee.shared.logging_utils import get_logger, ERROR
from cognee.api.v1.cognify.code_graph_pipeline import run_code_graph_pipeline
@@ -10,6 +12,13 @@ async def main(repo_path, include_docs):
async for run_status in run_code_graph_pipeline(repo_path, include_docs=include_docs):
run_status = run_status
+ # Test CODE search
+ search_results = await cognee.search(query_type=SearchType.CODE, query_text="test")
+ assert len(search_results) != 0, "The search results list is empty."
+ print("\n\nSearch results are:\n")
+ for result in search_results:
+ print(f"{result}\n")
+
return run_status
diff --git a/notebooks/github_graph_visualization.html b/notebooks/github_graph_visualization.html
new file mode 100644
index 000000000..04930ecc2
--- /dev/null
+++ b/notebooks/github_graph_visualization.html
@@ -0,0 +1,128 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/notebooks/ontology_demo.ipynb b/notebooks/ontology_demo.ipynb
new file mode 100644
index 000000000..81731775c
--- /dev/null
+++ b/notebooks/ontology_demo.ipynb
@@ -0,0 +1,1577 @@
+{
+ "cells": [
+ {
+ "metadata": {},
+ "cell_type": "markdown",
+ "source": [
+ "# Understanding Ontologies with Cognee\n",
+ "\n",
+ "This notebook demonstrates how to work with ontologies in scientific research using the Cognee framework. We'll explore how ontologies can enhance our understanding and querying of scientific papers.\n",
+ "\n",
+ "## What is an Ontology?\n",
+ "\n",
+ "An ontology is a formal representation of knowledge that defines:\n",
+ "- Concepts within a domain\n",
+ "- Relationships between concepts\n",
+ "- Properties and attributes\n",
+ "- Rules and constraints\n",
+ "\n",
+ "Key terms:\n",
+ "- **Classes**: Categories or types (e.g., Disease, Symptom)\n",
+ "- **Instances**: Specific examples of classes (e.g., Type 2 Diabetes)\n",
+ "- **Properties**: Relationships between classes/instances (e.g., hasSymptom)\n",
+ "- **Axioms**: Logical statements defining relationships"
+ ],
+ "id": "25cf0a40e669a70"
+ },
+ {
+ "metadata": {},
+ "cell_type": "markdown",
+ "source": [
+ "## Setup\n",
+ "\n",
+ "First, let's install the required packages and set up our environment:"
+ ],
+ "id": "441248da37f2b901"
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2025-03-26T16:17:55.937140Z",
+ "start_time": "2025-03-26T16:17:55.908542Z"
+ }
+ },
+ "cell_type": "code",
+ "source": [
+ "# Install required package\n",
+ "# !pip install cognee"
+ ],
+ "id": "8cf7ba29f9a150af",
+ "outputs": [],
+ "execution_count": 17
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2025-03-26T16:18:09.382400Z",
+ "start_time": "2025-03-26T16:18:09.342349Z"
+ }
+ },
+ "cell_type": "code",
+ "source": [
+ "# Import required libraries\n",
+ "import cognee\n",
+ "import asyncio\n",
+ "from cognee.shared.logging_utils import get_logger\n",
+ "import os\n",
+ "import textwrap\n",
+ "from cognee.api.v1.search import SearchType\n",
+ "from cognee.api.v1.visualize.visualize import visualize_graph\n",
+ "\n",
+ "logger = get_logger()\n",
+ "\n",
+ "# Set up OpenAI API key (required for Cognee's LLM functionality)\n",
+ "os.environ[\"LLM_API_KEY\"] = \"your-api-key-here\" # Replace with your API key"
+ ],
+ "id": "d825d126b3a0ec26",
+ "outputs": [],
+ "execution_count": 18
+ },
+ {
+ "metadata": {},
+ "cell_type": "markdown",
+ "source": [
+ "## Creating the Pipeline\n",
+ "\n",
+ "Let's create a pipeline that will:\n",
+ "1. Clean existing data\n",
+ "2. Process scientific papers\n",
+ "3. Apply ontological knowledge"
+ ],
+ "id": "6af350837e86b7a1"
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2025-03-26T16:18:48.165096Z",
+ "start_time": "2025-03-26T16:18:48.148543Z"
+ }
+ },
+ "cell_type": "code",
+ "source": [
+ "async def run_pipeline(ontology_path=None):\n",
+ " # Clean existing data\n",
+ " await cognee.prune.prune_data()\n",
+ " await cognee.prune.prune_system(metadata=True)\n",
+ " \n",
+ " # Set up path to scientific papers\n",
+ " scientific_papers_dir = os.path.join(\n",
+ " os.path.dirname(os.path.dirname(os.path.abspath(\".\"))), \n",
+ " \"cognee\",\n",
+ " \"examples\",\n",
+ " \"data\", \n",
+ " \"scientific_papers/\"\n",
+ " )\n",
+ " \n",
+ " # Add papers to the system\n",
+ " await cognee.add(scientific_papers_dir)\n",
+ " \n",
+ " # Cognify with optional ontology\n",
+ " return await cognee.cognify(ontology_file_path=ontology_path)\n",
+ "\n",
+ "async def query_pipeline(questions):\n",
+ " answers = []\n",
+ " for question in questions:\n",
+ " search_results = await cognee.search(\n",
+ " query_type=SearchType.GRAPH_COMPLETION,\n",
+ " query_text=question,\n",
+ " )\n",
+ " answers.append(search_results)\n",
+ " return answers"
+ ],
+ "id": "4d0e4a58e4207a7d",
+ "outputs": [],
+ "execution_count": 19
+ },
+ {
+ "metadata": {},
+ "cell_type": "markdown",
+ "source": [
+ "## Running the Demo\n",
+ "\n",
+ "Let's test our system with some medical questions, comparing results with and without ontological knowledge:"
+ ],
+ "id": "c87c21a75d6f4d79"
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2025-03-26T15:07:22.008890Z",
+ "start_time": "2025-03-26T15:05:17.229601Z"
+ }
+ },
+ "cell_type": "code",
+ "source": [
+ "# Test questions\n",
+ "questions = [\n",
+ " \"What are common risk factors for Type 2 Diabetes?\",\n",
+ " \"What preventive measures reduce the risk of Hypertension?\",\n",
+ " \"What symptoms indicate possible Cardiovascular Disease?\",\n",
+ " \"What diseases are associated with Obesity?\"\n",
+ "]\n",
+ "\n",
+ "# Path to medical ontology\n",
+ "ontology_path = \"examples/python/ontology_input_example/enriched_medical_ontology_with_classes.owl\" # Update with your ontology path\n",
+ "\n",
+ "# Run with ontology\n",
+ "print(\"\\n--- Results WITH ontology ---\\n\")\n",
+ "await run_pipeline(ontology_path=ontology_path)\n",
+ "answers_with = await query_pipeline(questions)\n",
+ "for q, a in zip(questions, answers_with):\n",
+ " print(f\"Q: {q}\\nA: {a}\\n\")"
+ ],
+ "id": "1363772d2b48f5c0",
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "--- Results WITH ontology ---\n",
+ "\n",
+ "\n",
+ "\u001B[2m2025-03-26T15:05:17.231943Z\u001B[0m [\u001B[33m\u001B[1mwarning \u001B[0m] \u001B[1mFile /Users/vasilije/cognee/cognee/.cognee_system/databases/cognee_graph.pkl not found. Initializing an empty graph.\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:17.234283Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mGraph deleted successfully. \u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:17.237309Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mDatabase deleted successfully.\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0mUser d3a8d4b0-7559-4a30-89fa-5f8ccec78676 has registered.\n",
+ "\n",
+ "\n",
+ "\u001B[2m2025-03-26T15:05:17.305948Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run started: `4b84e400-23fc-5976-bbb4-f8ee303eed81`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:17.306299Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `resolve_data_directories`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:17.306931Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `ingest_data`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:17.800072Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `ingest_data`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:17.800400Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `resolve_data_directories`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:17.800611Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run completed: `4b84e400-23fc-5976-bbb4-f8ee303eed81`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\n",
+ "\u001B[2m2025-03-26T15:05:17.809903Z\u001B[0m [\u001B[33m\u001B[1mwarning \u001B[0m] \u001B[1mOntology file 'examples/python/ontology_input_example/enriched_medical_ontology_with_classes.owl' not found. Using fallback ontology at http://example.org/empty_ontology\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:17.810249Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mLookup built: 0 classes, 0 individuals\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:17.821894Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run started: `af81ab41-8243-522f-a10a-b7b5febcc577`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:17.822237Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `classify_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:17.822503Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `check_permissions_on_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:17.827463Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mAsync generator task started: `extract_chunks_from_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/Users/vasilije/cognee/.venv/lib/python3.11/site-packages/dlt/destinations/impl/sqlalchemy/merge_job.py:194: SAWarning: Table 'file_metadata' already exists within the given MetaData - not copying.\n",
+ " staging_table_obj = table_obj.to_metadata(\n",
+ "/Users/vasilije/cognee/.venv/lib/python3.11/site-packages/dlt/destinations/impl/sqlalchemy/merge_job.py:229: SAWarning: implicitly coercing SELECT object to scalar subquery; please use the .scalar_subquery() method to produce a scalar subquery.\n",
+ " order_by=order_dir_func(order_by_col),\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[2m2025-03-26T15:05:18.168160Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `extract_graph_from_data`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:05:18 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:05:18 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:05:18 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:05:18 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:05:18 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:05:18 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.837816Z\u001B[0m [\u001B[33m\u001B[1mwarning \u001B[0m] \u001B[1mFile /Users/vasilije/cognee/cognee/.cognee_system/databases/cognee_graph.pkl not found. Initializing an empty graph.\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.841330Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'journal' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.841775Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'ochsner journal' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.842217Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'person' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.842668Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'michael f. mendoza' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.843124Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'ralf martz sulague' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.843453Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'therese posas-mendoza' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.843814Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'carl j. lavie' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.844169Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'concept' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.844508Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'coffee consumption' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.844859Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'cardiovascular health' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.845189Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'condition' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.845450Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'hypertension' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.845719Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'heart failure' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.846143Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'atrial fibrillation' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.846495Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'coronary heart disease' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.846850Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'cholesterol levels' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.847262Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'health condition' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.847514Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'cardiovascular disease mortality' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.847931Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mortality' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.848238Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'research method' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.848563Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'meta-analysis' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.849047Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'moderate coffee consumption' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.849371Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'chemical compound' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.849623Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'caffeine' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.849904Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'oxidative stress' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.850232Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'antioxidants' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.850641Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'laura torres-collado' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.851215Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'laura maría compañ-gabucio' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.851576Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'sandra gonzález-palacios' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.851838Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'leyre notario-barandiaran' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.852112Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'alejandro oncina-cánovas' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.852385Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'jesús vioque' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.852659Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'manuela garcía-de la hera' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.852968Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'nutrients' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.853393Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'study' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.853633Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'valencia nutrition study' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.854006Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'research' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.854236Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'coffee consumption and mortality' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.854569Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'eureye-spain and the valencia nutrition study' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.854826Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'variable' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.855039Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'sex' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.855311Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'body mass index' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.855582Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'waist circumference' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.855869Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'smoking status' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.856108Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'diabetes' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.856339Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'cholesterol' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.856556Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'physical activity' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.856774Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'all-cause mortality' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.857165Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'cardiovascular disease mortality' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.857472Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'cancer mortality' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.857894Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'nutrition' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.858325Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'health concept' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.858624Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'demographic' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.858891Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mediterranean population' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.859133Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'beverage' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.859390Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'caffeinated coffee' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.859700Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'decaffeinated coffee' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.860177Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'cardiovascular disease' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.860627Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'cancer' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.861015Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'population' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.861286Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'elderly spanish population' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.861537Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mediterranean prospective cohort' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.861787Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'italian population' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.862009Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'region' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.862233Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'valencian community' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.862489Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'diet' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.862728Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mediterranean diet' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.863019Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'methodology' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.863237Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'food frequency questionnaire' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.863626Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'impact of caffeine' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:38.863914Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'health outcomes' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:45.666175Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `summarize_text`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:05:45 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:05:45 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:05:45 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:05:45 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:05:45 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:05:45 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:51.131966Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `add_data_points`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:56.787555Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `add_data_points`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:56.787969Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `summarize_text`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:56.788212Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `extract_graph_from_data`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:56.788418Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mAsync generator task completed: `extract_chunks_from_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:56.788600Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `check_permissions_on_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:56.788763Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `classify_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:05:56.789013Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run completed: `af81ab41-8243-522f-a10a-b7b5febcc577`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:06:03 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:06:09 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:06:14 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:06:22 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0mQ: What are common risk factors for Type 2 Diabetes?\n",
+ "A: ['Common risk factors for Type 2 Diabetes include obesity, increased body mass index (BMI), high waist circumference, sedentary lifestyle, poor dietary habits, smoking, hypertension, and family history of diabetes. Moderate coffee consumption has been associated with a lower risk of some health issues, potentially influencing the risk factors for diabetes.']\n",
+ "\n",
+ "Q: What preventive measures reduce the risk of Hypertension?\n",
+ "A: ['Preventive measures that reduce the risk of hypertension include moderate coffee consumption, which is associated with a lower risk of developing hypertension and cardiovascular issues. Additionally, the inhibition of sodium and water reabsorption, alongside effects on inflammation and the renin-angiotensin-aldosterone system (RAAS) through compounds found in coffee, may also contribute to lowering the risk.']\n",
+ "\n",
+ "Q: What symptoms indicate possible Cardiovascular Disease?\n",
+ "A: ['Symptoms that may indicate possible cardiovascular disease include conditions such as coronary heart disease and heart failure. These conditions can affect cardiovascular health and may present symptoms like shortness of breath, fatigue, chest pain, or heart palpitations.']\n",
+ "\n",
+ "Q: What diseases are associated with Obesity?\n",
+ "A: ['Diseases associated with obesity include:\\n1. Coronary heart disease\\n2. Cardiovascular disease\\n3. Diabetes']\n",
+ "\n",
+ "\n",
+ "--- Results WITHOUT ontology ---\n",
+ "\n",
+ "\n",
+ "\u001B[2m2025-03-26T15:06:24.564633Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mGraph deleted successfully. \u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:24.587360Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mDatabase deleted successfully.\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0mUser 27ad4f5a-8baf-41b2-a8dc-3873f92d579a has registered.\n",
+ "\n",
+ "\n",
+ "\u001B[2m2025-03-26T15:06:24.650315Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run started: `4b84e400-23fc-5976-bbb4-f8ee303eed81`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:24.650607Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `resolve_data_directories`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:24.651206Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `ingest_data`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:24.825786Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `ingest_data`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:24.826088Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `resolve_data_directories`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:24.826266Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run completed: `4b84e400-23fc-5976-bbb4-f8ee303eed81`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\n",
+ "\u001B[2m2025-03-26T15:06:24.835766Z\u001B[0m [\u001B[33m\u001B[1mwarning \u001B[0m] \u001B[1mOntology file 'None' not found. Using fallback ontology at http://example.org/empty_ontology\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:24.836729Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mLookup built: 0 classes, 0 individuals\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:24.845638Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run started: `af81ab41-8243-522f-a10a-b7b5febcc577`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:24.845932Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `classify_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:24.846204Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `check_permissions_on_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:24.849070Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mAsync generator task started: `extract_chunks_from_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/Users/vasilije/cognee/.venv/lib/python3.11/site-packages/dlt/destinations/impl/sqlalchemy/merge_job.py:194: SAWarning: Table 'file_metadata' already exists within the given MetaData - not copying.\n",
+ " staging_table_obj = table_obj.to_metadata(\n",
+ "/Users/vasilije/cognee/.venv/lib/python3.11/site-packages/dlt/destinations/impl/sqlalchemy/merge_job.py:229: SAWarning: implicitly coercing SELECT object to scalar subquery; please use the .scalar_subquery() method to produce a scalar subquery.\n",
+ " order_by=order_dir_func(order_by_col),\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[2m2025-03-26T15:06:25.190845Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `extract_graph_from_data`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:06:25 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:06:25 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:06:25 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:06:25 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:06:25 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:06:25 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.590277Z\u001B[0m [\u001B[33m\u001B[1mwarning \u001B[0m] \u001B[1mFile /Users/vasilije/cognee/cognee/.cognee_system/databases/cognee_graph.pkl not found. Initializing an empty graph.\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.595098Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'person' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.595692Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'michael f. mendoza' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.596101Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'ralf martz sulague' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.596463Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'therese posas-mendoza' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.596797Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'carl j. lavie' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.597214Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'publication' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.597584Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'ochsner journal 2023' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.597914Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'concept' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.598201Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'coffee consumption' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.598606Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'cardiovascular health' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.598948Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'cardiovascular disease' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.599288Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'condition' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.599569Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'hypertension' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.599853Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'substance' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.600129Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'cholesterol' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.600428Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'atrial fibrillation' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.600681Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'heart failure' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.600911Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'coronary heart disease' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.601166Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'diterpenes' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.601486Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'phenolic acid' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.601994Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'date' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.602353Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for '2023-01-01' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.602892Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'disease' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.603339Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mortality' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.603690Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'oxidants' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.603973Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'chemical' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.604260Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'chlorogenic acid' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.604555Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'polyphenols' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.604926Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'laura torres-collado' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.605315Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'laura maría compañ-gabucio' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.605599Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'sandra gonzález-palacios' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.605887Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'leyre notario-barandiaran' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.606184Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'alejandro oncina-cánovas' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.606451Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'jesús vioque' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.606688Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'manuela garcía-de la hera' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.606938Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'journal' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.607156Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'nutrients' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.607388Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'study' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.607612Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'valencia nutrition study' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.608001Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'diet' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.608295Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mediterranean diet' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.608597Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mortality causes' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.608914Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'valencia nutrition survey' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.609155Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'group' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.609406Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'participants aged 20 years and above' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.609669Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'behavior' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.609934Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'medical condition' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.610190Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'cancer' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.610517Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'health outcome' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.610725Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'all-cause mortality' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.611040Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'non-drinkers' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.611310Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'drinkers of ≤1 cup/day' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.611559Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'drinkers of >1 cup/day' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.611809Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'analysis method' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.612045Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'age and sex adjusted' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.612294Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'multivariable model' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.612519Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'statistical measure' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.612884Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'hazard ratio (hr)' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.613138Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'person-years' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.613528Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'cancer mortality' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.613757Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'cvd mortality' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.614101Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'population' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.614341Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mediterranean population' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.614591Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'country' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.614845Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'spain' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.615080Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'nutrients 2021' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.615334Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'coffee consumption study' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.615652Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'l. torres-collado' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.615877Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'm. garcia-de-la-hera' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.616092Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'e.m. navarrete-muñoz' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.616319Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'l. notario-barandiaran' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.616547Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 's. gonzalez-palacios' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.616763Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'o. zurriaga' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.617068Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'i. melchor' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.617285Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'j. vioque' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.617514Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'a.m. navarro' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.617762Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'm.á. martinez-gonzalez' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.618004Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'a. gea' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.618249Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'g. grosso' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.618488Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'j.m. martin-moreno' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.618719Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'e. lopez-garcia' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.618931Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'n. martin-calvo' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.619156Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'e. toledo' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.619379Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'e. ruggiero' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.619615Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'a. di castelnuovo' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.619826Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 's. costanzo' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.620138Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'm. persichillo' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.620336Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'a. de curtis' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.620555Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'c. cerletti' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.620776Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'm.b. donati' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.621005Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'g. de gaetano' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.621208Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'l. iacoviello' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.621418Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'm. bonaccio' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.621645Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'a. crippa' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.621854Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'a. discacciati' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.622063Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 's.c. larsson' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.622290Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'a. wolk' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.622490Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'n. orsini' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.622682Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'x. yu' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.622913Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'j. zou' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:42.623238Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'j. dong' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:47.925259Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `summarize_text`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:06:47 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:06:47 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:06:47 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:06:47 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:06:47 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:06:47 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:53.076517Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `add_data_points`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:59.398408Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `add_data_points`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:59.399352Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `summarize_text`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:59.399666Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `extract_graph_from_data`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:59.399850Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mAsync generator task completed: `extract_chunks_from_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:59.400045Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `check_permissions_on_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:59.400264Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `classify_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:06:59.400446Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run completed: `af81ab41-8243-522f-a10a-b7b5febcc577`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:07:02 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:07:05 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:07:15 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:07:21 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0mQ: What are common risk factors for Type 2 Diabetes?\n",
+ "A: ['Common risk factors for Type 2 Diabetes that can be inferred from the context include:\\n- Hypertension\\n- Heart failure\\n- Cholesterol issues\\n- Poor cardiovascular health\\nThese factors indicate a connection between lifestyle and the development of Type 2 Diabetes.']\n",
+ "\n",
+ "Q: What preventive measures reduce the risk of Hypertension?\n",
+ "A: ['Preventive measures that reduce the risk of hypertension include moderate coffee consumption. Studies indicate that drinking 1 to 3 cups of coffee per day is associated with a decreased risk of developing hypertension, particularly in individuals who have never smoked and are rapid caffeine metabolizers.']\n",
+ "\n",
+ "Q: What symptoms indicate possible Cardiovascular Disease?\n",
+ "A: ['Symptoms that may indicate possible Cardiovascular Disease (CVD) include:\\n- Hypertension (high blood pressure)\\n- Diabetes\\n- High cholesterol\\n- Physical inactivity\\n- Increased waist circumference\\n- Symptoms such as chest pain, shortness of breath, and fatigue may also be indicative of CVD. Additionally, studies show that coffee consumption may have an impact on cardiovascular health by potentially reducing the risk of heart-related conditions.']\n",
+ "\n",
+ "Q: What diseases are associated with Obesity?\n",
+ "A: ['Obesity is associated with several diseases including coronary heart disease and cardiovascular disease.']\n",
+ "\n"
+ ]
+ }
+ ],
+ "execution_count": 7
+ },
+ {
+ "metadata": {},
+ "cell_type": "code",
+ "outputs": [],
+ "execution_count": null,
+ "source": "",
+ "id": "89e2e53dcecb78eb"
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2025-03-26T15:10:35.951381Z",
+ "start_time": "2025-03-26T15:09:44.138069Z"
+ }
+ },
+ "cell_type": "code",
+ "source": [
+ "# Run without ontology\n",
+ "print(\"\\n--- Results WITHOUT ontology ---\\n\")\n",
+ "await run_pipeline()\n",
+ "answers_without = await query_pipeline(questions)\n",
+ "for q, a in zip(questions, answers_without):\n",
+ " print(f\"Q: {q}\\nA: {a}\\n\")"
+ ],
+ "id": "3aa18f4cdd5ceff6",
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "--- Results WITHOUT ontology ---\n",
+ "\n",
+ "\n",
+ "\u001B[2m2025-03-26T15:09:44.143281Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mGraph deleted successfully. \u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:09:44.167825Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mDatabase deleted successfully.\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0mUser cfb3d7df-13ec-4404-bdd9-da9def0c3ee5 has registered.\n",
+ "\n",
+ "\n",
+ "\u001B[2m2025-03-26T15:09:44.234228Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run started: `4b84e400-23fc-5976-bbb4-f8ee303eed81`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:09:44.234622Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `resolve_data_directories`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:09:44.235313Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `ingest_data`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:09:44.483281Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `ingest_data`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:09:44.483708Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `resolve_data_directories`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:09:44.484101Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run completed: `4b84e400-23fc-5976-bbb4-f8ee303eed81`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\n",
+ "\u001B[2m2025-03-26T15:09:44.494937Z\u001B[0m [\u001B[33m\u001B[1mwarning \u001B[0m] \u001B[1mOntology file 'None' not found. Using fallback ontology at http://example.org/empty_ontology\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:09:44.495469Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mLookup built: 0 classes, 0 individuals\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:09:44.504731Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run started: `af81ab41-8243-522f-a10a-b7b5febcc577`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:09:44.505027Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `classify_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:09:44.505308Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `check_permissions_on_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:09:44.507565Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mAsync generator task started: `extract_chunks_from_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "/Users/vasilije/cognee/.venv/lib/python3.11/site-packages/dlt/destinations/impl/sqlalchemy/merge_job.py:194: SAWarning: Table 'file_metadata' already exists within the given MetaData - not copying.\n",
+ " staging_table_obj = table_obj.to_metadata(\n",
+ "/Users/vasilije/cognee/.venv/lib/python3.11/site-packages/dlt/destinations/impl/sqlalchemy/merge_job.py:229: SAWarning: implicitly coercing SELECT object to scalar subquery; please use the .scalar_subquery() method to produce a scalar subquery.\n",
+ " order_by=order_dir_func(order_by_col),\n"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[2m2025-03-26T15:09:44.849823Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `extract_graph_from_data`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:09:44 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:09:44 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:09:44 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:09:44 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:09:44 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:09:44 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:05.997529Z\u001B[0m [\u001B[33m\u001B[1mwarning \u001B[0m] \u001B[1mFile /Users/vasilije/cognee/cognee/.cognee_system/databases/cognee_graph.pkl not found. Initializing an empty graph.\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:05.999516Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'study' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:05.999832Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'coffee consumption study' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.000083Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'nutrient' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.000265Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'caffeinated coffee' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.000454Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'decaffeinated coffee' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.000649Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'concept' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.000965Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mortality risk' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.001266Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'diet' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.001508Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mediterranean diet' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.001743Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'eureye spain' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.001959Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'valencia nutrition study' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.002240Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'behavior' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.002491Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'coffee consumption' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.002790Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'healthcondition' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.003055Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'cardiovascular disease (cvd)' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.003285Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'cancer' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.003522Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'diabetes' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.003713Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'hypertension' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.004002Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'demographic' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.004290Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'participants aged 20 years and above' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.004561Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'characteristic' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.004811Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'socio-demographic and lifestyle characteristics' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.005223Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'population' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.005459Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mediterranean population' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.005694Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'health outcome' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.005871Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'all-cause mortality' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.006050Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'cancer mortality' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.006257Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'cvd mortality' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.006515Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'country' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.006711Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'spain' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.006874Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'substance' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.007065Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'caffeinated coffee' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.007279Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'coffee and mortality study' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.007487Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'moderate coffee consumption' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.007655Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'biological mechanisms' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.007855Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'contribution' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.008070Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'author contributions' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.008327Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'limitations' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.008588Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'strengths' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.008819Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'conclusion' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.009152Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'research study' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.009403Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'coffee consumption and mortality in elderly spanish population' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.009667Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'coffee consumption and total mortality in mediterranean population' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.009924Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'daily coffee drinking and lower risks of mortality' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.010285Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'prevalence of obesity in the valencian community' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.010508Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'validity of a food frequency questionnaire' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.010692Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'adherence to the mediterranean diet and risk of coronary heart disease' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.010926Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'diet and overall survival in elderly people' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.011150Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'adherence to a mediterranean diet and survival in greek population' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.011347Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'report' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.011536Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'usda national nutrient database for standard reference' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.011753Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'coffee consumption and mortality meta-analysis' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.011959Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'impact of caffeine and coffee on health' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.012247Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'person' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.012577Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'michael f. mendoza' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.012802Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'ralf martz sulague' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.013080Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'therese posas-mendoza' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.013455Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'carl j. lavie' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.013665Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'beverage' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.013871Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'coffee' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.014161Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'health_concept' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.014393Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'cardiovascular health' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.014657Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'health_condition' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.014874Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'cholesterol' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.015093Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'coronary heart disease' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.015304Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'heart failure' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.015511Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'atrial fibrillation' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.015720Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'license' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.015908Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'creative commons attribution license' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.016198Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'publication' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.016555Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'ochsner journal' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.016786Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'identifier' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.017005Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for '10.31486/toj.22.0073' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.017300Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'date' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.017552Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for '2023-01-01' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.017864Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mendoza, mf' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.018085Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'coronary artery risk development in young adults study' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.018305Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'european society of cardiology (2020)' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.018538Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'bodar et al. (2019)' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.018788Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'cheng et al. (2014)' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.019005Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'ali-hassan-sayegh et al. (2014)' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.019209Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'ding et al. (2015)' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.019529Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'lopez-garcia et al. (2008)' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.019760Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'de koning gans et al. (2010)' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.019966Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'andersen et al. (2006)' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:06.020296Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'kim et al. (2019)' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:10.912114Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `summarize_text`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:10:10 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:10:10 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:10:10 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:10:11 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[92m16:10:11 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:10:11 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:15.645063Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `add_data_points`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:22.522977Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `add_data_points`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:22.523361Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `summarize_text`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:22.523563Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `extract_graph_from_data`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:22.523774Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mAsync generator task completed: `extract_chunks_from_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:22.523946Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `check_permissions_on_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:22.524098Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `classify_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:10:22.524248Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run completed: `af81ab41-8243-522f-a10a-b7b5febcc577`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks(tasks: [Task], data)\u001B[0m]\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:10:24 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:10:27 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:10:30 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0m"
+ ]
+ },
+ {
+ "name": "stderr",
+ "output_type": "stream",
+ "text": [
+ "\u001B[92m16:10:34 - LiteLLM:INFO\u001B[0m: utils.py:2784 - \n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai"
+ ]
+ },
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[1m\n",
+ "LiteLLM completion() model= gpt-4o-mini; provider = openai\u001B[0mQ: What are common risk factors for Type 2 Diabetes?\n",
+ "A: ['Common risk factors for Type 2 Diabetes include: hypertension, cardiovascular disease (CVD), and being aged 20 years and above.']\n",
+ "\n",
+ "Q: What preventive measures reduce the risk of Hypertension?\n",
+ "A: ['Preventive measures to reduce the risk of hypertension include moderate coffee consumption, as studies have shown that it is associated with a decreased risk of developing hypertension. Additionally, lifestyle factors such as maintaining a healthy weight, reducing sodium intake, and regular physical activity may also contribute to lower hypertension risk.']\n",
+ "\n",
+ "Q: What symptoms indicate possible Cardiovascular Disease?\n",
+ "A: ['Symptoms indicating possible cardiovascular disease include hypertension, heart failure, and atrial fibrillation. Additionally, heavy coffee consumption has been linked to increased risks of coronary heart disease, while moderate coffee consumption may decrease risks of various cardiovascular issues.']\n",
+ "\n",
+ "Q: What diseases are associated with Obesity?\n",
+ "A: ['Diseases associated with obesity include:\\n1. Coronary heart disease\\n2. Cardiovascular disease (CVD)\\n3. Diabetes\\n4. Cancer mortality (increased risk)']\n",
+ "\n"
+ ]
+ }
+ ],
+ "execution_count": 8
+ },
+ {
+ "metadata": {},
+ "cell_type": "markdown",
+ "source": [
+ "## Visualizing the Knowledge Graph\n",
+ "\n",
+ "Let's visualize how our ontology connects different medical concepts:"
+ ],
+ "id": "c60533d2423acdb0"
+ },
+ {
+ "metadata": {
+ "ExecuteTime": {
+ "end_time": "2025-03-26T15:18:43.679242Z",
+ "start_time": "2025-03-26T15:18:43.641481Z"
+ }
+ },
+ "cell_type": "code",
+ "source": [
+ "# Generate and display the visualization\n",
+ "html = await visualize_graph(destination_file_path= \"/Users/vasilije/cognee/.artifacts/graph.html\")\n",
+ "from cognee.api.v1.visualize.start_visualization_server import start_visualization_server\n",
+ "\n",
+ "start_visualization_server(port=8003)\n"
+ ],
+ "id": "9268fa61dbc81664",
+ "outputs": [
+ {
+ "name": "stdout",
+ "output_type": "stream",
+ "text": [
+ "\n",
+ "\u001B[2m2025-03-26T15:18:43.650136Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mGraph visualization saved as /Users/vasilije/cognee/.artifacts/graph.html\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n",
+ "\u001B[2m2025-03-26T15:18:43.650674Z\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mThe HTML file has been stored at path: /Users/vasilije/cognee/.artifacts/graph.html\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m"
+ ]
+ },
+ {
+ "ename": "OSError",
+ "evalue": "[Errno 48] Address already in use",
+ "output_type": "error",
+ "traceback": [
+ "\u001B[0;31m---------------------------------------------------------------------------\u001B[0m",
+ "\u001B[0;31mOSError\u001B[0m Traceback (most recent call last)",
+ "Cell \u001B[0;32mIn[16], line 5\u001B[0m\n\u001B[1;32m 2\u001B[0m html \u001B[38;5;241m=\u001B[39m \u001B[38;5;28;01mawait\u001B[39;00m visualize_graph(destination_file_path\u001B[38;5;241m=\u001B[39m \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124m/Users/vasilije/cognee/.artifacts/graph.html\u001B[39m\u001B[38;5;124m\"\u001B[39m)\n\u001B[1;32m 3\u001B[0m \u001B[38;5;28;01mfrom\u001B[39;00m\u001B[38;5;250m \u001B[39m\u001B[38;5;21;01mcognee\u001B[39;00m\u001B[38;5;21;01m.\u001B[39;00m\u001B[38;5;21;01mapi\u001B[39;00m\u001B[38;5;21;01m.\u001B[39;00m\u001B[38;5;21;01mv1\u001B[39;00m\u001B[38;5;21;01m.\u001B[39;00m\u001B[38;5;21;01mvisualize\u001B[39;00m\u001B[38;5;21;01m.\u001B[39;00m\u001B[38;5;21;01mstart_visualization_server\u001B[39;00m\u001B[38;5;250m \u001B[39m\u001B[38;5;28;01mimport\u001B[39;00m start_visualization_server\n\u001B[0;32m----> 5\u001B[0m \u001B[43mstart_visualization_server\u001B[49m\u001B[43m(\u001B[49m\u001B[43mport\u001B[49m\u001B[38;5;241;43m=\u001B[39;49m\u001B[38;5;241;43m8003\u001B[39;49m\u001B[43m)\u001B[49m\n",
+ "File \u001B[0;32m~/cognee/cognee/shared/utils.py:337\u001B[0m, in \u001B[0;36mstart_visualization_server\u001B[0;34m(host, port, handler_class)\u001B[0m\n\u001B[1;32m 325\u001B[0m \u001B[38;5;250m\u001B[39m\u001B[38;5;124;03m\"\"\"\u001B[39;00m\n\u001B[1;32m 326\u001B[0m \u001B[38;5;124;03mSpin up a simple HTTP server in a background thread to serve files.\u001B[39;00m\n\u001B[1;32m 327\u001B[0m \u001B[38;5;124;03mThis is especially handy for quick demos or visualization purposes.\u001B[39;00m\n\u001B[0;32m (...)\u001B[0m\n\u001B[1;32m 334\u001B[0m \u001B[38;5;124;03m:return: A no-argument function `shutdown` which, when called, stops the server.\u001B[39;00m\n\u001B[1;32m 335\u001B[0m \u001B[38;5;124;03m\"\"\"\u001B[39;00m\n\u001B[1;32m 336\u001B[0m \u001B[38;5;66;03m# Create the server\u001B[39;00m\n\u001B[0;32m--> 337\u001B[0m server \u001B[38;5;241m=\u001B[39m \u001B[43msocketserver\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mTCPServer\u001B[49m\u001B[43m(\u001B[49m\u001B[43m(\u001B[49m\u001B[43mhost\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mport\u001B[49m\u001B[43m)\u001B[49m\u001B[43m,\u001B[49m\u001B[43m \u001B[49m\u001B[43mhandler_class\u001B[49m\u001B[43m)\u001B[49m\n\u001B[1;32m 339\u001B[0m \u001B[38;5;28;01mdef\u001B[39;00m\u001B[38;5;250m \u001B[39m\u001B[38;5;21m_serve_forever\u001B[39m():\n\u001B[1;32m 340\u001B[0m \u001B[38;5;28mprint\u001B[39m(\u001B[38;5;124mf\u001B[39m\u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mVisualization server running at: http://\u001B[39m\u001B[38;5;132;01m{\u001B[39;00mhost\u001B[38;5;132;01m}\u001B[39;00m\u001B[38;5;124m:\u001B[39m\u001B[38;5;132;01m{\u001B[39;00mport\u001B[38;5;132;01m}\u001B[39;00m\u001B[38;5;124m\"\u001B[39m)\n",
+ "File \u001B[0;32m~/.pyenv/versions/3.11.0/lib/python3.11/socketserver.py:456\u001B[0m, in \u001B[0;36mTCPServer.__init__\u001B[0;34m(self, server_address, RequestHandlerClass, bind_and_activate)\u001B[0m\n\u001B[1;32m 454\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m bind_and_activate:\n\u001B[1;32m 455\u001B[0m \u001B[38;5;28;01mtry\u001B[39;00m:\n\u001B[0;32m--> 456\u001B[0m \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mserver_bind\u001B[49m\u001B[43m(\u001B[49m\u001B[43m)\u001B[49m\n\u001B[1;32m 457\u001B[0m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mserver_activate()\n\u001B[1;32m 458\u001B[0m \u001B[38;5;28;01mexcept\u001B[39;00m:\n",
+ "File \u001B[0;32m~/.pyenv/versions/3.11.0/lib/python3.11/socketserver.py:472\u001B[0m, in \u001B[0;36mTCPServer.server_bind\u001B[0;34m(self)\u001B[0m\n\u001B[1;32m 470\u001B[0m \u001B[38;5;28;01mif\u001B[39;00m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mallow_reuse_port \u001B[38;5;129;01mand\u001B[39;00m \u001B[38;5;28mhasattr\u001B[39m(socket, \u001B[38;5;124m\"\u001B[39m\u001B[38;5;124mSO_REUSEPORT\u001B[39m\u001B[38;5;124m\"\u001B[39m):\n\u001B[1;32m 471\u001B[0m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39msocket\u001B[38;5;241m.\u001B[39msetsockopt(socket\u001B[38;5;241m.\u001B[39mSOL_SOCKET, socket\u001B[38;5;241m.\u001B[39mSO_REUSEPORT, \u001B[38;5;241m1\u001B[39m)\n\u001B[0;32m--> 472\u001B[0m \u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43msocket\u001B[49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mbind\u001B[49m\u001B[43m(\u001B[49m\u001B[38;5;28;43mself\u001B[39;49m\u001B[38;5;241;43m.\u001B[39;49m\u001B[43mserver_address\u001B[49m\u001B[43m)\u001B[49m\n\u001B[1;32m 473\u001B[0m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39mserver_address \u001B[38;5;241m=\u001B[39m \u001B[38;5;28mself\u001B[39m\u001B[38;5;241m.\u001B[39msocket\u001B[38;5;241m.\u001B[39mgetsockname()\n",
+ "\u001B[0;31mOSError\u001B[0m: [Errno 48] Address already in use"
+ ]
+ }
+ ],
+ "execution_count": 16
+ },
+ {
+ "metadata": {},
+ "cell_type": "markdown",
+ "source": [
+ "## Understanding the Results\n",
+ "\n",
+ "The demonstration above shows how ontologies enhance our analysis by:\n",
+ "\n",
+ "1. **Making Connections**: \n",
+ " - Linking related medical concepts even when not explicitly stated\n",
+ " - Identifying relationships between symptoms, diseases, and risk factors\n",
+ "\n",
+ "2. **Standardizing Terms**: \n",
+ " - Unifying different ways of referring to the same medical condition\n",
+ " - Ensuring consistent terminology across documents\n",
+ "\n",
+ "3. **Enabling Inference**: \n",
+ " - Drawing conclusions based on ontological relationships\n",
+ " - Discovering implicit connections in the data\n",
+ "\n",
+ "## Next Steps\n",
+ "\n",
+ "To learn more about Cognee and ontologies:\n",
+ "1. Check out the [Cognee documentation](https://docs.cognee.ai/)\n",
+ "2. Explore more examples in the `examples` directory\n",
+ "3. Try creating your own domain-specific ontology\n",
+ "\n",
+ "Remember to:\n",
+ "- Place your scientific papers in the appropriate directory\n",
+ "- Update the ontology path to point to your .owl file\n",
+ "- Replace the API key with your own OpenAI key"
+ ],
+ "id": "ff39326921b75273"
+ },
+ {
+ "metadata": {},
+ "cell_type": "code",
+ "outputs": [],
+ "execution_count": null,
+ "source": "",
+ "id": "8d2a0fe555a7bc0f"
+ }
+ ],
+ "metadata": {
+ "kernelspec": {
+ "display_name": "Python 3",
+ "language": "python",
+ "name": "python3"
+ },
+ "language_info": {
+ "codemirror_mode": {
+ "name": "ipython",
+ "version": 2
+ },
+ "file_extension": ".py",
+ "mimetype": "text/x-python",
+ "name": "python",
+ "nbconvert_exporter": "python",
+ "pygments_lexer": "ipython2",
+ "version": "2.7.6"
+ }
+ },
+ "nbformat": 4,
+ "nbformat_minor": 5
+}
diff --git a/poetry.lock b/poetry.lock
index 168599d5f..2582754e1 100644
--- a/poetry.lock
+++ b/poetry.lock
@@ -7849,6 +7849,63 @@ files = [
[package.extras]
dev = ["build", "flake8", "mypy", "pytest", "twine"]
+[[package]]
+name = "pyside6"
+version = "6.8.3"
+description = "Python bindings for the Qt cross-platform application and UI framework"
+optional = true
+python-versions = "<3.14,>=3.9"
+groups = ["main"]
+markers = "extra == \"gui\""
+files = [
+ {file = "PySide6-6.8.3-cp39-abi3-macosx_12_0_universal2.whl", hash = "sha256:31f390c961b54067ae41360e5ea3b340ce0e0e5feadea2236c28226d3b37edcc"},
+ {file = "PySide6-6.8.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:8e53e2357bfbdee1fa86c48312bf637460a2c26d49e7af0b3fae2e179ccc7052"},
+ {file = "PySide6-6.8.3-cp39-abi3-manylinux_2_39_aarch64.whl", hash = "sha256:5bf5153cab9484629315f57c56a9ad4b7d075b4dd275f828f7549abf712c590b"},
+ {file = "PySide6-6.8.3-cp39-abi3-win_amd64.whl", hash = "sha256:722dc0061d8ef6dbb8c0b99864f21e83a5b49ece1ecb2d0b890840d969e1e461"},
+]
+
+[package.dependencies]
+PySide6-Addons = "6.8.3"
+PySide6-Essentials = "6.8.3"
+shiboken6 = "6.8.3"
+
+[[package]]
+name = "pyside6-addons"
+version = "6.8.3"
+description = "Python bindings for the Qt cross-platform application and UI framework (Addons)"
+optional = true
+python-versions = "<3.14,>=3.9"
+groups = ["main"]
+markers = "extra == \"gui\""
+files = [
+ {file = "PySide6_Addons-6.8.3-cp39-abi3-macosx_12_0_universal2.whl", hash = "sha256:ea46649e40b9e6ab11a0da2da054d3914bff5607a5882885e9c3bc2eef200036"},
+ {file = "PySide6_Addons-6.8.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:6983d3b01fad53637bad5360930d5923509c744cc39704f9c1190eb9934e33da"},
+ {file = "PySide6_Addons-6.8.3-cp39-abi3-manylinux_2_39_aarch64.whl", hash = "sha256:7949a844a40ee10998eb2734e2c06c4c7182dfcd4c21cc4108a6b96655ebe59f"},
+ {file = "PySide6_Addons-6.8.3-cp39-abi3-win_amd64.whl", hash = "sha256:67548f6db11f4e1b7e4b6efd9c3fc2e8d275188a7b2feac388961128572a6955"},
+]
+
+[package.dependencies]
+PySide6-Essentials = "6.8.3"
+shiboken6 = "6.8.3"
+
+[[package]]
+name = "pyside6-essentials"
+version = "6.8.3"
+description = "Python bindings for the Qt cross-platform application and UI framework (Essentials)"
+optional = true
+python-versions = "<3.14,>=3.9"
+groups = ["main"]
+markers = "extra == \"gui\""
+files = [
+ {file = "PySide6_Essentials-6.8.3-cp39-abi3-macosx_12_0_universal2.whl", hash = "sha256:aa56c135db924ecfaf50088baf32f737d28027419ca5fee67c0c7141b29184e3"},
+ {file = "PySide6_Essentials-6.8.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:fd57fa0c886ef99b3844173322c0023ec77cc946a0c9a0cdfbc2ac5c511053c1"},
+ {file = "PySide6_Essentials-6.8.3-cp39-abi3-manylinux_2_39_aarch64.whl", hash = "sha256:b4f4823f870b5bed477d6f7b6a3041839b859f70abfd703cf53208c73c2fe4cd"},
+ {file = "PySide6_Essentials-6.8.3-cp39-abi3-win_amd64.whl", hash = "sha256:3c0fae5550aff69f2166f46476c36e0ef56ce73d84829eac4559770b0c034b07"},
+]
+
+[package.dependencies]
+shiboken6 = "6.8.3"
+
[[package]]
name = "pysocks"
version = "1.7.1"
@@ -9379,6 +9436,21 @@ files = [
{file = "shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de"},
]
+[[package]]
+name = "shiboken6"
+version = "6.8.3"
+description = "Python/C++ bindings helper module"
+optional = true
+python-versions = "<3.14,>=3.9"
+groups = ["main"]
+markers = "extra == \"gui\""
+files = [
+ {file = "shiboken6-6.8.3-cp39-abi3-macosx_12_0_universal2.whl", hash = "sha256:483efc7dd53c69147b8a8ade71f7619c79ffc683efcb1dc4f4cb6c40bb23d29b"},
+ {file = "shiboken6-6.8.3-cp39-abi3-manylinux_2_28_x86_64.whl", hash = "sha256:295a003466ca2cccf6660e2f2ceb5e6cef4af192a48a196a32d46b6f0c9ec5cb"},
+ {file = "shiboken6-6.8.3-cp39-abi3-manylinux_2_39_aarch64.whl", hash = "sha256:2b1a41348102952d2a5fbf3630bddd4d44112e18058b5e4cf505e51f2812429d"},
+ {file = "shiboken6-6.8.3-cp39-abi3-win_amd64.whl", hash = "sha256:bca3a94513ce9242f7d4bbdca902072a1631888e0aa3a8711a52cc5dbe93588f"},
+]
+
[[package]]
name = "simplejson"
version = "3.20.1"
@@ -11251,7 +11323,7 @@ filesystem = ["botocore"]
gemini = []
graphiti = ["graphiti-core"]
groq = ["groq"]
-gui = ["qasync"]
+gui = ["pyside6", "qasync"]
huggingface = ["transformers"]
kuzu = ["kuzu"]
langchain = ["langchain_text_splitters", "langsmith"]
@@ -11269,4 +11341,4 @@ weaviate = ["weaviate-client"]
[metadata]
lock-version = "2.1"
python-versions = ">=3.10,<=3.13"
-content-hash = "4bda223028508503b326912854c60fa4a5f60349370d26f22dd997d0dec11e01"
+content-hash = "25b759ffc908ce0b4df33344424d2043dd3126d944c6d2e9b24031bd24e1152b"
diff --git a/pyproject.toml b/pyproject.toml
index 704f16d74..47124848c 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -1,6 +1,6 @@
[tool.poetry]
name = "cognee"
-version = "0.1.35"
+version = "0.1.36"
description = "Cognee - is a library for enriching LLM context with a semantic layer for better understanding and reasoning."
authors = ["Vasilije Markovic", "Boris Arzentar"]
readme = "README.md"
@@ -82,6 +82,7 @@ gdown = {version = "^5.2.0", optional = true}
qasync = {version = "^0.27.1", optional = true}
graphiti-core = {version = "^0.7.0", optional = true}
structlog = "^25.2.0"
+pyside6 = {version = "^6.8.3", optional = true}
[tool.poetry.extras]