cognee/notebooks/cognee_code_graph_demo.ipynb
Boris 45f7c63322
fix: notebooks errors (#565)
<!-- .github/pull_request_template.md -->

## Description
<!-- Provide a clear description of the changes in this PR -->

## DCO Affirmation
I affirm that all code in every commit of this pull request conforms to
the terms of the Topoteretes Developer Certificate of Origin


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

- **New Features**
- Automatically creates a blank graph when a file isn’t found, ensuring
smoother operations.
- Updated demonstration notebooks with dynamic configurations, including
refined search operations and input prompts.
- Introduced optional support for additional graph functionalities via
an integrated dependency.

- **Refactor**
- Streamlined processing by eliminating duplicate steps and simplifying
graph rendering workflows.

- **Chores**
- Updated environment configurations and upgraded the Python runtime for
improved performance and consistency.

<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2025-02-19 14:07:11 -08:00

155 lines
4 KiB
Text

{
"cells": [
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"\n",
"os.environ[\"GRAPHISTRY_USERNAME\"] = input(\"Please enter your graphistry username\")\n",
"os.environ[\"GRAPHISTRY_PASSWORD\"] = input(\"Please enter your graphistry password\")\n",
"os.environ[\"OPENAI_API_KEY\"] = input(\"Please enter your OpenAI API key\")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"import pathlib\n",
"import cognee\n",
"from cognee.infrastructure.databases.relational import create_db_and_tables\n",
"\n",
"notebook_path = os.path.abspath(\"\")\n",
"data_directory_path = str(\n",
" pathlib.Path(os.path.join(notebook_path, \".data_storage/code_graph\")).resolve()\n",
")\n",
"cognee.config.data_root_directory(data_directory_path)\n",
"cognee_directory_path = str(\n",
" pathlib.Path(os.path.join(notebook_path, \".cognee_system/code_graph\")).resolve()\n",
")\n",
"cognee.config.system_root_directory(cognee_directory_path)\n",
"\n",
"await cognee.prune.prune_data()\n",
"await cognee.prune.prune_system(metadata=True)\n",
"\n",
"await create_db_and_tables()"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from os import path\n",
"from pathlib import Path\n",
"from cognee.infrastructure.files.storage import LocalStorage\n",
"import git\n",
"\n",
"notebook_path = path.abspath(\"\")\n",
"repo_clone_location = path.join(notebook_path, \".data/graphrag\")\n",
"\n",
"LocalStorage.remove_all(repo_clone_location)\n",
"\n",
"git.Repo.clone_from(\n",
" \"git@github.com:microsoft/graphrag.git\",\n",
" Path(repo_clone_location),\n",
" branch=\"main\",\n",
" single_branch=True,\n",
")"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from cognee.tasks.repo_processor import (\n",
" get_repo_file_dependencies,\n",
")\n",
"from cognee.tasks.storage import add_data_points\n",
"from cognee.modules.pipelines.tasks.Task import Task\n",
"\n",
"detailed_extraction = True\n",
"\n",
"tasks = [\n",
" Task(get_repo_file_dependencies, detailed_extraction=detailed_extraction),\n",
" Task(add_data_points, task_config={\"batch_size\": 100 if detailed_extraction else 500}),\n",
"]"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from cognee.modules.pipelines import run_tasks\n",
"from uuid import uuid5, NAMESPACE_OID\n",
"\n",
"pipeline = run_tasks(tasks, uuid5(NAMESPACE_OID, repo_clone_location), repo_clone_location, \"code_graph_pipeline\")\n",
"\n",
"async for result in pipeline:\n",
" print(result)"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from cognee.shared.utils import render_graph\n",
"\n",
"await render_graph()"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# Let's check the evaluations"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"from cognee import search, SearchType\n",
"\n",
"results = await search(query_type=SearchType.CODE, query_text=\"def create_graphrag_config\")\n",
"\n",
"print(results)\n"
]
}
],
"metadata": {
"kernelspec": {
"display_name": ".venv",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.8"
}
},
"nbformat": 4,
"nbformat_minor": 2
}