Spaces:
Running
Running
"""RAG Interfaces.""" | |
from typing import Protocol, runtime_checkable | |
class RAGObject(Protocol): | |
"""Support rag add object.""" | |
def rag_key(self) -> str: | |
"""For rag search.""" | |
def model_dump_json(self) -> str: | |
"""For rag persist. | |
Pydantic Model don't need to implement this, as there is a built-in function named model_dump_json. | |
""" | |
class NoEmbedding(Protocol): | |
"""Some retriever does not require embeddings, e.g. BM25""" | |
_no_embedding: bool | |