[tool.poetry] name = "cognee" version = "0.1.37" description = "Cognee - is a library for enriching LLM context with a semantic layer for better understanding and reasoning." authors = ["Vasilije Markovic", "Boris Arzentar"] readme = "README.md" license = "Apache-2.0" homepage = "https://www.cognee.ai" repository = "https://github.com/topoteretes/cognee" classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Topic :: Software Development :: Libraries", "Operating System :: MacOS :: MacOS X", "Operating System :: POSIX :: Linux", "Operating System :: Microsoft :: Windows" ] [tool.poetry.dependencies] python = ">=3.10,<=3.13" openai = "^1.59.4" python-dotenv = "1.0.1" pydantic = "2.10.5" pydantic-settings = "^2.2.1" typing_extensions = "4.12.2" nltk = "3.9.1" numpy = ">=1.26.4, <=2.1" pandas = "2.2.3" boto3 = "^1.26.125" botocore="^1.35.54" sqlalchemy = "2.0.39" aiosqlite = "^0.20.0" tiktoken = "<=0.9.0" litellm = ">=1.57.4" instructor = "1.7.2" langfuse = "^2.32.0" filetype = "^1.2.0" aiohttp = "^3.11.14" aiofiles = "^23.2.1" owlready2 = "^0.47" graphistry = "^0.33.5" pypdf = ">=4.1.0,<6.0.0" jinja2 = "^3.1.3" matplotlib = "^3.8.3" networkx = "^3.2.1" lancedb = "0.16.0" alembic = "^1.13.3" pre-commit = "^4.0.1" scikit-learn = "^1.6.1" limits = "^4.4.1" fastapi = {version = "0.115.7"} python-multipart = "0.0.20" fastapi-users = {version = "14.0.1", extras = ["sqlalchemy"]} uvicorn = {version = "0.34.0", optional = true} gunicorn = {version = "^20.1.0", optional = true} dlt = {extras = ["sqlalchemy"], version = "^1.9.0"} qdrant-client = {version = "^1.9.0", optional = true} weaviate-client = {version = "4.9.6", optional = true} neo4j = {version = "^5.20.0", optional = true} falkordb = {version = "1.0.9", optional = true} kuzu = {version = "0.8.2", optional = true} chromadb = {version = "^0.6.0", optional = true} langchain_text_splitters = {version = "0.3.2", optional = true} langsmith = {version = "0.2.3", optional = true} posthog = {version = "^3.5.0", optional = true} groq = {version = "0.8.0", optional = true} anthropic = {version = "^0.26.1", optional = true} sentry-sdk = {extras = ["fastapi"], version = "^2.9.0"} asyncpg = {version = "0.30.0", optional = true} pgvector = {version = "^0.3.5", optional = true} psycopg2 = {version = "^2.9.10", optional = true} llama-index-core = {version = "^0.12.11", optional = true} deepeval = {version = "^2.0.1", optional = true} transformers = {version = "^4.46.3", optional = true} pymilvus = {version = "^2.5.0", optional = true} unstructured = { extras = ["csv", "doc", "docx", "epub", "md", "odt", "org", "ppt", "pptx", "rst", "rtf", "tsv", "xlsx"], version = "^0.16.13", optional = true } mistral-common = {version = "^1.5.2", optional = true} fastembed = {version = "<=0.6.0", optional = true, markers = "python_version < '3.13'"} tree-sitter = {version = "^0.24.0", optional = true} tree-sitter-python = {version = "^0.23.6", optional = true} plotly = {version = "^6.0.0", optional = true} gdown = {version = "^5.2.0", optional = true} qasync = {version = "^0.27.1", optional = true} graphiti-core = {version = "^0.7.0", optional = true} structlog = "^25.2.0" pyside6 = {version = "^6.8.3", optional = true} google-generativeai = {version = "^0.8.4", optional = true} notebook = {version = "^7.1.0", optional = true} s3fs = "^2025.3.2" [tool.poetry.extras] api = ["uvicorn", "gunicorn"] filesystem = ["s3fs", "botocore"] weaviate = ["weaviate-client"] qdrant = ["qdrant-client"] neo4j = ["neo4j"] postgres = ["psycopg2", "pgvector", "asyncpg"] notebook = ["notebook", "ipykernel", "overrides", "ipywidgets", "jupyterlab", "jupyterlab_widgets", "jupyterlab-server", "jupyterlab-git"] langchain = ["langsmith", "langchain_text_splitters"] llama-index = ["llama-index-core"] gemini = ["google-generativeai"] huggingface = ["transformers"] ollama = ["transformers"] mistral = ["mistral-common"] anthropic = ["anthropic"] deepeval = ["deepeval"] posthog = ["posthog"] falkordb = ["falkordb"] kuzu = ["kuzu"] groq = ["groq"] milvus = ["pymilvus"] chromadb = ["chromadb"] docs = ["unstructured"] codegraph = ["fastembed", "transformers", "tree-sitter", "tree-sitter-python"] evals = ["plotly", "gdown"] gui = ["pyside6", "qasync"] graphiti = ["graphiti-core"] [tool.poetry.group.dev.dependencies] pytest = "^7.4.0" pytest-asyncio = "^0.21.1" coverage = "^7.3.2" mypy = "^1.7.1" notebook = {version = "^7.1.0", optional = true} deptry = "^0.20.0" debugpy = "1.8.9" pylint = "^3.0.3" ruff = ">=0.9.2,<1.0.0" tweepy = "4.14.0" gitpython = "^3.1.43" pylance = "0.19.2" [tool.poetry.group.docs.dependencies] mkdocs-material = "^9.5.42" mkdocs-minify-plugin = "^0.8.0" mkdocstrings = {extras = ["python"], version = "^0.26.2"} [tool.ruff] # https://beta.ruff.rs/docs/ line-length = 100 exclude = [ "migrations/", # Ignore migrations directory "notebooks/", # Ignore notebook files "build/", # Ignore build directory "cognee/pipelines.py", "cognee/modules/users/models/Group.py", "cognee/modules/users/models/ACL.py", "cognee/modules/pipelines/models/Task.py", "cognee/modules/data/models/Dataset.py" ] [tool.ruff.lint] ignore = ["F401"] [build-system] requires = ["poetry-core"] build-backend = "poetry.core.masonry.api"