Metadata-Version: 2.4
Name: cognee
Version: 0.5.4.dev1
Summary: Cognee - is a library for enriching LLM context with a semantic layer for better understanding and reasoning.
Project-URL: Homepage, https://www.cognee.ai
Project-URL: Repository, https://github.com/topoteretes/cognee
Author: Vasilije Markovic, Boris Arzentar
License-Expression: Apache-2.0
License-File: LICENSE
License-File: NOTICE.md
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: Apache Software License
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Operating System :: Microsoft :: Windows
Classifier: Operating System :: POSIX :: Linux
Classifier: Topic :: Software Development :: Libraries
Requires-Python: <3.14,>=3.10
Requires-Dist: aiofiles>=23.2.1
Requires-Dist: aiohttp<4.0.0,>=3.13.3
Requires-Dist: aiolimiter>=1.2.1
Requires-Dist: aiosqlite<1.0.0,>=0.20.0
Requires-Dist: alembic<2,>=1.13.3
Requires-Dist: cbor2>=5.8.0
Requires-Dist: datamodel-code-generator>=0.54.0
Requires-Dist: diskcache>=5.6.3
Requires-Dist: fakeredis[lua]>=2.32.0
Requires-Dist: fastapi-users[sqlalchemy]>=15.0.2
Requires-Dist: fastapi<1.0.0,>=0.116.2
Requires-Dist: fastembed<=0.6.0
Requires-Dist: filetype<2.0.0,>=1.2.0
Requires-Dist: gunicorn<24,>=20.1.0
Requires-Dist: instructor<2.0.0,>=1.9.1
Requires-Dist: jinja2<4,>=3.1.3
Requires-Dist: kuzu==0.11.3
Requires-Dist: lancedb<1.0.0,>=0.24.0
Requires-Dist: langdetect>=1.0.9
Requires-Dist: limits<5,>=4.4.1
Requires-Dist: litellm>=1.76.0
Requires-Dist: mistralai>=1.9.10
Requires-Dist: nbformat<6.0.0,>=5.7.0
Requires-Dist: networkx<4,>=3.4.2
Requires-Dist: numpy<=4.0.0,>=1.26.4
Requires-Dist: onnxruntime<=1.22.1
Requires-Dist: openai>=1.80.1
Requires-Dist: pydantic-settings<3,>=2.2.1
Requires-Dist: pydantic>=2.10.5
Requires-Dist: pylance<=0.36.0,>=0.22.0
Requires-Dist: pympler<2.0.0,>=1.1
Requires-Dist: pypdf<7.0.0,>=6.6.2
Requires-Dist: python-dotenv<2.0.0,>=1.0.1
Requires-Dist: python-magic-bin<0.5; platform_system == 'Windows'
Requires-Dist: python-multipart<1.0.0,>=0.0.22
Requires-Dist: rdflib<7.2.0,>=7.1.4
Requires-Dist: sqlalchemy<3.0.0,>=2.0.39
Requires-Dist: structlog<26,>=25.2.0
Requires-Dist: tenacity>=9.0.0
Requires-Dist: tiktoken<1.0.0,>=0.8.0
Requires-Dist: typing-extensions<5.0.0,>=4.12.2
Requires-Dist: urllib3>=2.6.0
Requires-Dist: uvicorn<1.0.0,>=0.34.0
Requires-Dist: websockets<16.0.0,>=15.0.1
Provides-Extra: anthropic
Requires-Dist: anthropic>=0.27; extra == 'anthropic'
Provides-Extra: api
Provides-Extra: aws
Requires-Dist: s3fs[boto3]==2025.3.2; extra == 'aws'
Provides-Extra: baml
Requires-Dist: baml-py==0.206.0; extra == 'baml'
Provides-Extra: chromadb
Requires-Dist: chromadb<0.7,>=0.6; extra == 'chromadb'
Requires-Dist: pypika==0.48.9; extra == 'chromadb'
Provides-Extra: codegraph
Requires-Dist: fastembed<=0.6.0; (python_version < '3.13') and extra == 'codegraph'
Requires-Dist: transformers<5,>=4.46.3; extra == 'codegraph'
Requires-Dist: tree-sitter-python<0.24,>=0.23.6; extra == 'codegraph'
Requires-Dist: tree-sitter<0.25,>=0.24.0; extra == 'codegraph'
Provides-Extra: debug
Requires-Dist: debugpy<2.0.0,>=1.8.9; extra == 'debug'
Provides-Extra: deepeval
Requires-Dist: deepeval<4,>=3.0.1; extra == 'deepeval'
Provides-Extra: dev
Requires-Dist: coverage<8,>=7.3.2; extra == 'dev'
Requires-Dist: deptry<0.21,>=0.20.0; extra == 'dev'
Requires-Dist: gitpython<4,>=3.1.43; extra == 'dev'
Requires-Dist: mkdocs-material<10,>=9.5.42; extra == 'dev'
Requires-Dist: mkdocs-minify-plugin<0.9,>=0.8.0; extra == 'dev'
Requires-Dist: mkdocstrings[python]<0.27,>=0.26.2; extra == 'dev'
Requires-Dist: mypy<2,>=1.7.1; extra == 'dev'
Requires-Dist: notebook<8,>=7.1.0; extra == 'dev'
Requires-Dist: pre-commit<5,>=4.0.1; extra == 'dev'
Requires-Dist: pylint<4,>=3.0.3; extra == 'dev'
Requires-Dist: pytest-asyncio<0.22,>=0.21.1; extra == 'dev'
Requires-Dist: pytest-cov<7.0.0,>=6.1.1; extra == 'dev'
Requires-Dist: pytest<8,>=7.4.0; extra == 'dev'
Requires-Dist: ruff<=0.13.1,>=0.9.2; extra == 'dev'
Requires-Dist: tweepy<5.0.0,>=4.14.0; extra == 'dev'
Provides-Extra: distributed
Requires-Dist: modal<2.0.0,>=1.0.5; extra == 'distributed'
Provides-Extra: dlt
Requires-Dist: dlt[sqlalchemy]<2,>=1.9.0; extra == 'dlt'
Provides-Extra: docling
Requires-Dist: docling>=2.54; extra == 'docling'
Requires-Dist: transformers>=4.55; extra == 'docling'
Provides-Extra: docs
Requires-Dist: lxml<5,>=4.9.3; (python_version < '3.13') and extra == 'docs'
Requires-Dist: lxml<6,>=5; (python_version >= '3.13') and extra == 'docs'
Requires-Dist: unstructured[csv,doc,docx,epub,md,odt,org,pdf,ppt,pptx,rst,rtf,tsv,xlsx]<19,>=0.18.1; extra == 'docs'
Provides-Extra: evals
Requires-Dist: gdown<6,>=5.2.0; extra == 'evals'
Requires-Dist: matplotlib<4,>=3.8.3; extra == 'evals'
Requires-Dist: pandas<3.0.0,>=2.2.2; extra == 'evals'
Requires-Dist: plotly<7,>=6.0.0; extra == 'evals'
Requires-Dist: scikit-learn<2,>=1.6.1; extra == 'evals'
Provides-Extra: graphiti
Requires-Dist: graphiti-core<0.8,>=0.7.0; extra == 'graphiti'
Provides-Extra: groq
Requires-Dist: groq<1.0.0,>=0.8.0; extra == 'groq'
Provides-Extra: huggingface
Requires-Dist: transformers<5,>=4.46.3; extra == 'huggingface'
Provides-Extra: langchain
Requires-Dist: langchain-core>=1.2.5; extra == 'langchain'
Requires-Dist: langchain-text-splitters<1.0.0,>=0.3.2; extra == 'langchain'
Requires-Dist: langsmith<1.0.0,>=0.2.3; extra == 'langchain'
Provides-Extra: llama-cpp
Requires-Dist: llama-cpp-python[server]<1.0.0,>=0.3.0; extra == 'llama-cpp'
Provides-Extra: llama-index
Requires-Dist: llama-index-core<0.14,>=0.13.0; extra == 'llama-index'
Provides-Extra: mistral
Requires-Dist: mistral-common<2,>=1.5.2; extra == 'mistral'
Provides-Extra: monitoring
Requires-Dist: langfuse<3,>=2.32.0; extra == 'monitoring'
Requires-Dist: opentelemetry-api<2,>=1.20.0; extra == 'monitoring'
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc<2,>=1.20.0; extra == 'monitoring'
Requires-Dist: opentelemetry-exporter-otlp-proto-http<2,>=1.20.0; extra == 'monitoring'
Requires-Dist: opentelemetry-sdk<2,>=1.20.0; extra == 'monitoring'
Requires-Dist: sentry-sdk[fastapi]<3,>=2.9.0; extra == 'monitoring'
Provides-Extra: neo4j
Requires-Dist: neo4j<6,>=5.28.0; extra == 'neo4j'
Provides-Extra: neptune
Requires-Dist: langchain-aws>=0.2.22; extra == 'neptune'
Provides-Extra: notebook
Requires-Dist: notebook<8,>=7.1.0; extra == 'notebook'
Provides-Extra: ollama
Requires-Dist: transformers<5,>=4.46.3; extra == 'ollama'
Provides-Extra: postgres
Requires-Dist: asyncpg<1.0.0,>=0.30.0; extra == 'postgres'
Requires-Dist: pgvector<0.4,>=0.3.5; extra == 'postgres'
Requires-Dist: psycopg2<3,>=2.9.10; extra == 'postgres'
Provides-Extra: postgres-binary
Requires-Dist: asyncpg<1.0.0,>=0.30.0; extra == 'postgres-binary'
Requires-Dist: pgvector<0.4,>=0.3.5; extra == 'postgres-binary'
Requires-Dist: psycopg2-binary<3.0.0,>=2.9.10; extra == 'postgres-binary'
Provides-Extra: posthog
Requires-Dist: posthog<4,>=3.5.0; extra == 'posthog'
Provides-Extra: redis
Requires-Dist: redis<6.0.0,>=5.0.3; extra == 'redis'
Provides-Extra: scraping
Requires-Dist: apscheduler<=3.11.0,>=3.10.0; extra == 'scraping'
Requires-Dist: beautifulsoup4>=4.13.1; extra == 'scraping'
Requires-Dist: lxml<5,>=4.9.3; (python_version < '3.13') and extra == 'scraping'
Requires-Dist: lxml<6,>=5; (python_version >= '3.13') and extra == 'scraping'
Requires-Dist: playwright>=1.9.0; extra == 'scraping'
Requires-Dist: protego>=0.1; extra == 'scraping'
Requires-Dist: tavily-python>=0.7.12; extra == 'scraping'
Provides-Extra: tracing
Requires-Dist: opentelemetry-api<2,>=1.20.0; extra == 'tracing'
Requires-Dist: opentelemetry-exporter-otlp-proto-grpc<2,>=1.20.0; extra == 'tracing'
Requires-Dist: opentelemetry-exporter-otlp-proto-http<2,>=1.20.0; extra == 'tracing'
Requires-Dist: opentelemetry-sdk<2,>=1.20.0; extra == 'tracing'
Description-Content-Type: text/markdown

<div align="center">
  <a href="https://github.com/topoteretes/cognee">
    <img src="https://raw.githubusercontent.com/topoteretes/cognee/refs/heads/dev/assets/cognee-logo-transparent.png" alt="Cognee Logo" height="60">
  </a>

  <br />

  Cognee - Build AI memory with a Knowledge Engine that learns

  <p align="center">
  <a href="https://www.youtube.com/watch?v=1bezuvLwJmw&t=2s">Demo</a>
  .
  <a href="https://docs.cognee.ai/">Docs</a>
  .
  <a href="https://cognee.ai">Learn More</a>
  ·
  <a href="https://discord.gg/NQPKmU5CCg">Join Discord</a>
  ·
  <a href="https://www.reddit.com/r/AIMemory/">Join r/AIMemory</a>
  .
  <a href="https://github.com/topoteretes/cognee-community">Community Plugins & Add-ons</a>
  </p>


  [![GitHub forks](https://img.shields.io/github/forks/topoteretes/cognee.svg?style=social&label=Fork&maxAge=2592000)](https://GitHub.com/topoteretes/cognee/network/)
  [![GitHub stars](https://img.shields.io/github/stars/topoteretes/cognee.svg?style=social&label=Star&maxAge=2592000)](https://GitHub.com/topoteretes/cognee/stargazers/)
  [![GitHub commits](https://badgen.net/github/commits/topoteretes/cognee)](https://GitHub.com/topoteretes/cognee/commit/)
  [![GitHub tag](https://badgen.net/github/tag/topoteretes/cognee)](https://github.com/topoteretes/cognee/tags/)
  [![Downloads](https://static.pepy.tech/badge/cognee)](https://pepy.tech/project/cognee)
  [![License](https://img.shields.io/github/license/topoteretes/cognee?colorA=00C586&colorB=000000)](https://github.com/topoteretes/cognee/blob/main/LICENSE)
  [![Contributors](https://img.shields.io/github/contributors/topoteretes/cognee?colorA=00C586&colorB=000000)](https://github.com/topoteretes/cognee/graphs/contributors)
  <a href="https://github.com/sponsors/topoteretes"><img src="https://img.shields.io/badge/Sponsor-❤️-ff69b4.svg" alt="Sponsor"></a>

<p>
  <a href="https://www.producthunt.com/posts/cognee?embed=true&utm_source=badge-top-post-badge&utm_medium=badge&utm_souce=badge-cognee" target="_blank" style="display:inline-block; margin-right:10px;">
    <img src="https://api.producthunt.com/widgets/embed-image/v1/top-post-badge.svg?post_id=946346&theme=light&period=daily&t=1744472480704" alt="cognee - Memory&#0032;for&#0032;AI&#0032;Agents&#0032;&#0032;in&#0032;5&#0032;lines&#0032;of&#0032;code | Product Hunt" width="250" height="54" />
  </a>

  <a href="https://trendshift.io/repositories/13955" target="_blank" style="display:inline-block;">
    <img src="https://trendshift.io/api/badge/repositories/13955" alt="topoteretes%2Fcognee | Trendshift" width="250" height="55" />
  </a>
</p>

Use our knowledge engine to build personalized and dynamic memory for AI Agents.

  <p align="center">
  🌐 Available Languages
  :
  <!-- Keep these links. Translations will automatically update with the README. -->
  <a href="https://www.readme-i18n.com/topoteretes/cognee?lang=de">Deutsch</a> |
  <a href="https://www.readme-i18n.com/topoteretes/cognee?lang=es">Español</a> |
  <a href="https://www.readme-i18n.com/topoteretes/cognee?lang=fr">Français</a> |
  <a href="https://www.readme-i18n.com/topoteretes/cognee?lang=ja">日本語</a> |
  <a href="README_ko.md">한국어</a> |
  <a href="https://www.readme-i18n.com/topoteretes/cognee?lang=pt">Português</a> |
  <a href="https://www.readme-i18n.com/topoteretes/cognee?lang=ru">Русский</a> |
  <a href="https://www.readme-i18n.com/topoteretes/cognee?lang=zh">中文</a>
  </p>


<div style="text-align: center">
  <img src="https://raw.githubusercontent.com/topoteretes/cognee/refs/heads/main/assets/cognee_benefits.png" alt="Why cognee?" width="50%" />
</div>
</div>




## About Cognee

Cognee is an open-source knowledge engine that transforms your raw data into persistent and dynamic AI memory for Agents. It combines vector search, graph databases and self-improvement to make your documents both searchable by meaning and connected by relationships as they change and evolve.

Cognee offers default knowledge creation and search which we describe bellow. But with Cognee you can build your modular knowledge blocks!


:star: _Help us reach more developers and grow the cognee community. Star this repo!_


### Cognee Open Source:

- Interconnects any type of data — including past conversations, files, images, and audio transcriptions
- Replaces traditional database lookups with a unified knowledge engine built with graphs and vectors
- Reduces developer effort and infrastructure cost while improving quality and precision
- Provides Pythonic data pipelines for ingestion from 30+ data sources
- Offers high customizability through user-defined tasks, modular pipelines, and built-in search endpoints


## Basic Usage & Feature Guide

To learn more, [check out this short, end-to-end Colab walkthrough](https://colab.research.google.com/drive/12Vi9zID-M3fpKpKiaqDBvkk98ElkRPWy?usp=sharing) of Cognee's core features.

[![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/drive/12Vi9zID-M3fpKpKiaqDBvkk98ElkRPWy?usp=sharing)

## Quickstart

Let’s try Cognee in just a few lines of code. For detailed setup and configuration, see the [Cognee Docs](https://docs.cognee.ai/getting-started/installation#environment-configuration).

### Prerequisites

- Python 3.10 to 3.13

### Step 1: Install Cognee

You can install Cognee with **pip**, **poetry**, **uv**, or your preferred Python package manager.

```bash
uv pip install cognee
```

### Step 2: Configure the LLM
```python
import os
os.environ["LLM_API_KEY"] = "YOUR OPENAI_API_KEY"
```
Alternatively, create a `.env` file using our [template](https://github.com/topoteretes/cognee/blob/main/.env.template).

To integrate other LLM providers, see our [LLM Provider Documentation](https://docs.cognee.ai/setup-configuration/llm-providers).

### Step 3: Run the Pipeline

Cognee will take your documents, generate a knowledge graph from them and then query the graph based on combined relationships.

Now, run a minimal pipeline:

```python
import cognee
import asyncio
from pprint import pprint


async def main():
    # Add text to cognee
    await cognee.add("Cognee turns documents into AI memory.")

    # Generate the knowledge graph
    await cognee.cognify()

    # Add memory algorithms to the graph
    await cognee.memify()

    # Query the knowledge graph
    results = await cognee.search("What does Cognee do?")

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


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

```

As you can see, the output is generated from the document we previously stored in Cognee:

```bash
  Cognee turns documents into AI memory.
```

### Use the Cognee CLI

As an alternative, you can get started with these essential commands:

```bash
cognee-cli add "Cognee turns documents into AI memory."

cognee-cli cognify

cognee-cli search "What does Cognee do?"
cognee-cli delete --all

```

To open the local UI, run:
```bash
cognee-cli -ui
```

## Demos & Examples

See Cognee in action:

### Persistent Agent Memory

[Cognee Memory for LangGraph Agents](https://github.com/user-attachments/assets/e113b628-7212-4a2b-b288-0be39a93a1c3)

### Simple GraphRAG

[Watch Demo](https://github.com/user-attachments/assets/f2186b2e-305a-42b0-9c2d-9f4473f15df8)

### Cognee with Ollama

[Watch Demo](https://github.com/user-attachments/assets/39672858-f774-4136-b957-1e2de67b8981)


## Community & Support

### Contributing
We welcome contributions from the community! Your input helps make Cognee better for everyone. See [`CONTRIBUTING.md`](CONTRIBUTING.md) to get started.

### Code of Conduct

We're committed to fostering an inclusive and respectful community. Read our [Code of Conduct](https://github.com/topoteretes/cognee/blob/main/CODE_OF_CONDUCT.md) for guidelines.

## Research & Citation

We recently published a research paper on optimizing knowledge graphs for LLM reasoning:

```bibtex
@misc{markovic2025optimizinginterfaceknowledgegraphs,
      title={Optimizing the Interface Between Knowledge Graphs and LLMs for Complex Reasoning},
      author={Vasilije Markovic and Lazar Obradovic and Laszlo Hajdu and Jovan Pavlovic},
      year={2025},
      eprint={2505.24478},
      archivePrefix={arXiv},
      primaryClass={cs.AI},
      url={https://arxiv.org/abs/2505.24478},
}
```
