flexrag.entrypoints.cache 源代码
import json
from typing import Annotated
import hydra
from hydra.core.config_store import ConfigStore
from flexrag.retriever.retriever_base import RETRIEVAL_CACHE
from flexrag.utils import Choices, configure, extract_config
[文档]
@configure
class Config:
export_path: str
action: Annotated[str, Choices("clear", "export", "_")] = "_"
cs = ConfigStore.instance()
cs.store(name="default", node=Config)
@hydra.main(version_base="1.3", config_path=None, config_name="default")
def main(config: Config):
config = extract_config(config, Config)
match config.action:
case "clear":
RETRIEVAL_CACHE.clear()
case "export":
with open(config.export_path, "w", encoding="utf-8") as f:
for data in RETRIEVAL_CACHE:
data["retrieved_contexts"] = RETRIEVAL_CACHE[data]
f.write(json.dumps(data) + "\n")
case _:
raise ValueError("No action specified")
return
if __name__ == "__main__":
main()