feat: Add support for metadata filtering and namespaces for the Upstash Vector component (#3254)
* feat: add metadata filtering and namespace support for the upstash vector component * docs: add upstash vector to the vectorstores doc * [autofix.ci] apply automated fixes --------- Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
This commit is contained in:
parent
ac4442d221
commit
ce17bd4e71
2 changed files with 53 additions and 3 deletions
|
|
@ -4,7 +4,14 @@ from langchain_community.vectorstores import UpstashVectorStore
|
|||
|
||||
from langflow.base.vectorstores.model import LCVectorStoreComponent
|
||||
from langflow.helpers.data import docs_to_data
|
||||
from langflow.io import HandleInput, IntInput, StrInput, SecretStrInput, DataInput, MultilineInput
|
||||
from langflow.io import (
|
||||
HandleInput,
|
||||
IntInput,
|
||||
StrInput,
|
||||
SecretStrInput,
|
||||
DataInput,
|
||||
MultilineInput,
|
||||
)
|
||||
from langflow.schema import Data
|
||||
|
||||
|
||||
|
|
@ -16,9 +23,17 @@ class UpstashVectorStoreComponent(LCVectorStoreComponent):
|
|||
icon = "Upstash"
|
||||
|
||||
inputs = [
|
||||
StrInput(name="index_url", display_name="Index URL", info="The URL of the Upstash index.", required=True),
|
||||
StrInput(
|
||||
name="index_url",
|
||||
display_name="Index URL",
|
||||
info="The URL of the Upstash index.",
|
||||
required=True,
|
||||
),
|
||||
SecretStrInput(
|
||||
name="index_token", display_name="Index Token", info="The token for the Upstash index.", required=True
|
||||
name="index_token",
|
||||
display_name="Index Token",
|
||||
info="The token for the Upstash index.",
|
||||
required=True,
|
||||
),
|
||||
StrInput(
|
||||
name="text_key",
|
||||
|
|
@ -27,7 +42,17 @@ class UpstashVectorStoreComponent(LCVectorStoreComponent):
|
|||
value="text",
|
||||
advanced=True,
|
||||
),
|
||||
StrInput(
|
||||
name="namespace",
|
||||
display_name="Namespace",
|
||||
info="Leave empty for default namespace.",
|
||||
),
|
||||
MultilineInput(name="search_query", display_name="Search Query"),
|
||||
MultilineInput(
|
||||
name="metadata_filter",
|
||||
display_name="Metadata Filter",
|
||||
info="Filters documents by metadata. Look at the documentation for more information.",
|
||||
),
|
||||
DataInput(
|
||||
name="ingest_data",
|
||||
display_name="Ingest Data",
|
||||
|
|
@ -68,6 +93,7 @@ class UpstashVectorStoreComponent(LCVectorStoreComponent):
|
|||
text_key=self.text_key,
|
||||
index_url=self.index_url,
|
||||
index_token=self.index_token,
|
||||
namespace=self.namespace,
|
||||
)
|
||||
upstash_vs.add_documents(documents)
|
||||
else:
|
||||
|
|
@ -77,6 +103,7 @@ class UpstashVectorStoreComponent(LCVectorStoreComponent):
|
|||
text_key=self.text_key,
|
||||
index_url=self.index_url,
|
||||
index_token=self.index_token,
|
||||
namespace=self.namespace,
|
||||
)
|
||||
else:
|
||||
upstash_vs = UpstashVectorStore(
|
||||
|
|
@ -84,6 +111,7 @@ class UpstashVectorStoreComponent(LCVectorStoreComponent):
|
|||
text_key=self.text_key,
|
||||
index_url=self.index_url,
|
||||
index_token=self.index_token,
|
||||
namespace=self.namespace,
|
||||
)
|
||||
|
||||
return upstash_vs
|
||||
|
|
@ -95,6 +123,7 @@ class UpstashVectorStoreComponent(LCVectorStoreComponent):
|
|||
docs = vector_store.similarity_search(
|
||||
query=self.search_query,
|
||||
k=self.number_of_results,
|
||||
filter=self.metadata_filter,
|
||||
)
|
||||
|
||||
data = docs_to_data(docs)
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue