[docs]def__init__(self,embedding:Embeddings,*,node_table:str="graph_nodes",session:Optional[Session]=None,keyspace:Optional[str]=None,setup_mode:SetupMode=SetupMode.SYNC,**kwargs:Any,):""" Create the hybrid graph store. Args: embedding: The embeddings to use for the document content. setup_mode: Mode used to create the Cassandra table (SYNC, ASYNC or OFF). """try:fromragstack_knowledge_storeimportEmbeddingModel,graph_storeexcept(ImportError,ModuleNotFoundError):raiseImportError("Could not import ragstack_knowledge_store python package. ""Please install it with `pip install ragstack-ai-knowledge-store`.")self._embedding=embedding_setup_mode=getattr(graph_store.SetupMode,setup_mode.name)class_EmbeddingModelAdapter(EmbeddingModel):def__init__(self,embeddings:Embeddings):self.embeddings=embeddingsdefembed_texts(self,texts:List[str])->List[List[float]]:returnself.embeddings.embed_documents(texts)defembed_query(self,text:str)->List[float]:returnself.embeddings.embed_query(text)asyncdefaembed_texts(self,texts:List[str])->List[List[float]]:returnawaitself.embeddings.aembed_documents(texts)asyncdefaembed_query(self,text:str)->List[float]:returnawaitself.embeddings.aembed_query(text)self.store=graph_store.GraphStore(embedding=_EmbeddingModelAdapter(embedding),node_table=node_table,session=session,keyspace=keyspace,setup_mode=_setup_mode,**kwargs,)
[docs]@classmethoddeffrom_texts(cls:Type["CassandraGraphVectorStore"],texts:Iterable[str],embedding:Embeddings,metadatas:Optional[List[dict]]=None,ids:Optional[Iterable[str]]=None,**kwargs:Any,)->"CassandraGraphVectorStore":"""Return CassandraGraphVectorStore initialized from texts and embeddings."""store=cls(embedding,**kwargs)store.add_texts(texts,metadatas,ids=ids)returnstore
[docs]@classmethoddeffrom_documents(cls:Type["CassandraGraphVectorStore"],documents:Iterable[Document],embedding:Embeddings,ids:Optional[Iterable[str]]=None,**kwargs:Any,)->"CassandraGraphVectorStore":"""Return CassandraGraphVectorStore initialized from documents and embeddings."""store=cls(embedding,**kwargs)store.add_documents(documents,ids=ids)returnstore