Spaces:
Sleeping
Sleeping
| import shutil | |
| from pathlib import Path | |
| import chromadb | |
| from app.rag.embeddings import BGEEmbeddingFunction | |
| from app.utils.config import get_settings | |
| def get_chroma_client(persist_dir: Path | None = None) -> chromadb.PersistentClient: | |
| settings = get_settings() | |
| directory = persist_dir or settings.chroma_dir | |
| directory.mkdir(parents=True, exist_ok=True) | |
| return chromadb.PersistentClient(path=str(directory)) | |
| def get_policy_collection(): | |
| settings = get_settings() | |
| client = get_chroma_client() | |
| return client.get_or_create_collection( | |
| name=settings.chroma_collection, | |
| embedding_function=BGEEmbeddingFunction(), | |
| metadata={"description": "Shopify customer support policy and manual chunks"}, | |
| ) | |
| def reset_vector_store() -> None: | |
| settings = get_settings() | |
| if settings.chroma_dir.exists(): | |
| shutil.rmtree(settings.chroma_dir) | |
| def collection_count() -> int: | |
| return get_policy_collection().count() | |