from praisonaiagents.knowledge.index import (
IndexType,
IndexStats,
get_index_registry
)
from typing import List, Dict, Any, Optional
class MyIndex:
name = "my_index"
index_type = IndexType.KEYWORD
def __init__(self, **config):
self.documents = []
def add_documents(
self,
documents: List[str],
metadatas: Optional[List[Dict[str, Any]]] = None,
ids: Optional[List[str]] = None
) -> List[str]:
# Implementation
...
def query(
self,
query: str,
top_k: int = 10,
**kwargs
) -> List[Dict[str, Any]]:
# Implementation
...
def get_stats(self) -> IndexStats:
return IndexStats(
document_count=len(self.documents),
index_type=self.index_type
)
def clear(self) -> None:
self.documents.clear()
# Register
registry = get_index_registry()
registry.register("my_index", MyIndex)