From 84c7aeb1a5a58a991f89df4faf80a2de3640cf30 Mon Sep 17 00:00:00 2001 From: Igor Ilic <30923996+dexters1@users.noreply.github.com> Date: Sat, 7 Jun 2025 16:48:47 +0200 Subject: [PATCH] Merge dev with main (#921) ## Description Merge changes on main to dev ## 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. --- .gitattributes | 2 + .github/workflows/notebooks_tests.yml | 21 -- README.md | 17 +- .../versions/482cd6517ce4_add_default_user.py | 7 +- assets/cognee-paper.png | Bin 0 -> 90427 bytes .../ingestion/DatasetsView/DatasetsView.tsx | 6 +- .../src/ui/Partials/SearchView/SearchView.tsx | 26 +- cognee-frontend/tsconfig.json | 24 +- .../v1/search/routers/get_search_router.py | 4 +- entrypoint.sh | 4 +- notebooks/cognee_graphiti_demo.ipynb | 225 -------------- notebooks/cognee_llama_index.ipynb | 239 --------------- notebooks/graphrag_vs_rag.ipynb | 253 --------------- .../llama_index_cognee_integration.ipynb | 288 ------------------ 14 files changed, 69 insertions(+), 1047 deletions(-) create mode 100644 .gitattributes create mode 100644 assets/cognee-paper.png delete mode 100644 notebooks/cognee_graphiti_demo.ipynb delete mode 100644 notebooks/cognee_llama_index.ipynb delete mode 100644 notebooks/graphrag_vs_rag.ipynb delete mode 100644 notebooks/llama_index_cognee_integration.ipynb diff --git a/.gitattributes b/.gitattributes new file mode 100644 index 000000000..8bdf6cf28 --- /dev/null +++ b/.gitattributes @@ -0,0 +1,2 @@ +# ignore jupyter notebooks in the language bar on github +notebooks/** linguist-vendored diff --git a/.github/workflows/notebooks_tests.yml b/.github/workflows/notebooks_tests.yml index a6fbae294..f33f90b4a 100644 --- a/.github/workflows/notebooks_tests.yml +++ b/.github/workflows/notebooks_tests.yml @@ -11,30 +11,9 @@ jobs: # notebook-location: notebooks/cognee_demo.ipynb # secrets: inherit - run-llama-index-integration: - name: LlamaIndex Integration Notebook - uses: ./.github/workflows/reusable_notebook.yml - with: - notebook-location: notebooks/llama_index_cognee_integration.ipynb - secrets: inherit - - run-cognee-llama-index: - name: Cognee LlamaIndex Notebook - uses: ./.github/workflows/reusable_notebook.yml - with: - notebook-location: notebooks/cognee_llama_index.ipynb - secrets: inherit - run-cognee-multimedia: name: Cognee Multimedia Notebook uses: ./.github/workflows/reusable_notebook.yml with: notebook-location: notebooks/cognee_multimedia_demo.ipynb secrets: inherit - -# run-graphrag-vs-rag: -# name: Graphrag vs Rag notebook -# uses: ./.github/workflows/reusable_notebook.yml -# with: -# notebook-location: notebooks/graphrag_vs_rag.ipynb -# secrets: inherit diff --git a/README.md b/README.md index cbbad2a86..eeee1145e 100644 --- a/README.md +++ b/README.md @@ -13,6 +13,8 @@ Learn more · Join Discord + · + Join r/AIMemory

@@ -46,12 +48,9 @@ More on [use-cases](https://docs.cognee.ai/use-cases) and [evals](https://github
Why cognee?
- - - ## Features - Interconnect and retrieve your past conversations, documents, images and audio transcriptions @@ -61,7 +60,7 @@ More on [use-cases](https://docs.cognee.ai/use-cases) and [evals](https://github ## Get Started -Get started quickly with a Google Colab notebook or starter repo +Get started quickly with a Google Colab notebook , Deepnote notebook or starter repo ## Contributing @@ -141,7 +140,15 @@ Example output: ``` -### cognee UI +## Our paper is out! Read here + +
+ cognee paper +
+ + + +## Cognee UI You can also cognify your files and query using cognee UI. diff --git a/alembic/versions/482cd6517ce4_add_default_user.py b/alembic/versions/482cd6517ce4_add_default_user.py index 92429e1e4..d85f0f146 100644 --- a/alembic/versions/482cd6517ce4_add_default_user.py +++ b/alembic/versions/482cd6517ce4_add_default_user.py @@ -12,6 +12,8 @@ from sqlalchemy.util import await_only from cognee.modules.users.methods import create_default_user, delete_user +from fastapi_users.exceptions import UserAlreadyExists + # revision identifiers, used by Alembic. revision: str = "482cd6517ce4" @@ -21,7 +23,10 @@ depends_on: Union[str, Sequence[str], None] = "8057ae7329c2" def upgrade() -> None: - await_only(create_default_user()) + try: + await_only(create_default_user()) + except UserAlreadyExists: + pass # It's fine if the default user already exists def downgrade() -> None: diff --git a/assets/cognee-paper.png b/assets/cognee-paper.png new file mode 100644 index 0000000000000000000000000000000000000000..df7113b0ec248b945447e7600735950db43fced7 GIT binary patch literal 90427 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 @@ -95,10 +95,10 @@ export default function DatasetsView({ ))} - + {dataset?.name} - + diff --git a/cognee-frontend/src/ui/Partials/SearchView/SearchView.tsx b/cognee-frontend/src/ui/Partials/SearchView/SearchView.tsx index 664a46fad..bea5e1277 100644 --- a/cognee-frontend/src/ui/Partials/SearchView/SearchView.tsx +++ b/cognee-frontend/src/ui/Partials/SearchView/SearchView.tsx @@ -3,7 +3,7 @@ import { v4 } from 'uuid'; import classNames from 'classnames'; import { useCallback, useEffect, useState } from 'react'; -import { CTAButton, Stack, Text, DropdownSelect, TextArea, useBoolean } from 'ohmy-ui'; +import { CTAButton, Stack, Text, DropdownSelect, TextArea, useBoolean, Input } from 'ohmy-ui'; import { fetch } from '@/utils'; import styles from './SearchView.module.css'; import getHistory from '@/modules/chat/getHistory'; @@ -33,8 +33,15 @@ export default function SearchView() { }, { value: 'RAG_COMPLETION', label: 'Completion using RAG', + }, { + value: 'GRAPH_COMPLETION_COT', + label: 'Cognee\'s Chain of Thought search', + }, { + value: 'GRAPH_COMPLETION_CONTEXT_EXTENSION', + label: 'Cognee\'s Multi-Hop search', }]; const [searchType, setSearchType] = useState(searchOptions[0]); + const [rangeValue, setRangeValue] = useState(10); const scrollToBottom = useCallback(() => { setTimeout(() => { @@ -90,6 +97,7 @@ export default function SearchView() { body: JSON.stringify({ query: inputValue.trim(), searchType: searchTypeValue, + topK: rangeValue, }), }) .then((response) => response.json()) @@ -108,7 +116,7 @@ export default function SearchView() { .catch(() => { setInputValue(inputValue); }); - }, [inputValue, scrollToBottom, searchType.value]); + }, [inputValue, rangeValue, scrollToBottom, searchType.value]); const { value: isInputExpanded, @@ -122,6 +130,10 @@ export default function SearchView() { } }; + const handleRangeValueChange = (event: React.ChangeEvent) => { + setRangeValue(parseInt(event.target.value)); + }; + return ( @@ -146,9 +158,15 @@ export default function SearchView() {
- +