Compare commits

...

1 Commits

Author SHA1 Message Date
Harrison Chase
b6893a569e qasper eval 2023-03-20 22:47:22 -07:00

View File

@@ -4,6 +4,7 @@ from pydantic import BaseModel, Extra, Field
from langchain.chains.qa_with_sources.vector_db import VectorDBQAWithSourcesChain
from langchain.chains.vector_db_qa.base import VectorDBQA
from langchain.docstore.document import Document
from langchain.document_loaders.base import BaseLoader
from langchain.embeddings.base import Embeddings
from langchain.embeddings.openai import OpenAIEmbeddings
@@ -60,13 +61,22 @@ class VectorstoreIndexCreator(BaseModel):
extra = Extra.forbid
arbitrary_types_allowed = True
def from_loaders(self, loaders: List[BaseLoader]) -> VectorStoreIndexWrapper:
"""Create a vectorstore index from loaders."""
docs = []
for loader in loaders:
docs.extend(loader.load())
def _from_docs(self, docs: List[Document]) -> VectorStoreIndexWrapper:
sub_docs = self.text_splitter.split_documents(docs)
vectorstore = self.vectorstore_cls.from_documents(
sub_docs, self.embedding, **self.vectorstore_kwargs
)
return VectorStoreIndexWrapper(vectorstore=vectorstore)
def from_text(
self, text: str, metadata: Optional[dict] = None
) -> VectorStoreIndexWrapper:
doc = Document(page_content=text, metadata=metadata or {})
return self._from_docs([doc])
def from_loaders(self, loaders: List[BaseLoader]) -> VectorStoreIndexWrapper:
"""Create a vectorstore index from loaders."""
docs = []
for loader in loaders:
docs.extend(loader.load())
return self._from_docs(docs)