langchain_community.vectorstores.surrealdb
.SurrealDBStore¶
- class langchain_community.vectorstores.surrealdb.SurrealDBStore(embedding_function: Embeddings, **kwargs: Any)[source]¶
SurrealDB as Vector Store.
To use, you should have the
surrealdb
python package installed.- Parameters
embedding_function – Embedding function to use.
dburl – SurrealDB connection url
ns – surrealdb namespace for the vector store. (default: “langchain”)
db – surrealdb database for the vector store. (default: “database”)
collection – surrealdb collection for the vector store. (default: “documents”)
db_pass ((optional) db_user and) – surrealdb credentials
Example
from langchain_community.vectorstores.surrealdb import SurrealDBStore from langchain_community.embeddings import HuggingFaceEmbeddings embedding_function = HuggingFaceEmbeddings() dburl = "ws://localhost:8000/rpc" ns = "langchain" db = "docstore" collection = "documents" db_user = "root" db_pass = "root" sdb = SurrealDBStore.from_texts( texts=texts, embedding=embedding_function, dburl, ns, db, collection, db_user=db_user, db_pass=db_pass)
Attributes
embeddings
Access the query embedding object if available.
Methods
__init__
(embedding_function, **kwargs)aadd_documents
(documents, **kwargs)Run more documents through the embeddings and add to the vectorstore.
aadd_texts
(texts[, metadatas])Add list of text along with embeddings to the vector store asynchronously
add_documents
(documents, **kwargs)Run more documents through the embeddings and add to the vectorstore.
add_texts
(texts[, metadatas])Add list of text along with embeddings to the vector store
adelete
([ids])Delete by document ID asynchronously.
afrom_documents
(documents, embedding, **kwargs)Return VectorStore initialized from documents and embeddings.
afrom_texts
(texts, embedding[, metadatas])Create SurrealDBStore from list of text asynchronously
amax_marginal_relevance_search
(query[, k, ...])Return docs selected using the maximal marginal relevance.
Return docs selected using the maximal marginal relevance.
as_retriever
(**kwargs)Return VectorStoreRetriever initialized from this VectorStore.
asearch
(query, search_type, **kwargs)Return docs most similar to query using specified search type.
asimilarity_search
(query[, k])Run similarity search on query asynchronously
asimilarity_search_by_vector
(embedding[, k])Run similarity search on query embedding asynchronously
Run similarity search asynchronously and return relevance scores
asimilarity_search_with_score
(query[, k])Run similarity search asynchronously and return distance scores
delete
([ids])Delete by document ID.
from_documents
(documents, embedding, **kwargs)Return VectorStore initialized from documents and embeddings.
from_texts
(texts, embedding[, metadatas])Create SurrealDBStore from list of text
Initialize connection to surrealdb database and authenticate if credentials are provided
max_marginal_relevance_search
(query[, k, ...])Return docs selected using the maximal marginal relevance.
Return docs selected using the maximal marginal relevance.
search
(query, search_type, **kwargs)Return docs most similar to query using specified search type.
similarity_search
(query[, k])Run similarity search on query
similarity_search_by_vector
(embedding[, k])Run similarity search on query embedding
Run similarity search synchronously and return relevance scores
similarity_search_with_score
(query[, k])Run similarity search synchronously and return distance scores
- __init__(embedding_function: Embeddings, **kwargs: Any) None [source]¶
- async aadd_documents(documents: List[Document], **kwargs: Any) List[str] ¶
Run more documents through the embeddings and add to the vectorstore.
- Parameters
(List[Document] (documents) – Documents to add to the vectorstore.
- Returns
List of IDs of the added texts.
- Return type
List[str]
- async aadd_texts(texts: Iterable[str], metadatas: Optional[List[dict]] = None, **kwargs: Any) List[str] [source]¶
Add list of text along with embeddings to the vector store asynchronously
- Parameters
texts (Iterable[str]) – collection of text to add to the database
- Returns
List of ids for the newly inserted documents
- add_documents(documents: List[Document], **kwargs: Any) List[str] ¶
Run more documents through the embeddings and add to the vectorstore.
- Parameters
(List[Document] (documents) – Documents to add to the vectorstore.
- Returns
List of IDs of the added texts.
- Return type
List[str]
- add_texts(texts: Iterable[str], metadatas: Optional[List[dict]] = None, **kwargs: Any) List[str] [source]¶
Add list of text along with embeddings to the vector store
- Parameters
texts (Iterable[str]) – collection of text to add to the database
- Returns
List of ids for the newly inserted documents
- async adelete(ids: Optional[List[str]] = None, **kwargs: Any) Optional[bool] [source]¶
Delete by document ID asynchronously.
- Parameters
ids – List of ids to delete.
**kwargs – Other keyword arguments that subclasses might use.
- Returns
True if deletion is successful, False otherwise.
- Return type
Optional[bool]
- async classmethod afrom_documents(documents: List[Document], embedding: Embeddings, **kwargs: Any) VST ¶
Return VectorStore initialized from documents and embeddings.
- async classmethod afrom_texts(texts: List[str], embedding: Embeddings, metadatas: Optional[List[dict]] = None, **kwargs: Any) SurrealDBStore [source]¶
Create SurrealDBStore from list of text asynchronously
- Parameters
texts (List[str]) – list of text to vectorize and store
embedding (Optional[Embeddings]) – Embedding function.
dburl (str) – SurrealDB connection url (default: “ws://localhost:8000/rpc”)
ns (str) – surrealdb namespace for the vector store. (default: “langchain”)
db (str) – surrealdb database for the vector store. (default: “database”)
collection (str) – surrealdb collection for the vector store. (default: “documents”)
db_pass ((optional) db_user and) – surrealdb credentials
- Returns
SurrealDBStore object initialized and ready for use.
- async amax_marginal_relevance_search(query: str, k: int = 4, fetch_k: int = 20, lambda_mult: float = 0.5, **kwargs: Any) List[Document] ¶
Return docs selected using the maximal marginal relevance.
- async amax_marginal_relevance_search_by_vector(embedding: List[float], k: int = 4, fetch_k: int = 20, lambda_mult: float = 0.5, **kwargs: Any) List[Document] ¶
Return docs selected using the maximal marginal relevance.
- as_retriever(**kwargs: Any) VectorStoreRetriever ¶
Return VectorStoreRetriever initialized from this VectorStore.
- Parameters
search_type (Optional[str]) – Defines the type of search that the Retriever should perform. Can be “similarity” (default), “mmr”, or “similarity_score_threshold”.
search_kwargs (Optional[Dict]) –
Keyword arguments to pass to the search function. Can include things like:
k: Amount of documents to return (Default: 4) score_threshold: Minimum relevance threshold
for similarity_score_threshold
fetch_k: Amount of documents to pass to MMR algorithm (Default: 20) lambda_mult: Diversity of results returned by MMR;
1 for minimum diversity and 0 for maximum. (Default: 0.5)
filter: Filter by document metadata
- Returns
Retriever class for VectorStore.
- Return type
Examples:
# Retrieve more documents with higher diversity # Useful if your dataset has many similar documents docsearch.as_retriever( search_type="mmr", search_kwargs={'k': 6, 'lambda_mult': 0.25} ) # Fetch more documents for the MMR algorithm to consider # But only return the top 5 docsearch.as_retriever( search_type="mmr", search_kwargs={'k': 5, 'fetch_k': 50} ) # Only retrieve documents that have a relevance score # Above a certain threshold docsearch.as_retriever( search_type="similarity_score_threshold", search_kwargs={'score_threshold': 0.8} ) # Only get the single most similar document from the dataset docsearch.as_retriever(search_kwargs={'k': 1}) # Use a filter to only retrieve documents from a specific paper docsearch.as_retriever( search_kwargs={'filter': {'paper_title':'GPT-4 Technical Report'}} )
- async asearch(query: str, search_type: str, **kwargs: Any) List[Document] ¶
Return docs most similar to query using specified search type.
- async asimilarity_search(query: str, k: int = 4, **kwargs: Any) List[Document] [source]¶
Run similarity search on query asynchronously
- Parameters
query (str) – Query
k (int) – Number of results to return. Defaults to 4.
- Returns
List of Documents most similar to the query
- async asimilarity_search_by_vector(embedding: List[float], k: int = 4, **kwargs: Any) List[Document] [source]¶
Run similarity search on query embedding asynchronously
- Parameters
embedding (List[float]) – Query embedding
k (int) – Number of results to return. Defaults to 4.
- Returns
List of Documents most similar to the query
- async asimilarity_search_with_relevance_scores(query: str, k: int = 4, **kwargs: Any) List[Tuple[Document, float]] [source]¶
Run similarity search asynchronously and return relevance scores
- Parameters
query (str) – Query
k (int) – Number of results to return. Defaults to 4.
- Returns
List of Documents most similar along with relevance scores
- async asimilarity_search_with_score(query: str, k: int = 4, **kwargs: Any) List[Tuple[Document, float]] [source]¶
Run similarity search asynchronously and return distance scores
- Parameters
query (str) – Query
k (int) – Number of results to return. Defaults to 4.
- Returns
List of Documents most similar along with relevance distance scores
- delete(ids: Optional[List[str]] = None, **kwargs: Any) Optional[bool] [source]¶
Delete by document ID.
- Parameters
ids – List of ids to delete.
**kwargs – Other keyword arguments that subclasses might use.
- Returns
True if deletion is successful, False otherwise.
- Return type
Optional[bool]
- classmethod from_documents(documents: List[Document], embedding: Embeddings, **kwargs: Any) VST ¶
Return VectorStore initialized from documents and embeddings.
- classmethod from_texts(texts: List[str], embedding: Embeddings, metadatas: Optional[List[dict]] = None, **kwargs: Any) SurrealDBStore [source]¶
Create SurrealDBStore from list of text
- Parameters
texts (List[str]) – list of text to vectorize and store
embedding (Optional[Embeddings]) – Embedding function.
dburl (str) – SurrealDB connection url
ns (str) – surrealdb namespace for the vector store. (default: “langchain”)
db (str) – surrealdb database for the vector store. (default: “database”)
collection (str) – surrealdb collection for the vector store. (default: “documents”)
db_pass ((optional) db_user and) – surrealdb credentials
- Returns
SurrealDBStore object initialized and ready for use.
- async initialize() None [source]¶
Initialize connection to surrealdb database and authenticate if credentials are provided
- max_marginal_relevance_search(query: str, k: int = 4, fetch_k: int = 20, lambda_mult: float = 0.5, **kwargs: Any) List[Document] ¶
Return docs selected using the maximal marginal relevance.
Maximal marginal relevance optimizes for similarity to query AND diversity among selected documents.
- Parameters
query – Text to look up documents similar to.
k – Number of Documents to return. Defaults to 4.
fetch_k – Number of Documents to fetch to pass to MMR algorithm.
lambda_mult – Number between 0 and 1 that determines the degree of diversity among the results with 0 corresponding to maximum diversity and 1 to minimum diversity. Defaults to 0.5.
- Returns
List of Documents selected by maximal marginal relevance.
- max_marginal_relevance_search_by_vector(embedding: List[float], k: int = 4, fetch_k: int = 20, lambda_mult: float = 0.5, **kwargs: Any) List[Document] ¶
Return docs selected using the maximal marginal relevance.
Maximal marginal relevance optimizes for similarity to query AND diversity among selected documents.
- Parameters
embedding – Embedding to look up documents similar to.
k – Number of Documents to return. Defaults to 4.
fetch_k – Number of Documents to fetch to pass to MMR algorithm.
lambda_mult – Number between 0 and 1 that determines the degree of diversity among the results with 0 corresponding to maximum diversity and 1 to minimum diversity. Defaults to 0.5.
- Returns
List of Documents selected by maximal marginal relevance.
- search(query: str, search_type: str, **kwargs: Any) List[Document] ¶
Return docs most similar to query using specified search type.
- similarity_search(query: str, k: int = 4, **kwargs: Any) List[Document] [source]¶
Run similarity search on query
- Parameters
query (str) – Query
k (int) – Number of results to return. Defaults to 4.
- Returns
List of Documents most similar to the query
- similarity_search_by_vector(embedding: List[float], k: int = 4, **kwargs: Any) List[Document] [source]¶
Run similarity search on query embedding
- Parameters
embedding (List[float]) – Query embedding
k (int) – Number of results to return. Defaults to 4.
- Returns
List of Documents most similar to the query
- similarity_search_with_relevance_scores(query: str, k: int = 4, **kwargs: Any) List[Tuple[Document, float]] [source]¶
Run similarity search synchronously and return relevance scores
- Parameters
query (str) – Query
k (int) – Number of results to return. Defaults to 4.
- Returns
List of Documents most similar along with relevance scores
- similarity_search_with_score(query: str, k: int = 4, **kwargs: Any) List[Tuple[Document, float]] [source]¶
Run similarity search synchronously and return distance scores
- Parameters
query (str) – Query
k (int) – Number of results to return. Defaults to 4.
- Returns
List of Documents most similar along with relevance distance scores