FalkorDBVectorStore
FalkorDB is an open-source graph database with integrated support for vector similarity search
it supports:
- approximate nearest neighbor search
- Euclidean similarity & Cosine Similarity
- Hybrid search combining vector and keyword searches
This notebook shows how to use the FalkorDB vector index (FalkorDB
)
See the installation instruction
Setup
# Pip install necessary package
%pip install --upgrade falkordb
%pip install --upgrade tiktoken
%pip install --upgrade langchain langchain_huggingface
Requirement already satisfied: falkordb in c:\users\dell\desktop\langchain\.venv\lib\site-packages (1.0.10)Note: you may need to restart the kernel to use updated packages.
Requirement already satisfied: redis<6.0.0,>=5.0.1 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from falkordb) (5.2.0)
Requirement already satisfied: async-timeout>=4.0.3 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from redis<6.0.0,>=5.0.1->falkordb) (4.0.3)
Requirement already satisfied: tiktoken in c:\users\dell\desktop\langchain\.venv\lib\site-packages (0.8.0)
Requirement already satisfied: regex>=2022.1.18 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from tiktoken) (2024.11.6)
Requirement already satisfied: requests>=2.26.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from tiktoken) (2.32.3)
Requirement already satisfied: charset-normalizer<4,>=2 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from requests>=2.26.0->tiktoken) (3.4.0)
Requirement already satisfied: idna<4,>=2.5 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from requests>=2.26.0->tiktoken) (3.10)
Requirement already satisfied: urllib3<3,>=1.21.1 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from requests>=2.26.0->tiktoken) (1.26.20)
Requirement already satisfied: certifi>=2017.4.17 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from requests>=2.26.0->tiktoken) (2024.8.30)
Note: you may need to restart the kernel to use updated packages.
Requirement already satisfied: langchain in c:\users\dell\desktop\langchain\.venv\lib\site-packages (0.3.9)Note: you may need to restart the kernel to use updated packages.
Requirement already satisfied: langchain_huggingface in c:\users\dell\desktop\langchain\.venv\lib\site-packages (0.1.2)
Requirement already satisfied: PyYAML>=5.3 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain) (6.0.2)
Requirement already satisfied: SQLAlchemy<3,>=1.4 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain) (2.0.36)
Requirement already satisfied: aiohttp<4.0.0,>=3.8.3 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain) (3.11.8)
Requirement already satisfied: async-timeout<5.0.0,>=4.0.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain) (4.0.3)
Requirement already satisfied: langchain-core<0.4.0,>=0.3.21 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain) (0.3.21)
Requirement already satisfied: langchain-text-splitters<0.4.0,>=0.3.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain) (0.3.2)
Requirement already satisfied: langsmith<0.2.0,>=0.1.17 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain) (0.1.147)
Requirement already satisfied: numpy<2,>=1.22.4 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain) (1.26.4)
Requirement already satisfied: pydantic<3.0.0,>=2.7.4 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain) (2.9.2)
Requirement already satisfied: requests<3,>=2 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain) (2.32.3)
Requirement already satisfied: tenacity!=8.4.0,<10,>=8.1.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain) (9.0.0)
Requirement already satisfied: huggingface-hub>=0.23.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain_huggingface) (0.26.3)
Requirement already satisfied: sentence-transformers>=2.6.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain_huggingface) (3.3.1)
Requirement already satisfied: tokenizers>=0.19.1 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain_huggingface) (0.20.3)
Requirement already satisfied: transformers>=4.39.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain_huggingface) (4.46.3)
Requirement already satisfied: aiohappyeyeballs>=2.3.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (2.4.4)
Requirement already satisfied: aiosignal>=1.1.2 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (1.3.1)
Requirement already satisfied: attrs>=17.3.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (24.2.0)
Requirement already satisfied: frozenlist>=1.1.1 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (1.5.0)
Requirement already satisfied: multidict<7.0,>=4.5 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (6.1.0)
Requirement already satisfied: propcache>=0.2.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (0.2.0)
Requirement already satisfied: yarl<2.0,>=1.17.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from aiohttp<4.0.0,>=3.8.3->langchain) (1.18.0)
Requirement already satisfied: filelock in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from huggingface-hub>=0.23.0->langchain_huggingface) (3.16.1)
Requirement already satisfied: fsspec>=2023.5.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from huggingface-hub>=0.23.0->langchain_huggingface) (2024.10.0)
Requirement already satisfied: packaging>=20.9 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from huggingface-hub>=0.23.0->langchain_huggingface) (24.2)
Requirement already satisfied: tqdm>=4.42.1 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from huggingface-hub>=0.23.0->langchain_huggingface) (4.67.1)
Requirement already satisfied: typing-extensions>=3.7.4.3 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from huggingface-hub>=0.23.0->langchain_huggingface) (4.12.2)
Requirement already satisfied: jsonpatch<2.0,>=1.33 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langchain-core<0.4.0,>=0.3.21->langchain) (1.33)
Requirement already satisfied: httpx<1,>=0.23.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langsmith<0.2.0,>=0.1.17->langchain) (0.27.2)
Requirement already satisfied: orjson<4.0.0,>=3.9.14 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langsmith<0.2.0,>=0.1.17->langchain) (3.10.12)
Requirement already satisfied: requests-toolbelt<2.0.0,>=1.0.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from langsmith<0.2.0,>=0.1.17->langchain) (1.0.0)
Requirement already satisfied: annotated-types>=0.6.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from pydantic<3.0.0,>=2.7.4->langchain) (0.7.0)
Requirement already satisfied: pydantic-core==2.23.4 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from pydantic<3.0.0,>=2.7.4->langchain) (2.23.4)
Requirement already satisfied: charset-normalizer<4,>=2 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from requests<3,>=2->langchain) (3.4.0)
Requirement already satisfied: idna<4,>=2.5 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from requests<3,>=2->langchain) (3.10)
Requirement already satisfied: urllib3<3,>=1.21.1 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from requests<3,>=2->langchain) (1.26.20)
Requirement already satisfied: certifi>=2017.4.17 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from requests<3,>=2->langchain) (2024.8.30)
Requirement already satisfied: torch>=1.11.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from sentence-transformers>=2.6.0->langchain_huggingface) (2.5.1)
Requirement already satisfied: scikit-learn in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from sentence-transformers>=2.6.0->langchain_huggingface) (1.5.2)
Requirement already satisfied: scipy in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from sentence-transformers>=2.6.0->langchain_huggingface) (1.13.1)
Requirement already satisfied: Pillow in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from sentence-transformers>=2.6.0->langchain_huggingface) (11.0.0)
Requirement already satisfied: greenlet!=0.4.17 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from SQLAlchemy<3,>=1.4->langchain) (3.1.1)
Requirement already satisfied: regex!=2019.12.17 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from transformers>=4.39.0->langchain_huggingface) (2024.11.6)
Requirement already satisfied: safetensors>=0.4.1 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from transformers>=4.39.0->langchain_huggingface) (0.4.5)
Requirement already satisfied: anyio in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from httpx<1,>=0.23.0->langsmith<0.2.0,>=0.1.17->langchain) (4.6.2.post1)
Requirement already satisfied: httpcore==1.* in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from httpx<1,>=0.23.0->langsmith<0.2.0,>=0.1.17->langchain) (1.0.7)
Requirement already satisfied: sniffio in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from httpx<1,>=0.23.0->langsmith<0.2.0,>=0.1.17->langchain) (1.3.1)
Requirement already satisfied: h11<0.15,>=0.13 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from httpcore==1.*->httpx<1,>=0.23.0->langsmith<0.2.0,>=0.1.17->langchain) (0.14.0)
Requirement already satisfied: jsonpointer>=1.9 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from jsonpatch<2.0,>=1.33->langchain-core<0.4.0,>=0.3.21->langchain) (3.0.0)
Requirement already satisfied: networkx in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from torch>=1.11.0->sentence-transformers>=2.6.0->langchain_huggingface) (3.2.1)
Requirement already satisfied: jinja2 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from torch>=1.11.0->sentence-transformers>=2.6.0->langchain_huggingface) (3.1.4)
Requirement already satisfied: sympy==1.13.1 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from torch>=1.11.0->sentence-transformers>=2.6.0->langchain_huggingface) (1.13.1)
Requirement already satisfied: mpmath<1.4,>=1.1.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from sympy==1.13.1->torch>=1.11.0->sentence-transformers>=2.6.0->langchain_huggingface) (1.3.0)
Requirement already satisfied: colorama in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from tqdm>=4.42.1->huggingface-hub>=0.23.0->langchain_huggingface) (0.4.6)
Requirement already satisfied: joblib>=1.2.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from scikit-learn->sentence-transformers>=2.6.0->langchain_huggingface) (1.4.2)
Requirement already satisfied: threadpoolctl>=3.1.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from scikit-learn->sentence-transformers>=2.6.0->langchain_huggingface) (3.5.0)
Requirement already satisfied: exceptiongroup>=1.0.2 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from anyio->httpx<1,>=0.23.0->langsmith<0.2.0,>=0.1.17->langchain) (1.2.2)
Requirement already satisfied: MarkupSafe>=2.0 in c:\users\dell\desktop\langchain\.venv\lib\site-packages (from jinja2->torch>=1.11.0->sentence-transformers>=2.6.0->langchain_huggingface) (3.0.2)
Credentials
We want to use HuggingFace
so we have to get the HuggingFace API Key
import getpass
import os
if "HUGGINGFACE_API_KEY" not in os.environ:
os.environ["HUGGINGFACE_API_KEY"] = getpass.getpass("HuggingFace API Key:")
If you want to get automated tracing of your model calls you can also set your LangSmith API key by uncommenting below:
# os.environ["LANGSMITH_API_KEY"] = getpass.getpass("Enter your LangSmith API key: ")
# os.environ["LANGSMITH_TRACING"] = "true"
Initialization
from langchain_community.vectorstores.falkordb_vector import FalkorDBVector
from langchain_core.documents import Document
from langchain_huggingface import HuggingFaceEmbeddings
You can use FalkorDBVector locally with docker. See installation instruction
host = "localhost"
port = 6379
Or you can use FalkorDBVector with FalkorDB Cloud
# E.g
# host = "r-6jissuruar.instance-zwb082gpf.hc-v8noonp0c.europe-west1.gcp.f2e0a955bb84.cloud"
# port = 62471
# username = "falkordb" # SET ON FALKORDB CLOUD
# password = "password" # SET ON FALKORDB CLOUD
vector_store = FalkorDBVector(host=host, port=port, embedding=HuggingFaceEmbeddings())