from pathlib import Path import faiss from llama_index.core import ( Document, StorageContext, VectorStoreIndex, load_index_from_storage, ) from llama_index.core.embeddings import BaseEmbedding from llama_index.vector_stores.faiss import FaissVectorStore class RunbookEmbedding(BaseEmbedding): def _vector(self, text: str) -> list[float]: terms = [ "billing", "refund", "escalation", "ticket", "inventory", "restart", "warehouse", "faiss", ] lowered = text.lower() return [1.0 if term in lowered else 0.0 for term in terms] def _get_text_embedding(self, text: str) -> list[float]: return self._vector(text) def _get_query_embedding(self, query: str) -> list[float]: return self._vector(query) async def _aget_query_embedding(self, query: str) -> list[float]: return self._vector(query)