AI Applications and RAGs - Cognitive Architecture, Testability, Production Ready Apps
Open-source framework for building and testing RAGs and Cognitive Architectures, designed for accuracy, transparency, and control.
Jump into the world of RAG 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}
In order 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
In order 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
Add the following configuration to VSCode Run and Debug
configurations array:
{
"name": "Attach (remote debug)",
"type": "python",
"request": "attach",
"port": 5678,
"host": "127.0.0.1",
"pathMappings": [{
"localRoot": "${workspaceFolder}",
"remoteRoot": "."
}]
}
It should look like this:
- Cognee uses 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.
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.