diff --git a/.env.template b/.env.template
index ddcd41a6c..b91f89540 100644
--- a/.env.template
+++ b/.env.template
@@ -176,7 +176,14 @@ ENABLE_BACKEND_ACCESS_CONTROL=False
# Cognee Cloud API settings for syncing data to/from cloud infrastructure
COGNEE_CLOUD_API_URL="http://localhost:8001"
-COGNEE_CLOUD_AUTH_TOKEN="your-auth-token"
+COGNEE_CLOUD_AUTH_TOKEN="your-api-key"
+
+################################################################################
+# UI Settings
+################################################################################
+
+# URL where the frontend is served, defaults to http://localhost:3000
+UI_APP_URL=http://localhost:3000
################################################################################
# 🛠️ DEV Settings
@@ -196,6 +203,16 @@ LITELLM_LOG="ERROR"
# DEFAULT_USER_EMAIL=""
# DEFAULT_USER_PASSWORD=""
+################################################################################
+# 📂 AWS Settings
+################################################################################
+
+#AWS_REGION=""
+#AWS_ENDPOINT_URL=""
+#AWS_ACCESS_KEY_ID=""
+#AWS_SECRET_ACCESS_KEY=""
+#AWS_SESSION_TOKEN=""
+
------------------------------- END OF POSSIBLE SETTINGS -------------------------------
diff --git a/.github/actions/cognee_setup/action.yml b/.github/actions/cognee_setup/action.yml
index 9ae669b53..e46a42edb 100644
--- a/.github/actions/cognee_setup/action.yml
+++ b/.github/actions/cognee_setup/action.yml
@@ -24,7 +24,7 @@ runs:
uses: astral-sh/setup-uv@v4
with:
enable-cache: true
-
+
- name: Rebuild uv lockfile
shell: bash
run: |
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
index 76ff5965c..0e6f74188 100644
--- a/.github/pull_request_template.md
+++ b/.github/pull_request_template.md
@@ -1,8 +1,8 @@
## Description
-
@@ -16,15 +16,6 @@ DO NOT use AI-generated descriptions. We want to understand your thought process
- [ ] Performance improvement
- [ ] Other (please specify):
-## Changes Made
-
--
--
--
-
-## Testing
-
-
## Screenshots/Videos (if applicable)
@@ -40,11 +31,5 @@ DO NOT use AI-generated descriptions. We want to understand your thought process
- [ ] I have linked any relevant issues in the description
- [ ] My commits have clear and descriptive messages
-## Related Issues
-
-
-## Additional Notes
-
-
## 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.
diff --git a/.github/workflows/basic_tests.yml b/.github/workflows/basic_tests.yml
index e2264da3d..3f3e644a2 100644
--- a/.github/workflows/basic_tests.yml
+++ b/.github/workflows/basic_tests.yml
@@ -188,6 +188,7 @@ jobs:
uses: ./.github/actions/cognee_setup
with:
python-version: ${{ inputs.python-version }}
+ extra-dependencies: "baml"
- name: Run Simple Examples
run: uv run python ./examples/python/simple_example.py
diff --git a/.github/workflows/e2e_tests.yml b/.github/workflows/e2e_tests.yml
index af3a3ff44..3fe7a7992 100644
--- a/.github/workflows/e2e_tests.yml
+++ b/.github/workflows/e2e_tests.yml
@@ -166,9 +166,6 @@ jobs:
python-version: '3.11.x'
extra-dependencies: "aws"
- - name: Dependencies already installed
- run: echo "Dependencies already installed in setup"
-
- name: Run S3 Bucket Test
env:
ENV: 'dev'
diff --git a/.github/workflows/examples_tests.yml b/.github/workflows/examples_tests.yml
index f4167a57a..4eb9e184f 100644
--- a/.github/workflows/examples_tests.yml
+++ b/.github/workflows/examples_tests.yml
@@ -1,5 +1,8 @@
name: Reusable Examples Tests
+permissions:
+ contents: read
+
on:
workflow_call:
@@ -131,3 +134,28 @@ jobs:
EMBEDDING_API_KEY: ${{ secrets.EMBEDDING_API_KEY }}
EMBEDDING_API_VERSION: ${{ secrets.EMBEDDING_API_VERSION }}
run: uv run python ./examples/python/memify_coding_agent_example.py
+
+ test-permissions-example:
+ name: Run Permissions Example
+ runs-on: ubuntu-22.04
+ steps:
+ - name: Check out repository
+ uses: actions/checkout@v4
+
+ - name: Cognee Setup
+ uses: ./.github/actions/cognee_setup
+ with:
+ python-version: '3.11.x'
+
+ - name: Run Memify Tests
+ env:
+ OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }}
+ LLM_MODEL: ${{ secrets.LLM_MODEL }}
+ LLM_ENDPOINT: ${{ secrets.LLM_ENDPOINT }}
+ LLM_API_KEY: ${{ secrets.LLM_API_KEY }}
+ LLM_API_VERSION: ${{ secrets.LLM_API_VERSION }}
+ EMBEDDING_MODEL: ${{ secrets.EMBEDDING_MODEL }}
+ EMBEDDING_ENDPOINT: ${{ secrets.EMBEDDING_ENDPOINT }}
+ EMBEDDING_API_KEY: ${{ secrets.EMBEDDING_API_KEY }}
+ EMBEDDING_API_VERSION: ${{ secrets.EMBEDDING_API_VERSION }}
+ run: uv run python ./examples/python/permissions_example.py
diff --git a/.github/workflows/test_s3_file_storage.yml b/.github/workflows/test_s3_file_storage.yml
index c4866ec2d..a477d8933 100644
--- a/.github/workflows/test_s3_file_storage.yml
+++ b/.github/workflows/test_s3_file_storage.yml
@@ -18,6 +18,7 @@ jobs:
uses: ./.github/actions/cognee_setup
with:
python-version: '3.11.x'
+ extra-dependencies: "aws"
- name: Run S3 File Storage Test
env:
diff --git a/.github/workflows/vector_db_tests.yml b/.github/workflows/vector_db_tests.yml
index a82194db3..06b58c962 100644
--- a/.github/workflows/vector_db_tests.yml
+++ b/.github/workflows/vector_db_tests.yml
@@ -101,3 +101,30 @@ jobs:
EMBEDDING_API_KEY: ${{ secrets.EMBEDDING_API_KEY }}
EMBEDDING_API_VERSION: ${{ secrets.EMBEDDING_API_VERSION }}
run: uv run python ./cognee/tests/test_pgvector.py
+
+ run-lancedb-tests:
+ name: LanceDB Tests
+ runs-on: ubuntu-22.04
+ steps:
+ - name: Check out
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+
+ - name: Cognee Setup
+ uses: ./.github/actions/cognee_setup
+ with:
+ python-version: ${{ inputs.python-version }}
+
+ - name: Run LanceDB Tests
+ env:
+ ENV: 'dev'
+ LLM_MODEL: ${{ secrets.LLM_MODEL }}
+ LLM_ENDPOINT: ${{ secrets.LLM_ENDPOINT }}
+ LLM_API_KEY: ${{ secrets.LLM_API_KEY }}
+ LLM_API_VERSION: ${{ secrets.LLM_API_VERSION }}
+ EMBEDDING_MODEL: ${{ secrets.EMBEDDING_MODEL }}
+ EMBEDDING_ENDPOINT: ${{ secrets.EMBEDDING_ENDPOINT }}
+ EMBEDDING_API_KEY: ${{ secrets.EMBEDDING_API_KEY }}
+ EMBEDDING_API_VERSION: ${{ secrets.EMBEDDING_API_VERSION }}
+ run: uv run python ./cognee/tests/test_lancedb.py
\ No newline at end of file
diff --git a/README.md b/README.md
index 30f829c93..25eb2d519 100644
--- a/README.md
+++ b/README.md
@@ -5,7 +5,7 @@
- cognee - Memory for AI Agents in 5 lines of code
+ cognee - Memory for AI Agents in 6 lines of code
Demo @@ -43,12 +43,10 @@ -**🚀 We launched Cogwit beta (Fully-hosted AI Memory): Sign up [here](https://platform.cognee.ai/)! 🚀** + Build dynamic memory for Agents and replace RAG using scalable, modular ECL (Extract, Cognify, Load) pipelines. -More on [use-cases](https://docs.cognee.ai/use-cases) and [evals](https://github.com/topoteretes/cognee/tree/main/evals) -
🌐 Available Languages : @@ -70,53 +68,47 @@ More on [use-cases](https://docs.cognee.ai/use-cases) and [evals](https://github -## 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 +## About cognee +Self-hosted package: -## 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`](CONTRIBUTING.md) for more information. +- Interconnects any kind of documents: past conversations, files, images, and audio transcriptions +- Replaces RAG systems with a memory layer based on graphs and vectors +- Reduces developer effort and cost, while increasing quality and precision +- Provides Pythonic data pipelines that manage data ingestion from 30+ data sources +- Is highly customizable with custom tasks, pipelines, and a set of built-in search endpoints + +Hosted platform: +- Includes a managed UI and a [hosted solution](https://www.cognee.ai) +## Self-Hosted (Open Source) -## 📦 Installation +### 📦 Installation You can install Cognee using either **pip**, **poetry**, **uv** or any other python package manager. -Cognee supports Python 3.10 to 3.13 +Cognee supports Python 3.10 to 3.12 -### With pip +#### With uv ```bash -pip install cognee +uv pip install cognee ``` -## Local Cognee installation +Detailed instructions can be found in our [docs](https://docs.cognee.ai/getting-started/installation#environment-configuration) -You can install the local Cognee repo using **uv**, **pip** and **poetry**. -For local pip installation please make sure your pip version is above version 21.3. +### 💻 Basic Usage -### with UV with all optional dependencies - -```bash -uv sync --all-extras -``` - -## 💻 Basic Usage - -### Setup +#### Setup ``` import os @@ -125,10 +117,14 @@ 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 +To use different LLM providers, for more info check out our documentation -### Simple example +#### Simple example + + + +##### Python This script will run the default pipeline: @@ -139,13 +135,16 @@ 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.") + 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("Tell me about NLP") + results = await cognee.search("What does cognee do?") # Display the results for result in results: @@ -158,33 +157,38 @@ if __name__ == '__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. + Cognee turns documents into AI memory. ``` +##### Via CLI -## Our paper is out! Read here +Let's get the basics covered + +``` +cognee-cli add "Cognee turns documents into AI memory." + +cognee-cli cognify + +cognee-cli search "What does cognee do?" +cognee-cli delete --all + +``` +or run +``` +cognee-cli -ui +``` -
-
+Get up and running in minutes with automatic updates, analytics, and enterprise security.
-### Running the UI
+1. Sign up on [cogwit](https://www.cognee.ai)
+2. Add your API key to local UI and sync your data to Cogwit
-Try cognee UI by setting LLM_API_KEY and running ``` cognee-cli -ui ``` command on your terminal.
-
-## Understand our architecture
-
-
-CODE_OF_CONDUCT for more information.
-## 💫 Contributors
+## Citation
-
-