No description
Find a file
Boris 2182f619df
fix: canvas resize issues in graph visualization (#1167)
## Description
This PR adds **responsive resizing** to the graph container. The
`ForceGraph` component now dynamically adjusts its width and height when
the browser window is resized, improving the user experience by removing
the need to manually click the "Fit Into View" button. solver issue
#1164

## 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.

---

##  Changes Made (Minimal, Additive Only)

### 1. **Added necessary imports**
```typescript
import { MutableRefObject, useEffect, useImperativeHandle, useRef, useState, useCallback } from "react";
// Added useCallback to existing imports
```

### 2. **Added responsive sizing state and refs**
```typescript
// State for tracking container dimensions
const [dimensions, setDimensions] = useState({ width: 0, height: 0 });
const containerRef = useRef<HTMLDivElement>(null);
```

### 3. **Added resize handling logic**
```typescript
// Handle window resize
const handleResize = useCallback(() => {
  if (containerRef.current) {
    const { clientWidth, clientHeight } = containerRef.current;
    setDimensions({ width: clientWidth, height: clientHeight });

    // Trigger graph refresh after resize
    if (graphRef.current) {
      // Small delay to ensure DOM has updated
      setTimeout(() => {
        graphRef.current?.refresh();
      }, 100);
    }
  }
}, []);

// Set up resize observer 
useEffect(() => {
  // Initial size calculation
  handleResize();

  // ResizeObserver for more precise container size tracking
  const resizeObserver = new ResizeObserver(() => {
    handleResize();
  });

  if (containerRef.current) {
    resizeObserver.observe(containerRef.current);
  }

  return () => {
    resizeObserver.disconnect();
  };
}, [handleResize]);
```

### 4. **Added container ref to wrapping div**
```tsx
<div ref={containerRef} className="w-full h-full" id="graph-container">
  {/* Graph component rendered here */}
</div>
```

### 5. **Passed dynamic width/height to ForceGraph**
```tsx
<ForceGraph
  ref={graphRef}
  width={dimensions.width}
  height={dimensions.height}
  dagMode={graphShape as unknown as undefined}
  // ... rest of props unchanged
/>
```

---

you can check this video out:


https://github.com/user-attachments/assets/e8e42c99-23e9-4acd-a51b-c59e8bee7094
2025-07-30 11:16:38 +02:00
.github fix: Remove weaviate (#1139) 2025-07-23 19:34:35 +02:00
alembic Regen lock files (#1153) 2025-07-25 11:45:28 -04:00
assets Merge dev with main (#921) 2025-06-07 07:48:47 -07:00
bin Revert "Clean up core cognee repo" 2025-05-15 10:46:01 +02:00
cognee Kuzu migration notes (#1149) 2025-07-25 14:38:10 +02:00
cognee-frontend Fix canvas resize issues in graph visualization 2025-07-30 02:16:09 +05:30
cognee-mcp Regen lock files (#1153) 2025-07-25 11:45:28 -04:00
cognee-starter-kit feat: Cog 2340 remove graphistry (#1080) 2025-07-21 15:06:23 -04:00
deployment fix: Remove weaviate (#1139) 2025-07-23 19:34:35 +02:00
distributed fix: remove obsolete files and fix unit tests 2025-07-08 22:47:09 +02:00
evals feat: unify comparative evals (#916) 2025-06-11 10:06:09 +02:00
examples fix: Remove weaviate (#1139) 2025-07-23 19:34:35 +02:00
licenses Revert "Clean up core cognee repo" 2025-05-15 10:46:01 +02:00
logs feat: Add logging to file [COG-1715] (#672) 2025-03-28 16:13:56 +01:00
notebooks added update 2025-06-30 14:20:06 +02:00
tools Revert "Clean up core cognee repo" 2025-05-15 10:46:01 +02:00
.dockerignore Revert "Clean up core cognee repo" 2025-05-15 10:46:01 +02:00
.env.template Secure api v2 (#1050) 2025-07-07 20:41:43 +02:00
.gitattributes Merge dev with main (#921) 2025-06-07 07:48:47 -07:00
.gitguardian.yml fix: Mcp improvements (#1114) 2025-07-24 21:52:16 +02:00
.gitignore Regen lock files (#1153) 2025-07-25 11:45:28 -04:00
.pre-commit-config.yaml Feat: log pipeline status and pass it through pipeline [COG-1214] (#501) 2025-02-11 16:41:40 +01:00
.pylintrc fix: enable sqlalchemy adapter 2024-08-04 22:23:28 +02:00
alembic.ini fix: Logger suppresion and database logs (#1041) 2025-07-03 20:08:27 +02:00
CODE_OF_CONDUCT.md Update CODE_OF_CONDUCT.md 2024-12-13 11:30:16 +01:00
cognee-gui.py Revert "Clean up core cognee repo" 2025-05-15 10:46:01 +02:00
CONTRIBUTING.md enhancement: Optimizing embedding calls in brute_force_search (#1101) 2025-07-22 13:50:25 +02:00
CONTRIBUTORS.md Merge with main (#892) 2025-05-30 23:13:04 +02:00
DCO.md Create DCO.md 2024-12-13 11:28:44 +01:00
docker-compose.yml fix: Mcp improvements (#1114) 2025-07-24 21:52:16 +02:00
Dockerfile fix: Remove weaviate (#1139) 2025-07-23 19:34:35 +02:00
entrypoint.sh Regen lock files (#1153) 2025-07-25 11:45:28 -04:00
LICENSE Update LICENSE 2024-03-30 11:57:07 +01:00
mypy.ini fix: Remove weaviate (#1139) 2025-07-23 19:34:35 +02:00
NOTICE.md add NOTICE file, reference CoC in contribution guidelines, add licenses folder for external licenses 2024-12-06 13:27:55 +00:00
poetry.lock Regen lock files (#1153) 2025-07-25 11:45:28 -04:00
pyproject.toml version: v0.2.1 (#1154) 2025-07-25 17:49:06 +02:00
README.md chore: Update README.md (#1138) 2025-07-23 18:12:33 +02:00
SECURITY.md Merge main vol 2 (#967) 2025-06-11 09:28:41 -04:00
uv.lock version: v0.2.1 (#1154) 2025-07-25 17:49:06 +02:00

Cognee Logo

cognee - Memory for AI Agents in 5 lines of code

Demo . Learn more · Join Discord · Join r/AIMemory . Docs . cognee community repo

GitHub forks GitHub stars GitHub commits Github tag Downloads License Contributors Sponsor

cognee - Memory for AI Agents  in 5 lines of code | Product Hunt topoteretes%2Fcognee | Trendshift

🚀 We launched Cogwit beta (Fully-hosted AI Memory): Sign up here! 🚀

Build dynamic memory for Agents and replace RAG using scalable, modular ECL (Extract, Cognify, Load) pipelines.

More on use-cases and evals

🌐 Available Languages : Deutsch | Español | français | 日本語 | 한국어 | Português | Русский | 中文

Why cognee?

Features

  • Interconnect and retrieve your past conversations, documents, images and audio transcriptions
  • Replaces RAG systems and reduces developer effort, and cost.
  • Load data to graph and vector databases using only Pydantic
  • Manipulate your data while ingesting from 30+ data sources

Get Started

Get started quickly with a Google Colab notebook , Deepnote notebook or starter repo

Contributing

Your contributions are at the core of making this a true open source project. Any contributions you make are greatly appreciated. See CONTRIBUTING.md for more information.

📦 Installation

You can install Cognee using either pip, poetry, uv or any other python package manager. Cognee supports Python 3.8 to 3.12

With pip

pip install cognee

Local Cognee installation

You can install the local Cognee repo using pip, poetry and uv. For local pip installation please make sure your pip version is above version 21.3.

with UV with all optional dependencies

uv sync --all-extras

💻 Basic Usage

Setup

import os
os.environ["LLM_API_KEY"] = "YOUR OPENAI_API_KEY"

You can also set the variables by creating .env file, using our template. To use different LLM providers, for more info check out our documentation

Simple example

This script will run the default pipeline:

import cognee
import asyncio


async def main():
    # Add text to cognee
    await cognee.add("Natural language processing (NLP) is an interdisciplinary subfield of computer science and information retrieval.")

    # Generate the knowledge graph
    await cognee.cognify()

    # Query the knowledge graph
    results = await cognee.search("Tell me about NLP")

    # Display the results
    for result in results:
        print(result)


if __name__ == '__main__':
    asyncio.run(main())

Example output:

  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.

Our paper is out! Read here

cognee paper

Cognee UI

You can also cognify your files and query using cognee UI.

Cognee UI 2

Try cognee UI out locally here.

Understand our architecture

cognee concept diagram

Demos

  1. Cogwit Beta demo:

Cogwit Beta

  1. Simple GraphRAG demo

Simple GraphRAG demo

  1. cognee with Ollama

cognee with local models

Code of Conduct

We are committed to making open source an enjoyable and respectful experience for our community. See CODE_OF_CONDUCT for more information.

💫 Contributors

contributors

Star History

Star History Chart