mirror of
https://github.com/lightbroker/llmsecops-research.git
synced 2026-07-15 00:47:24 +02:00
log full completion result with semantic similarity comparison results
This commit is contained in:
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user