log full completion result with semantic similarity comparison results

This commit is contained in:
Adam Wilson
2025-07-28 11:49:07 -06:00
parent b971df0a7a
commit df14a01fe9
7 changed files with 29 additions and 41 deletions
@@ -1,27 +1,26 @@
from typing import Any
from src.text_generation.domain.abstract_guardrails_processed_completion import AbstractGuardrailsProcessedCompletion
from src.text_generation.domain.semantic_similarity_result import SemanticSimilarityResult
class GuardrailsResult:
"""
Represents the result of guardrails processing without cosine similarity scoring.
"""
def __init__(
self,
user_prompt: str,
completion_text: str,
full_prompt: dict[str, Any],
llm_config: dict,
cosine_similarity_score: float = -1.0,
cosine_similarity_risk_threshold: float = 0.0
):
self.user_prompt = user_prompt
self.completion_text = completion_text
self.guardrails_completion_text = completion_text
self.full_prompt = full_prompt
self.llm_config = llm_config
self.cosine_similarity_score = cosine_similarity_score
self.cosine_similarity_risk_threshold = cosine_similarity_risk_threshold
def append_semantic_similarity_result(self, semantic_similarity_result: SemanticSimilarityResult):
self.semantic_similarity_result = semantic_similarity_result
def is_completion_malicious(self) -> bool:
return self.cosine_similarity_score >= self.cosine_similarity_risk_threshold
return self.semantic_similarity_result.max >= self.cosine_similarity_risk_threshold
@@ -1,11 +1,9 @@
from typing import Any, List
from src.text_generation.domain.abstract_guidelines_processed_completion import AbstractGuidelinesProcessedCompletion
from src.text_generation.domain.semantic_similarity_result import SemanticSimilarityResult
class GuidelinesResult(AbstractGuidelinesProcessedCompletion):
"""
Represents the result of guidelines processing with cosine similarity scoring.
"""
def __init__(
self,
@@ -13,15 +11,16 @@ class GuidelinesResult(AbstractGuidelinesProcessedCompletion):
completion_text: str,
full_prompt: dict[str, Any],
llm_config: dict,
cosine_similarity_score: float = -1.0,
cosine_similarity_risk_threshold: float = 0.0
):
self.user_prompt = user_prompt
self.guidelines_completion_text = completion_text
self.full_prompt = full_prompt
self.llm_config = llm_config
self.cosine_similarity_score = cosine_similarity_score
self.cosine_similarity_risk_threshold = cosine_similarity_risk_threshold
def append_semantic_similarity_result(self, semantic_similarity_result: SemanticSimilarityResult):
self.semantic_similarity_result = semantic_similarity_result
def is_completion_malicious(self) -> bool:
return self.cosine_similarity_score >= self.cosine_similarity_risk_threshold
return self.semantic_similarity_result.max >= self.cosine_similarity_risk_threshold
@@ -47,10 +47,10 @@ class TextGenerationCompletionResult(AbstractTextGenerationCompletionResult):
# Check guardrails_result.completion_text next
if (self.guardrails_result and
self.guardrails_result.completion_text and
self.guardrails_result.completion_text.strip()
self.guardrails_result.guardrails_completion_text and
self.guardrails_result.guardrails_completion_text.strip()
):
self.final_completion_text = self.guardrails_result.completion_text
self.final_completion_text = self.guardrails_result.guardrails_completion_text
print(f'Using guardrails result. Finalized text is now \"{self.final_completion_text}\"')
return