Spaces:
Sleeping
Sleeping
| import logging | |
| from langchain.vectorstores import Chroma | |
| class VectorDatabase: | |
| """ | |
| A class for creating and managing a vector database. | |
| """ | |
| def __init__(self, db_path, embedding_model): | |
| """ | |
| Initializes the vector database with a database path and embedding model. | |
| :param db_path: Path to store the vector database. | |
| :param embedding_model: Embedding model to use for vector creation. | |
| """ | |
| self.db_path = db_path | |
| self.embedding_model = embedding_model | |
| self.vectorstore = None | |
| self.logger = logging.getLogger(__name__) | |
| def create_vector_db(self, documents): | |
| """ | |
| Creates a vector database from the provided documents. | |
| Handles errors related to vector creation and persistence. | |
| :param documents: List of documents to be converted into vectors. | |
| """ | |
| if not documents: | |
| self.logger.error("No documents provided for vector database creation.") | |
| raise ValueError("No documents provided for vector database creation.") | |
| try: | |
| self.vectorstore = Chroma.from_documents(documents=documents, embedding=self.embedding_model, persist_directory=self.db_path) | |
| self.vectorstore.persist() | |
| self.logger.info(f"Vector database created with {len(documents)} documents.") | |
| except Exception as e: | |
| self.logger.exception(f"Error in creating vector database: {e}") | |
| raise RuntimeError(f"Error in creating vector database: {e}") | |