MetaGPT
1"""RAG Interfaces."""
2
3from typing import Protocol, runtime_checkable4
5
6@runtime_checkable
7class RAGObject(Protocol):8"""Support rag add object."""9
10def rag_key(self) -> str:11"""For rag search."""12
13def model_dump_json(self) -> str:14"""For rag persist.15
16Pydantic Model don't need to implement this, as there is a built-in function named model_dump_json.
17"""
18
19
20@runtime_checkable
21class NoEmbedding(Protocol):22"""Some retriever does not require embeddings, e.g. BM25"""23
24_no_embedding: bool25