Skip to content

Commit c90fe46

Browse files
committed
Log the similarity scores in verbose mode when the embeddings_only_similarity_threshold is used.
1 parent e0b8083 commit c90fe46

File tree

1 file changed

+11
-0
lines changed

1 file changed

+11
-0
lines changed

nemoguardrails/embeddings/basic.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
# limitations under the License.
1515

1616
import asyncio
17+
import logging
1718
from typing import Any, Dict, List, Optional, Union
1819

1920
from annoy import AnnoyIndex
@@ -23,6 +24,8 @@
2324
from nemoguardrails.embeddings.providers import EmbeddingModel, init_embedding_model
2425
from nemoguardrails.rails.llm.config import EmbeddingsCacheConfig
2526

27+
log = logging.getLogger(__name__)
28+
2629

2730
class BasicEmbeddingsIndex(EmbeddingsIndex):
2831
"""Basic implementation of an embeddings index.
@@ -286,6 +289,14 @@ async def search(
286289
include_distances=True,
287290
)
288291

292+
# In verbose mode, we show detailed info about the scores
293+
if threshold != float("inf"):
294+
log_items = []
295+
for i in range(len(results[0])):
296+
score = 1 - results[1][i] / 2
297+
log_items.append((score, self._items[results[0][i]].text))
298+
log.info("Similarity scores :: %s", str(log_items))
299+
289300
filtered_results = self._filter_results(results[0], results[1], threshold)
290301

291302
return [self._items[i] for i in filtered_results]

0 commit comments

Comments
 (0)