# cognee
AI Memory - Cognitive Architecture, Testability, Production-Ready Apps
Open-source framework for building AI Memory, extending the limits of cognitive architecture, designed for accuracy, transparency, and control.
[Star us on Github!](https://www.github.com/topoteretes/cognee)
Jump into AI memory architecture, inspired by human cognitive processes, using Python.
Cognee runs in iterations, from POC towards production-ready code.
To read more about the approach and details on cognitive architecture, see the blog post: AI Applications and RAGs - Cognitive Architecture, Testability, Production Ready Apps
Try it yourself on Whatsapp with one of our partners by typing `/save {content you want to save}` followed by `/query {knowledge you saved previously}`
## Getting started
### Run with Docker
To run cognee you need to have Docker installed on your machine.
Run Cognee in a couple of steps:
- Run `cp .env.template .env` in your terminal and set all the environment variables
- Run `docker compose up` in order to start graph and relational databases
- Run `docker compose up cognee` in order start Cognee
#### Debugging
To run Cognee with debugger attached you need to build the Cognee image with the `DEBUG` flag set to true.
- `docker compose build cognee --no-cache --build-arg DEBUG=true`
- `docker compose up cognee`
### Run without Docker
- Run `PYTHONPATH=. python cognitive_architecture/setup_database.py` to setup database
- Run `python -m gunicorn -w 1 -k uvicorn.workers.UvicornWorker -t 30000 --bind=127.0.0.1:8000 --log-level debug api:app`
#### Debugging
- Run `python -m debugpy --wait-for-client --listen localhost:5678 -m gunicorn -w 1 -k uvicorn.workers.UvicornWorker -t 30000 --bind=127.0.0.1:8000 --log-level debug api:app`
- Attach debugger
## Demo
[
](https://www.youtube.com/watch?v=yjParvJVgPI "Learn about cognee: 55")
## Architecture
### How Cognee Enhances Your Contextual Memory
Our framework for the OpenAI, Graph (Neo4j) and Vector (Weaviate) databases introduces three key enhancements:
- Query Classifiers: Navigate information graph using Pydantic OpenAI classifiers.
- Document Topology: Structure and store documents in public and private domains.
- Personalized Context: Provide a context object to the LLM for a better response.

## Current Focus
### Integration with keepi.ai and other apps
- Cognee uses the Neo4j graph database to map user data into a graph structure consisting of semantic, episodic, and procedural memory.
- Stores data and files through the WhatsApp chatbot keepi.ai
- Uses the graph to answer user queries and store new information in the graph.