Simplified Telemetry API and tying it to logger

This commit is contained in:
Ashwin Bharambe 2024-09-07 15:25:35 -07:00
parent 741310f78e
commit 6ccb0a4c1f
15 changed files with 496 additions and 161 deletions

View file

@ -4,6 +4,7 @@
# This source code is licensed under the terms described in the LICENSE file in
# the root directory of this source tree.
import logging
import uuid
from typing import Any, Dict, List, Optional
@ -20,8 +21,11 @@ from llama_toolchain.memory.common.vector_store import (
BankWithIndex,
EmbeddingIndex,
)
from llama_toolchain.telemetry import tracing
from .config import FaissImplConfig
logger = logging.getLogger(__name__)
class FaissIndex(EmbeddingIndex):
id_by_index: Dict[int, str]
@ -32,11 +36,12 @@ class FaissIndex(EmbeddingIndex):
self.id_by_index = {}
self.chunk_by_index = {}
@tracing.span(name="add_chunks")
async def add_chunks(self, chunks: List[Chunk], embeddings: NDArray):
indexlen = len(self.id_by_index)
for i, chunk in enumerate(chunks):
self.chunk_by_index[indexlen + i] = chunk
print(f"Adding chunk #{indexlen + i} tokens={chunk.token_count}")
logger.info(f"Adding chunk #{indexlen + i} tokens={chunk.token_count}")
self.id_by_index[indexlen + i] = chunk.document_id
self.index.add(np.array(embeddings).astype(np.float32))