assessment=unique_sdk.MessageAssessment.create(user_id=user_id,company_id=company_id,assistant_message_id="msg_abc123",status="DONE",label="RED",type="HALLUCINATION",title="Hallucination detected",explanation="The response contains information not found in source documents.",isVisible=True)
defdetect_hallucination(assistant_message_id,response_text,source_documents):"""Check for hallucinations in assistant response."""# Analyze response against sourceshas_hallucination,details=check_against_sources(response_text,source_documents)ifhas_hallucination:# Create assessmentunique_sdk.MessageAssessment.create(user_id=user_id,company_id=company_id,messageId=assistant_message_id,status="DONE",label="RED",type="HALLUCINATION",title="Hallucination Detected",explanation=f"Found unsupported claims: {details}",isVisible=True)else:# Create positive assessmentunique_sdk.MessageAssessment.create(user_id=user_id,company_id=company_id,messageId=assistant_message_id,status="DONE",label="GREEN",type="HALLUCINATION",title="No Hallucinations",explanation="All claims are supported by source documents.",isVisible=False# Don't show positive checks to user)
defcheck_compliance(assistant_message_id,response_text):"""Check response for compliance violations."""violations=[]# Check for PIIifcontains_pii(response_text):violations.append("Contains Personal Identifiable Information")# Check for prohibited contentifcontains_prohibited_content(response_text):violations.append("Contains prohibited content")# Check for policy violationsifviolates_policy(response_text):violations.append("Violates company policy")ifviolations:unique_sdk.MessageAssessment.create(user_id=user_id,company_id=company_id,messageId=assistant_message_id,status="DONE",label="RED",type="COMPLIANCE",title="Compliance Violations",explanation="; ".join(violations),isVisible=True)returnFalsereturnTrue
# Good: Specific and actionableunique_sdk.MessageAssessment.create(...title="Unsupported Claim Detected",explanation="The response states 'revenue increased by 40%' but source document shows 30%. See paragraph 3 in Q4_Report.pdf")# Bad: Vagueunique_sdk.MessageAssessment.create(...title="Error",explanation="Something is wrong")
# Show critical issues to usersunique_sdk.MessageAssessment.create(label="RED",isVisible=True,# User should see this...)# Hide positive checksunique_sdk.MessageAssessment.create(label="GREEN",isVisible=False,# No need to show passing checks...)
# Define constants for consistencyclassAssessmentLabel:CRITICAL="RED"# Serious issuesWARNING="YELLOW"# Minor concernsPASSED="GREEN"# No issues# Use consistentlyunique_sdk.MessageAssessment.create(label=AssessmentLabel.CRITICAL,...)