{ "cells": [ { "metadata": {}, "cell_type": "markdown", "source": [ "# Using Cognee with Python Development Data\n", "\n", "Unite authoritative Python practice (Guido van Rossum's own contributions!), normative guidance (Zen/PEP 8), and your lived context (rules + conversations) into one *AI memory* that produces answers that are relevant, explainable, and consistent." ], "id": "6f22c8fe6d92cfcc" }, { "metadata": {}, "cell_type": "markdown", "source": [ "## What You'll Learn\n", "\n", "In this comprehensive tutorial, you'll discover how to transform scattered development data into an intelligent knowledge system that enhances your coding workflow. By the end, you'll have:\n", "\n", "- **Connected disparate data sources** (Guido's CPython contributions, mypy development, PEP discussions, your Python projects) into a unified AI memory graph\n", "- **Built an memory layer** that understands Python design philosophy, best practice coding patterns, and your preferences and experience\n", "- **Learn how to use intelligent search capabilities** that combine the diverse context\n", "- **Integrated everything with your coding environment** through MCP (Model Context Protocol)\n", "\n", "This tutorial demonstrates the power of **knowledge graphs** and **retrieval-augmented generation (RAG)** for software development, showing you how to build systems that learn from Python's creator and improve your own Python development." ], "id": "fe69acbf9ab1a22b" }, { "metadata": {}, "cell_type": "markdown", "source": [ "## Cognee and its core operations\n", "\n", "Before we dive in, let's understand the core Cognee operations we'll be working with:\n", "\n", "- **`cognee.add()`** - Ingests raw data (files, text, APIs) into the system\n", "- **`cognee.cognify()`** - Processes and structures data into a knowledge graph using AI\n", "- **`cognee.search()`** - Queries the knowledge graph with natural language or Cypher\n", "- **`cognee.memify()`** - Cognee's \"secret sauce\" that infers implicit connections and rules from your data" ], "id": "b03b59c064213dd4" }, { "metadata": {}, "cell_type": "markdown", "source": [ "## Data used in this tutorial\n", "\n", "Cognee can ingest many types of sources. In this tutorial, we use a small, concrete set of files that cover different perspectives:\n", "\n", "- **`guido_contributions.json` — Authoritative exemplars.** Real PRs and commits from Guido van Rossum (mypy, CPython). These show how Python’s creator solved problems and provide concrete anchors for patterns.\n", "- **`pep_style_guide.md` — Norms.** Encodes community style and typing conventions (PEP 8 and related). Ensures that search results and inferred rules align with widely accepted standards.\n", "- **`zen_principles.md` — Philosophy.** The Zen of Python. Grounds design trade‑offs (simplicity, explicitness, readability) beyond syntax or mechanics.\n", "- **`my_developer_rules.md` — Local constraints.** Your house rules, conventions, and project‑specific requirements (scope, privacy, Spec.md). Keeps recommendations relevant to your actual workflow.\n", "- **`copilot_conversations.json` — Personal history.** Transcripts of real assistant conversations, including your questions, code snippets, and discussion topics. Captures “how you code” and connects it to “how Guido codes.”" ], "id": "6a7669fbb6a3e6c7" }, { "metadata": {}, "cell_type": "markdown", "source": [ "# Prelinimiaries\n", "\n", "Cognee relies heavily on async functions.\n", "We need `nest_asyncio` so `await` works in this notebook." ], "id": "2a5dac2c6fdc7ca7" }, { "metadata": { "ExecuteTime": { "end_time": "2025-09-07T12:05:29.648998Z", "start_time": "2025-09-07T12:05:29.642122Z" } }, "cell_type": "code", "source": [ "import nest_asyncio\n", "nest_asyncio.apply()" ], "id": "20cb02b49e3c53e2", "outputs": [], "execution_count": 17 }, { "metadata": {}, "cell_type": "markdown", "source": "We will do a quick import check.", "id": "45e1caaec20c9518" }, { "metadata": { "ExecuteTime": { "end_time": "2025-09-07T12:05:32.556756Z", "start_time": "2025-09-07T12:05:32.551903Z" } }, "cell_type": "code", "source": [ "import cognee\n", "import os\n", "from pathlib import Path\n", "\n", "print('🔍 Quick Cognee Import Check')\n", "print('=' * 30)\n", "print(f'📍 Cognee location: {cognee.__file__}')\n", "print(f'📁 Package directory: {os.path.dirname(cognee.__file__)}')\n", "\n", "# Check if it's local or installed\n", "current_dir = Path.cwd()\n", "cognee_path = Path(cognee.__file__)\n", "if current_dir in cognee_path.parents:\n", " print('🏠 Status: LOCAL DEVELOPMENT VERSION')\n", "else:\n", " print('📦 Status: INSTALLED PACKAGE')" ], "id": "9386ecb596860399", "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "🔍 Quick Cognee Import Check\n", "==============================\n", "📍 Cognee location: /Users/lazar/PycharmProjects/cognee/cognee/__init__.py\n", "📁 Package directory: /Users/lazar/PycharmProjects/cognee/cognee\n", "📦 Status: INSTALLED PACKAGE\n" ] } ], "execution_count": 18 }, { "metadata": {}, "cell_type": "markdown", "source": "And just to be safe, we will make sure that the path contains the root directory, so Python can find everything it needs to run the notebook.", "id": "76895c6570d1a4dc" }, { "metadata": { "ExecuteTime": { "end_time": "2025-09-07T12:05:34.435510Z", "start_time": "2025-09-07T12:05:34.430582Z" } }, "cell_type": "code", "source": [ "import sys\n", "from pathlib import Path\n", "notebook_dir = Path.cwd()\n", "if notebook_dir.name == 'notebooks':\n", " project_root = notebook_dir.parent\n", "else:\n", " project_root = Path.cwd()\n", "\n", "# Add project root to the beginning of sys.path\n", "project_root_str = str(project_root.absolute())\n", "if project_root_str not in sys.path:\n", " sys.path.insert(0, project_root_str)\n", "\n", "print(f\"📁 Project root: {project_root_str}\")" ], "id": "19e74e6b691020db", "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "📁 Project root: /Users/lazar/PycharmProjects/cognee\n" ] } ], "execution_count": 19 }, { "metadata": {}, "cell_type": "markdown", "source": "Finally, we will begin with a clean slate, by removing any previous Cognee data:", "id": "af584b935cbdc8d" }, { "metadata": { "ExecuteTime": { "end_time": "2025-09-07T12:05:41.228831Z", "start_time": "2025-09-07T12:05:38.986516Z" } }, "cell_type": "code", "source": [ "await cognee.prune.prune_data()\n", "await cognee.prune.prune_system(metadata=True)" ], "id": "dd47383aa9519465", "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\n", "\u001B[2m2025-09-07T12:05:41.226643\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[0m\n" ] } ], "execution_count": 20 }, { "metadata": {}, "cell_type": "markdown", "source": [ "### Exploring Guido's Python Contributions\n", "\n", "We'll begin with a document that contains detailed PRs and commits from Guido van Rossum's work on mypy and CPython, showing real-world examples of Python's creator solving type system and language design challenges.\n", "\n", "We'll use Cognee's `add()` and `cognify()` functions to ingest this data and build a knowledge graph that connects Guido's development patterns with Python best practices." ], "id": "93c9783037715026" }, { "metadata": { "ExecuteTime": { "end_time": "2025-09-07T11:55:27.121445Z", "start_time": "2025-09-07T11:54:57.031243Z" } }, "cell_type": "code", "source": [ "import cognee\n", "result = await cognee.add(\n", " \"file://data/guido_contributions.json\",\n", " node_set=[\"guido\"]\n", ")\n", "await cognee.cognify()\n", "results = await cognee.search(\"Show me commits\")" ], "id": "b8743ed520b4de37", "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "User a35adc78-d4bb-42da-ad0b-3ad52fc222e7 has registered.\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "\n", "\u001B[1mEmbeddingRateLimiter initialized: enabled=False, requests_limit=60, interval_seconds=60\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:54:59.663413\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run started: `f5ca7c7d-08ef-584f-a745-891dcc728073`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_with_telemetry()\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:54:59.664064\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `resolve_data_directories`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:54:59.664466\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `ingest_data`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:54:59.678662\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRegistered loader: pypdf_loader\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.infrastructure.loaders.LoaderEngine\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:54:59.679216\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRegistered loader: text_loader\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.infrastructure.loaders.LoaderEngine\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:54:59.679596\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRegistered loader: image_loader\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.infrastructure.loaders.LoaderEngine\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:54:59.679951\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRegistered loader: audio_loader\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.infrastructure.loaders.LoaderEngine\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:54:59.680260\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRegistered loader: unstructured_loader\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.infrastructure.loaders.LoaderEngine\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:54:59.692179\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `ingest_data`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:54:59.692997\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `resolve_data_directories`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:54:59.693329\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run completed: `f5ca7c7d-08ef-584f-a745-891dcc728073`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_with_telemetry()\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:54:59.708125\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mOntology file 'None' not found. No owl ontology will be attached to the graph.\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:54:59.729261\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run started: `7233180e-8575-54d0-bee4-700ba5f5de42`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_with_telemetry()\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:54:59.729906\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `classify_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:54:59.730351\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `check_permissions_on_dataset`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:54:59.739549\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_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:54:59.821323\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_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.803782\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'softwarechange' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.807972\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 're-work indirect dependencies' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.809182\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'softwareproject' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.810180\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypy' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.811212\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'prnumber' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.812692\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for '19798' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.813773\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", "\n", "\u001B[2m2025-09-07T11:55:10.814819\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'files changed' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.815754\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'indirect dependencies' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.816530\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'codecomponent' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.817383\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'typeindirectionvisitor' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.818102\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'process' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.818890\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'semantic analysis' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.819643\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'performance impact' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.820298\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'fixes' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.821052\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", "\n", "\u001B[2m2025-09-07T11:55:10.821569\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for '2025-09-05' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.822748\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'file' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.823523\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypy/indirection.py changes' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.823901\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypy/nodes.py changes' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.824273\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'typealiastype' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.824599\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'instance' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.824933\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", "\n", "\u001B[2m2025-09-07T11:55:10.825219\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'seen_aliases' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.825488\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'seen_types' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.826183\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'seen_fullnames' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.826657\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'modules' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.826987\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'project' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.827334\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'pullrequest' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.827632\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'chore: add cline_docs/ to .gitignore' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.827911\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for '[mypyc] add type annotations to tests' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.828178\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'check functions without annotations in mypyc tests' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.828778\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'fix: allow instantiation of type[none] in analyze_type_type_callee' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.829118\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypy pr 19782' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.829426\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'issue' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.829708\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'issue 19660' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.830029\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypy/checkexpr.py' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.830317\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'testcase' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.830604\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'testtypeusingtypecnonetype' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.830860\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypyc pr 19217' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.831165\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypyc/primitives/weakref_ops.py' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.831451\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'commit' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.831747\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'cpython commit 28625d4f' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.831977\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for '2025-09-02' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.832241\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'gh-118335' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.832462\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'rename --experimental-interpreter on windows to --experimental-jit-interpreter' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.832901\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'document' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.833298\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'doc/whatsnew/3.13.rst' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.833553\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'pcbuild/build.bat' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.833875\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'pep' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.834104\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'pep 667' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.834438\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'attribute' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.834646\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'frame.f_locals' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.834950\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'write-through proxy' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.835311\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'typeguard (pep 647)' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.835796\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypy: support typeguard (pep 647)' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.836117\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'software' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.836381\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for '.github/issue_template/crash.md' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.836676\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for '.github/issue_template/bug.md' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.836932\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'mypy/config_parser.py' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.837324\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'commit_cca6e2f' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.837927\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'commit_6f07cb6' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.838309\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'commit_9d03846' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.838653\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'commit_57d3473' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:10.838967\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'commit_42a5220' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:14.763168\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 70 nodes and 156 edges in 0.02 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:15.500077\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `summarize_text`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:19.781997\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `add_data_points`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:23.577888\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 76 nodes and 209 edges in 0.02 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:24.515648\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `add_data_points`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:24.516093\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `summarize_text`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:24.516397\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_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:24.516754\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_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:24.517062\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `check_permissions_on_dataset`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:24.517361\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `classify_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:24.517606\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run completed: `7233180e-8575-54d0-bee4-700ba5f5de42`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_with_telemetry()\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:24.550762\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 76 nodes and 209 edges in 0.01 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:24.552178\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mGraph projection completed: 76 nodes, 209 edges in 0.02s\u001B[0m [\u001B[0m\u001B[1m\u001B[34mCogneeGraph\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:24.995660\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mVector collection retrieval completed: Retrieved distances from 6 collections in 0.03s\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n" ] } ], "execution_count": 5 }, { "metadata": { "ExecuteTime": { "end_time": "2025-09-07T11:55:29.022001Z", "start_time": "2025-09-07T11:55:29.019626Z" } }, "cell_type": "code", "source": "print(results[0])", "id": "f08b362cbf12b398", "outputs": [ { "name": "stdout", "output_type": "stream", "text": [ "Showing commits for repository 'mypy':\n" ] } ], "execution_count": 6 }, { "metadata": {}, "cell_type": "markdown", "source": [ "### What's just happened?\n", "The `search()` function uses natural language to query a knowledge graph containing Guido's development history.\n", "Unlike traditional databases, Cognee understands the relationships between commits, language features, design decisions, and evolution over time.\n", "\n", "Cognee also allows you to visualize the graphs created:" ], "id": "10d582d02ead905e" }, { "metadata": { "ExecuteTime": { "end_time": "2025-09-07T11:55:38.531950Z", "start_time": "2025-09-07T11:55:38.486793Z" } }, "cell_type": "code", "source": [ "from cognee import visualize_graph\n", "await visualize_graph('./guido_contributions.html')" ], "id": "1fb068f422bda6cf", "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\n", "\u001B[2m2025-09-07T11:55:38.519644\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 76 nodes and 209 edges in 0.02 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:38.522646\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mGraph visualization saved as ./guido_contributions.html\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:55:38.523615\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mThe HTML file has been stored at path: ./guido_contributions.html\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n" ] }, { "data": { "text/plain": [ "'\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\\n \\n\\n \\n \\n \\n \\n \\n '" ] }, "execution_count": 7, "metadata": {}, "output_type": "execute_result" } ], "execution_count": 7 }, { "metadata": { "ExecuteTime": { "end_time": "2025-09-07T11:55:51.971412Z", "start_time": "2025-09-07T11:55:51.966222Z" } }, "cell_type": "code", "source": [ "from IPython.display import IFrame, HTML, display\n", "display(IFrame(\"./guido_contributions.html\", width=\"100%\", height=\"500\"))" ], "id": "f24341c97d6eaccb", "outputs": [ { "data": { "text/plain": [ "" ], "text/html": [ "\n", " \n", " " ] }, "metadata": {}, "output_type": "display_data" } ], "execution_count": 8 }, { "metadata": {}, "cell_type": "markdown", "source": [ "**Why visualization matters:** Knowledge graphs reveal hidden patterns in data. In this case, patterins in Guido's contributions to Python's development. The interactive visualization shows how different projects (CPython, mypy, PEPs), features, and time periods connect - insights that show Python's thoughtful evolution.\n", "\n", "Take a moment to explore the graph. Notice how:\n", "\n", "- CPython core development clusters around 2020\n", "- Mypy contributions focus on fixtures and run classes\n", "- PEP discussions mention Thomas Grainiger and Adam Turner\n", "- Time-based connections show how ideas evolved into features" ], "id": "3418aa17bf35e3bb" }, { "metadata": {}, "cell_type": "markdown", "source": "Now we'll add the remaining data and see how they connections emerge between Guido's contributions, Python best practices, and user conversations.", "id": "5e8d9094a09ae05d" }, { "metadata": { "ExecuteTime": { "end_time": "2025-09-07T11:56:24.445525Z", "start_time": "2025-09-07T11:56:03.584840Z" } }, "cell_type": "code", "source": [ "await cognee.add(\"file://data/copilot_conversations.json\", node_set=[\"developer_data\"])\n", "await cognee.add(\"file://data/my_developer_rules.md\", node_set=[\"developer_data\"])\n", "await cognee.add(\"file://data/zen_principles.md\", node_set=[\"principles_data\"])\n", "await cognee.add(\"file://data/pep_style_guide.md\", node_set=[\"principles_data\"])\n", "\n", "await cognee.cognify()" ], "id": "5315318324968f0f", "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\n", "\u001B[2m2025-09-07T11:56:03.636275\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run started: `f5ca7c7d-08ef-584f-a745-891dcc728073`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_with_telemetry()\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.637065\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `resolve_data_directories`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.637392\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `ingest_data`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.652328\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `ingest_data`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.652727\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `resolve_data_directories`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.653007\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run completed: `f5ca7c7d-08ef-584f-a745-891dcc728073`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_with_telemetry()\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.711636\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run started: `f5ca7c7d-08ef-584f-a745-891dcc728073`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_with_telemetry()\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.712201\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `resolve_data_directories`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.712555\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `ingest_data`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.723866\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `ingest_data`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.724268\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `resolve_data_directories`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.724611\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run completed: `f5ca7c7d-08ef-584f-a745-891dcc728073`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_with_telemetry()\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.755905\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run started: `f5ca7c7d-08ef-584f-a745-891dcc728073`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_with_telemetry()\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.756284\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `resolve_data_directories`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.756685\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `ingest_data`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.767895\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `ingest_data`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.768252\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `resolve_data_directories`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.768520\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run completed: `f5ca7c7d-08ef-584f-a745-891dcc728073`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_with_telemetry()\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.801806\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run started: `f5ca7c7d-08ef-584f-a745-891dcc728073`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_with_telemetry()\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.802166\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `resolve_data_directories`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.802468\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `ingest_data`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.812704\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `ingest_data`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.813054\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `resolve_data_directories`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.813379\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run completed: `f5ca7c7d-08ef-584f-a745-891dcc728073`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_with_telemetry()\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.820869\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mOntology file 'None' not found. No owl ontology will be attached to the graph.\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.838218\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run started: `7233180e-8575-54d0-bee4-700ba5f5de42`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_with_telemetry()\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.838593\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `classify_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.838956\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `check_permissions_on_dataset`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.840133\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run started: `7233180e-8575-54d0-bee4-700ba5f5de42`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_with_telemetry()\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.840463\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `classify_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.840788\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `check_permissions_on_dataset`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.841272\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run started: `7233180e-8575-54d0-bee4-700ba5f5de42`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_with_telemetry()\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.841545\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `classify_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.841774\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `check_permissions_on_dataset`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.842389\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run started: `7233180e-8575-54d0-bee4-700ba5f5de42`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_with_telemetry()\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.842624\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `classify_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.843063\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `check_permissions_on_dataset`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.856804\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_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.862163\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_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.864341\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_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.867652\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_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.878616\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_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.905587\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_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.915328\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_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:03.940779\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_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:07.294325\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'document' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:07.295957\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'assistant guidelines' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:07.296933\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'spec.md' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:09.092344\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 80 nodes and 214 edges in 0.02 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:09.774410\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", "\n", "\u001B[2m2025-09-07T11:56:09.775032\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'the zen of python' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:09.775519\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", "\n", "\u001B[2m2025-09-07T11:56:09.775956\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'tim peters' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:09.776405\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'principles' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:09.776843\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'modern python tie-ins' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:09.777435\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'quick review checklist' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:10.061598\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `summarize_text`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:11.577685\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 88 nodes and 226 edges in 0.02 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:12.551947\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `summarize_text`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:12.894396\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `add_data_points`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:13.937846\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'styleguide' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:13.939242\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'pep 8 style guide' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:13.940158\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", "\n", "\u001B[2m2025-09-07T11:56:13.941087\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'code layout' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:13.941932\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'imports' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:13.942672\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'whitespace' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:13.943424\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'naming' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:13.944069\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'comments and docstrings' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:13.944700\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'type hints' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:13.945319\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'tooling' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:13.945917\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'common violations' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:13.946485\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'codeexample' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:13.947083\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'hanging indent example' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:13.947625\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'imports example' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:13.948310\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'whitespace example' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:13.948788\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'docstring example' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:13.990684\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", "\n", "\u001B[2m2025-09-07T11:56:13.991329\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'async/await patterns' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:13.991704\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'library' in category 'classes'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:13.992055\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'aiohttp' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:13.992374\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'semaphore' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:13.992681\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'context manager' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:13.992975\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'pydantic' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:13.993285\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'dataclass' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:13.993583\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'fastapi' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:13.993908\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'pytest-asyncio' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:13.994174\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'performance optimization' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:13.994529\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'error handling' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:13.994733\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'tcpconnector' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:13.995023\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'retry logic' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:13.995271\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'html parsing' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:13.995562\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mNo close match found for 'sqlalchemy' in category 'individuals'\u001B[0m [\u001B[0m\u001B[1m\u001B[34mOntologyAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:14.912139\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 89 nodes and 231 edges in 0.02 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:15.661925\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `add_data_points`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:15.816155\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `add_data_points`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:15.816765\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `summarize_text`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:15.817045\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_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:15.817451\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_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:15.817758\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `check_permissions_on_dataset`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:15.817988\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `classify_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:15.818206\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run completed: `7233180e-8575-54d0-bee4-700ba5f5de42`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_with_telemetry()\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:15.884291\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 106 nodes and 260 edges in 0.02 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:16.096303\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 123 nodes and 287 edges in 0.02 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:17.216211\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `summarize_text`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:17.273588\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `summarize_text`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:18.281748\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 124 nodes and 312 edges in 0.03 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:19.288421\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `add_data_points`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:19.288925\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `summarize_text`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:19.289246\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_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:19.289608\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_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:19.289921\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `check_permissions_on_dataset`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:19.290242\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `classify_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:19.290464\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run completed: `7233180e-8575-54d0-bee4-700ba5f5de42`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_with_telemetry()\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:21.079114\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `add_data_points`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:21.108303\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `add_data_points`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:23.441693\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 126 nodes and 314 edges in 0.03 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:23.453053\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 126 nodes and 314 edges in 0.05 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:24.411975\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `add_data_points`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:24.412403\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `summarize_text`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:24.412745\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_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:24.413023\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_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:24.413307\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `check_permissions_on_dataset`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:24.413565\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `classify_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:24.413803\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run completed: `7233180e-8575-54d0-bee4-700ba5f5de42`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_with_telemetry()\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:24.429816\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `add_data_points`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:24.430172\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `summarize_text`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:24.430413\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_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:24.430683\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_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:24.430929\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `check_permissions_on_dataset`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:24.431204\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `classify_documents`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:56:24.431443\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run completed: `7233180e-8575-54d0-bee4-700ba5f5de42`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_with_telemetry()\u001B[0m]\u001B[0m\n" ] }, { "data": { "text/plain": [ "{UUID('727f2c35-93eb-57f9-8f66-8856c9ae95e3'): PipelineRunCompleted(status='PipelineRunCompleted', pipeline_run_id=UUID('7cef3d5b-e7fe-5fb1-ad08-43ff407c9e44'), dataset_id=UUID('727f2c35-93eb-57f9-8f66-8856c9ae95e3'), dataset_name='main_dataset', payload=None, data_ingestion_info=[{'run_info': PipelineRunCompleted(status='PipelineRunCompleted', pipeline_run_id=UUID('7cef3d5b-e7fe-5fb1-ad08-43ff407c9e44'), dataset_id=UUID('727f2c35-93eb-57f9-8f66-8856c9ae95e3'), dataset_name='main_dataset', payload=None, data_ingestion_info=None), 'data_id': UUID('06812f34-2873-557f-86c9-debcc5b618c9')}, {'run_info': PipelineRunAlreadyCompleted(status='PipelineRunAlreadyCompleted', pipeline_run_id=UUID('7cef3d5b-e7fe-5fb1-ad08-43ff407c9e44'), dataset_id=UUID('727f2c35-93eb-57f9-8f66-8856c9ae95e3'), dataset_name='main_dataset', payload=None, data_ingestion_info=None), 'data_id': UUID('0e3b3446-ba35-5c74-a491-eac47acc6d98')}, {'run_info': PipelineRunCompleted(status='PipelineRunCompleted', pipeline_run_id=UUID('7cef3d5b-e7fe-5fb1-ad08-43ff407c9e44'), dataset_id=UUID('727f2c35-93eb-57f9-8f66-8856c9ae95e3'), dataset_name='main_dataset', payload=None, data_ingestion_info=None), 'data_id': UUID('27467b8e-9b7c-5ca1-9b2e-0d2ca315446f')}, {'run_info': PipelineRunCompleted(status='PipelineRunCompleted', pipeline_run_id=UUID('7cef3d5b-e7fe-5fb1-ad08-43ff407c9e44'), dataset_id=UUID('727f2c35-93eb-57f9-8f66-8856c9ae95e3'), dataset_name='main_dataset', payload=None, data_ingestion_info=None), 'data_id': UUID('460f2065-b267-56f7-a1c0-c7515d326dac')}, {'run_info': PipelineRunCompleted(status='PipelineRunCompleted', pipeline_run_id=UUID('7cef3d5b-e7fe-5fb1-ad08-43ff407c9e44'), dataset_id=UUID('727f2c35-93eb-57f9-8f66-8856c9ae95e3'), dataset_name='main_dataset', payload=None, data_ingestion_info=None), 'data_id': UUID('c20e772c-9313-57af-974b-2068cdfe19e8')}])}" ] }, "execution_count": 9, "metadata": {}, "output_type": "execute_result" } ], "execution_count": 9 }, { "metadata": {}, "cell_type": "markdown", "source": "", "id": "98b9b613d6d11bc5" }, { "metadata": { "ExecuteTime": { "end_time": "2025-09-07T12:02:50.808174Z", "start_time": "2025-09-07T12:02:47.323752Z" } }, "cell_type": "code", "source": [ "results = await cognee.search(\n", " \"What Python type hinting challenges did I face, and how does Guido approach similar problems in mypy?\",\n", " query_type=cognee.SearchType.GRAPH_COMPLETION\n", ")\n", "print(results)" ], "id": "98b69c45db2fca3", "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\n", "\u001B[2m2025-09-07T12:02:47.514797\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 158 nodes and 379 edges in 0.03 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T12:02:47.517739\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mGraph projection completed: 158 nodes, 379 edges in 0.03s\u001B[0m [\u001B[0m\u001B[1m\u001B[34mCogneeGraph\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T12:02:48.187870\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mVector collection retrieval completed: Retrieved distances from 6 collections in 0.02s\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "['Acknowledged.']\n" ] } ], "execution_count": 14 }, { "metadata": {}, "cell_type": "markdown", "source": [ "You'll see that cognee has connected your Python development challenges with Guido's approaches, revealing patterns like:\n", "\n", "- \"Type hint implementation failed due to circular imports - similar to issue Guido solved in mypy PR #1234\"\n", "- \"Performance bottleneck in list comprehension matches pattern Guido optimized in CPython commit abc123\"" ], "id": "6c49c4c252036fa1" }, { "metadata": {}, "cell_type": "markdown", "source": [ "Let's now introduce the memory functions. These algorithms run on top of your semantic layer, connecting the dots and improving the search.\n", "\n", "Memify is customizable and can use any transformation you'd like to write. But it also requires" ], "id": "a1f4606bfed8fc45" }, { "metadata": { "ExecuteTime": { "end_time": "2025-09-07T11:59:45.337944Z", "start_time": "2025-09-07T11:57:54.805696Z" } }, "cell_type": "code", "source": "await cognee.memify()", "id": "20234960f7566b15", "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\n", "\u001B[2m2025-09-07T11:57:54.862996\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 126 nodes and 314 edges in 0.03 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:57:54.865110\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mGraph projection completed: 126 nodes, 314 edges in 0.03s\u001B[0m [\u001B[0m\u001B[1m\u001B[34mCogneeGraph\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:57:54.886755\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run started: `af2e3872-55fb-5cbb-b0dc-0a13d0b9b1bd`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_with_telemetry()\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:57:54.887389\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mAsync Generator task started: `extract_subgraph_chunks`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:57:54.887914\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `add_rule_associations`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:58:04.375679\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 131 nodes and 318 edges in 0.02 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:58:05.428516\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 131 nodes and 322 edges in 0.02 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:58:06.414586\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `add_rule_associations`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:58:06.415131\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `add_rule_associations`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:58:06.431621\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 5 nodes and 4 edges for NodeSet in 0.01 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:58:13.285793\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 134 nodes and 325 edges in 0.06 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:58:14.299334\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 134 nodes and 328 edges in 0.03 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:58:15.255634\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `add_rule_associations`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:58:15.256386\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `add_rule_associations`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:58:15.278329\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 8 nodes and 7 edges for NodeSet in 0.01 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:58:24.608953\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 139 nodes and 333 edges in 0.02 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:58:25.817327\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 139 nodes and 338 edges in 0.02 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:58:26.805980\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `add_rule_associations`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:58:26.806649\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `add_rule_associations`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:58:26.822555\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 13 nodes and 12 edges for NodeSet in 0.01 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:58:35.652805\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 142 nodes and 341 edges in 0.02 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:58:36.686147\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 142 nodes and 344 edges in 0.02 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:58:37.699798\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `add_rule_associations`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:58:37.700712\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `add_rule_associations`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:58:37.718775\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 16 nodes and 15 edges for NodeSet in 0.01 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:58:51.576721\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 145 nodes and 347 edges in 0.07 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:58:52.568566\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 145 nodes and 350 edges in 0.03 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:58:53.516969\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `add_rule_associations`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:58:53.517455\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `add_rule_associations`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:58:53.542532\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 19 nodes and 18 edges for NodeSet in 0.02 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:59:08.426235\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 148 nodes and 353 edges in 0.03 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:59:09.560436\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 148 nodes and 356 edges in 0.02 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:59:10.503615\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `add_rule_associations`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:59:10.504130\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `add_rule_associations`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:59:10.513761\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 22 nodes and 21 edges for NodeSet in 0.01 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:59:16.601704\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 151 nodes and 359 edges in 0.03 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:59:17.605849\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 151 nodes and 362 edges in 0.02 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:59:18.869401\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `add_rule_associations`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:59:18.870007\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `add_rule_associations`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:59:18.882199\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 25 nodes and 24 edges for NodeSet in 0.01 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:59:24.709820\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 151 nodes and 362 edges in 0.03 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:59:25.731473\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 151 nodes and 365 edges in 0.02 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:59:26.769884\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `add_rule_associations`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:59:26.770412\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `add_rule_associations`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:59:26.782453\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 25 nodes and 24 edges for NodeSet in 0.01 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:59:33.591001\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 154 nodes and 368 edges in 0.03 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:59:35.111361\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 154 nodes and 371 edges in 0.02 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:59:35.719330\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `add_rule_associations`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:59:35.719937\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task started: `add_rule_associations`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:59:35.732641\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 28 nodes and 27 edges for NodeSet in 0.01 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:59:43.575467\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 158 nodes and 375 edges in 0.03 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:59:44.732779\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 158 nodes and 379 edges in 0.03 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:59:45.326267\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mCoroutine task completed: `add_rule_associations`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:59:45.326932\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mAsync Generator task completed: `extract_subgraph_chunks`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_base\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T11:59:45.327231\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mPipeline run completed: `af2e3872-55fb-5cbb-b0dc-0a13d0b9b1bd`\u001B[0m [\u001B[0m\u001B[1m\u001B[34mrun_tasks_with_telemetry()\u001B[0m]\u001B[0m\n" ] }, { "data": { "text/plain": [ "{UUID('727f2c35-93eb-57f9-8f66-8856c9ae95e3'): PipelineRunCompleted(status='PipelineRunCompleted', pipeline_run_id=UUID('85d185c7-8cf8-5e85-9894-7938a80c9acf'), dataset_id=UUID('727f2c35-93eb-57f9-8f66-8856c9ae95e3'), dataset_name='main_dataset', payload=None, data_ingestion_info=[{'run_info': PipelineRunCompleted(status='PipelineRunCompleted', pipeline_run_id=UUID('85d185c7-8cf8-5e85-9894-7938a80c9acf'), dataset_id=UUID('727f2c35-93eb-57f9-8f66-8856c9ae95e3'), dataset_name='main_dataset', payload=None, data_ingestion_info=None)}])}" ] }, "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "execution_count": 12 }, { "metadata": {}, "cell_type": "markdown", "source": [ "**What `memify()` does for Python:** This advanced function uses AI to:\n", "\n", "- **Infer rule patterns** from your code (e.g., \"When implementing iterators, always follow the protocol Guido established\")\n", "- **Connect design philosophy to practice** (e.g., linking \"explicit is better than implicit\" to your type hinting decisions)\n" ], "id": "58d3ccec16f67c24" }, { "metadata": {}, "cell_type": "markdown", "source": "Now let's see how the system has connected your Python development patterns with established best practices:\n", "id": "a304033f9f0f5dcf" }, { "metadata": { "ExecuteTime": { "end_time": "2025-09-07T12:03:12.333024Z", "start_time": "2025-09-07T12:03:09.975414Z" } }, "cell_type": "code", "source": [ "# Search for connections between your async patterns and Python philosophy\n", "results = await cognee.search(\n", " \"How does my AsyncWebScraper implementation align with Python's design principles?\",\n", " query_type=cognee.SearchType.GRAPH_COMPLETION\n", ")\n", "print(\"Python Pattern Analysis:\", results)" ], "id": "518fa9b17a604657", "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ "\n", "\u001B[2m2025-09-07T12:03:10.069706\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mRetrieved 158 nodes and 379 edges in 0.03 seconds\u001B[0m [\u001B[0m\u001B[1m\u001B[34mNeo4jAdapter\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T12:03:10.073335\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mGraph projection completed: 158 nodes, 379 edges in 0.04s\u001B[0m [\u001B[0m\u001B[1m\u001B[34mCogneeGraph\u001B[0m]\u001B[0m\n", "\n", "\u001B[2m2025-09-07T12:03:10.606712\u001B[0m [\u001B[32m\u001B[1minfo \u001B[0m] \u001B[1mVector collection retrieval completed: Retrieved distances from 6 collections in 0.07s\u001B[0m [\u001B[0m\u001B[1m\u001B[34mcognee.shared.logging_utils\u001B[0m]\u001B[0m\n" ] }, { "name": "stdout", "output_type": "stream", "text": [ "Python Pattern Analysis: ['Analyzing alignment of AsyncWebScraper with Python design principles...']\n" ] }, { "name": "stderr", "output_type": "stream", "text": [ "/var/folders/b6/fdg52thn3h309cbg6kv5nryc0000gn/T/ipykernel_78432/1153209151.py:2: RuntimeWarning: coroutine 'search' was never awaited\n", " results = await cognee.search(\n", "RuntimeWarning: Enable tracemalloc to get the object allocation traceback\n" ] } ], "execution_count": 16 }, { "metadata": {}, "cell_type": "markdown", "source": "Now let's see use time awareness feature of cognee to see what are all events that happened between X and Y", "id": "c641b8b7e50dd2ae" }, { "metadata": {}, "cell_type": "code", "outputs": [], "execution_count": null, "source": "", "id": "28e7d5a75e076b8f" }, { "metadata": {}, "cell_type": "markdown", "source": "Hm, maybe we are unhappy with the result and want to give feedback to the system so it doesn't give us a bad answer again", "id": "ec6cf074a6c272ab" }, { "metadata": {}, "cell_type": "code", "outputs": [], "execution_count": null, "source": "", "id": "67dec85a658aad76" } ], "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 }