Spaces:
Runtime error
Runtime error
| #!/usr/bin/env python | |
| # -*- coding: utf-8 -*- | |
| """ | |
| @Time : 2023/5/28 00:01 | |
| @Author : alexanderwu | |
| @File : https://github.com/geekan/MetaGPT/blob/main/metagpt/document_store/base_store.py | |
| """ | |
| from abc import ABC, abstractmethod | |
| from pathlib import Path | |
| from autoagents.system.config import Config | |
| class BaseStore(ABC): | |
| """FIXME: consider add_index, set_index and think 颗粒度""" | |
| def search(self, query, *args, **kwargs): | |
| raise NotImplementedError | |
| def write(self, *args, **kwargs): | |
| raise NotImplementedError | |
| def add(self, *args, **kwargs): | |
| raise NotImplementedError | |
| class LocalStore(BaseStore, ABC): | |
| def __init__(self, raw_data: Path, cache_dir: Path = None): | |
| if not raw_data: | |
| raise FileNotFoundError | |
| self.config = Config() | |
| self.raw_data = raw_data | |
| if not cache_dir: | |
| cache_dir = raw_data.parent | |
| self.cache_dir = cache_dir | |
| self.store = self._load() | |
| if not self.store: | |
| self.store = self.write() | |
| def _get_index_and_store_fname(self): | |
| fname = self.raw_data.name.split('.')[0] | |
| index_file = self.cache_dir / f"{fname}.index" | |
| store_file = self.cache_dir / f"{fname}.pkl" | |
| return index_file, store_file | |
| def _load(self): | |
| raise NotImplementedError | |
| def _write(self, docs, metadatas): | |
| raise NotImplementedError | |