Update Klassifizierung - Teil 2

This commit is contained in:
2026-08-01 22:28:23 +02:00
parent a5cc4f881c
commit ccdc6e9d99
10 changed files with 594 additions and 144 deletions
+74 -60
View File
@@ -213,6 +213,7 @@ type RuleCheck struct {
// changed since the historical run.
type KnowledgeDiagnostic struct {
RunID string `json:"run_id"`
Purpose string `json:"purpose,omitempty"`
TicketID int64 `json:"ticket_id"`
KnowledgeID string `json:"knowledge_id"`
Title string `json:"title"`
@@ -300,64 +301,77 @@ type ContextAuditItem struct {
}
type RunRecord struct {
RunID string `json:"run_id"`
TicketID int64 `json:"ticket_id"`
TicketName string `json:"ticket_name"`
SourceVersion string `json:"source_version"`
StartedAt time.Time `json:"started_at"`
FinishedAt time.Time `json:"finished_at"`
Outcome string `json:"outcome"`
Reason string `json:"reason"`
AIReason string `json:"ai_reason,omitempty"`
PolicyReason string `json:"policy_reason,omitempty"`
CategoryChecks []RuleCheck `json:"category_checks,omitempty"`
ReplyChecks []RuleCheck `json:"reply_checks,omitempty"`
ExecutionChecks []RuleCheck `json:"execution_checks,omitempty"`
CategoryBefore int64 `json:"category_before"`
CategoryBeforeName string `json:"category_before_name,omitempty"`
AIRecommendedCategoryID int64 `json:"ai_recommended_category_id,omitempty"`
AIRecommendedCategoryName string `json:"ai_recommended_category_name,omitempty"`
AICategoryConfidence float64 `json:"ai_category_confidence,omitempty"`
CategoryThreshold float64 `json:"category_threshold,omitempty"`
CategoryDecision string `json:"category_decision,omitempty"`
CategoryProposed int64 `json:"category_proposed"`
CategoryWouldChange bool `json:"category_would_change"`
CategoryChanged bool `json:"category_changed"`
AIReplyRecommended bool `json:"ai_reply_recommended,omitempty"`
AIReplyConfidence float64 `json:"ai_reply_confidence,omitempty"`
ReplyThreshold float64 `json:"reply_threshold,omitempty"`
AIKnowledgeID string `json:"ai_knowledge_id,omitempty"`
ReplyDecision string `json:"reply_decision,omitempty"`
ReplyProposed bool `json:"reply_proposed"`
ReplyWritten bool `json:"reply_written"`
KnowledgeID string `json:"knowledge_id,omitempty"`
KnowledgeTopID string `json:"knowledge_top_id,omitempty"`
KnowledgeTopTitle string `json:"knowledge_top_title,omitempty"`
KnowledgeScore float64 `json:"knowledge_score,omitempty"`
KnowledgeSemanticScore float64 `json:"knowledge_semantic_score,omitempty"`
KnowledgeTitleScore float64 `json:"knowledge_title_score,omitempty"`
KnowledgeLexicalScore float64 `json:"knowledge_lexical_score,omitempty"`
KnowledgeKeywordScore float64 `json:"knowledge_keyword_score,omitempty"`
KnowledgeCategoryScore float64 `json:"knowledge_category_score,omitempty"`
KnowledgeThreshold float64 `json:"knowledge_threshold,omitempty"`
KnowledgeEvidenceScore float64 `json:"knowledge_evidence_score,omitempty"`
KnowledgeRetrievalFloor float64 `json:"knowledge_retrieval_floor,omitempty"`
KnowledgeCategoryAligned bool `json:"knowledge_category_aligned,omitempty"`
KnowledgeBestChunk string `json:"knowledge_best_chunk,omitempty"`
KnowledgeBestQueryChunk string `json:"knowledge_best_query_chunk,omitempty"`
KnowledgeQueryChunks int `json:"knowledge_query_chunks,omitempty"`
KnowledgeDocumentChunks int `json:"knowledge_document_chunks,omitempty"`
KnowledgeLLMCandidates int `json:"knowledge_llm_candidates,omitempty"`
KnowledgeCandidateCutoff float64 `json:"knowledge_candidate_cutoff,omitempty"`
KnowledgeCandidateMaxGap float64 `json:"knowledge_candidate_max_gap,omitempty"`
KnowledgeAuditTopK int `json:"knowledge_audit_top_k,omitempty"`
ContextChanges int `json:"context_changes,omitempty"`
ContextIncidents int `json:"context_incidents,omitempty"`
ContextIssues int `json:"context_issues,omitempty"`
ContextDevices int `json:"context_devices,omitempty"`
ContextWarnings []string `json:"context_warnings,omitempty"`
KnowledgeCandidates []KnowledgeCandidateAudit `json:"knowledge_candidates,omitempty"`
ContextDetails []ContextAuditItem `json:"context_details,omitempty"`
DryRun bool `json:"dry_run"`
Error string `json:"error,omitempty"`
RunID string `json:"run_id"`
TicketID int64 `json:"ticket_id"`
TicketName string `json:"ticket_name"`
SourceVersion string `json:"source_version"`
StartedAt time.Time `json:"started_at"`
FinishedAt time.Time `json:"finished_at"`
Outcome string `json:"outcome"`
Reason string `json:"reason"`
AIReason string `json:"ai_reason,omitempty"`
CategoryAIReason string `json:"category_ai_reason,omitempty"`
ReplyAIReason string `json:"reply_ai_reason,omitempty"`
CategoryAnalysisExecuted bool `json:"category_analysis_executed,omitempty"`
ReplyAnalysisExecuted bool `json:"reply_analysis_executed,omitempty"`
ReplyAnalysisSkipReason string `json:"reply_analysis_skip_reason,omitempty"`
CategoryAnalysisDurationMS int64 `json:"category_analysis_duration_ms,omitempty"`
ReplyAnalysisDurationMS int64 `json:"reply_analysis_duration_ms,omitempty"`
ReplyBasisCategoryID int64 `json:"reply_basis_category_id,omitempty"`
ReplyBasisCategoryName string `json:"reply_basis_category_name,omitempty"`
PolicyReason string `json:"policy_reason,omitempty"`
CategoryChecks []RuleCheck `json:"category_checks,omitempty"`
ReplyChecks []RuleCheck `json:"reply_checks,omitempty"`
ExecutionChecks []RuleCheck `json:"execution_checks,omitempty"`
CategoryBefore int64 `json:"category_before"`
CategoryBeforeName string `json:"category_before_name,omitempty"`
AIRecommendedCategoryID int64 `json:"ai_recommended_category_id,omitempty"`
AIRecommendedCategoryName string `json:"ai_recommended_category_name,omitempty"`
AICategoryConfidence float64 `json:"ai_category_confidence,omitempty"`
CategoryThreshold float64 `json:"category_threshold,omitempty"`
CategoryDecision string `json:"category_decision,omitempty"`
CategoryProposed int64 `json:"category_proposed"`
CategoryWouldChange bool `json:"category_would_change"`
CategoryChanged bool `json:"category_changed"`
AIReplyRecommended bool `json:"ai_reply_recommended,omitempty"`
AIReplyConfidence float64 `json:"ai_reply_confidence,omitempty"`
ReplyThreshold float64 `json:"reply_threshold,omitempty"`
AIKnowledgeID string `json:"ai_knowledge_id,omitempty"`
ReplyDecision string `json:"reply_decision,omitempty"`
ReplyProposed bool `json:"reply_proposed"`
ReplyWritten bool `json:"reply_written"`
KnowledgeID string `json:"knowledge_id,omitempty"`
KnowledgeTopID string `json:"knowledge_top_id,omitempty"`
KnowledgeTopTitle string `json:"knowledge_top_title,omitempty"`
KnowledgeScore float64 `json:"knowledge_score,omitempty"`
KnowledgeSemanticScore float64 `json:"knowledge_semantic_score,omitempty"`
KnowledgeTitleScore float64 `json:"knowledge_title_score,omitempty"`
KnowledgeLexicalScore float64 `json:"knowledge_lexical_score,omitempty"`
KnowledgeKeywordScore float64 `json:"knowledge_keyword_score,omitempty"`
KnowledgeCategoryScore float64 `json:"knowledge_category_score,omitempty"`
KnowledgeThreshold float64 `json:"knowledge_threshold,omitempty"`
KnowledgeEvidenceScore float64 `json:"knowledge_evidence_score,omitempty"`
KnowledgeRetrievalFloor float64 `json:"knowledge_retrieval_floor,omitempty"`
KnowledgeCategoryAligned bool `json:"knowledge_category_aligned,omitempty"`
KnowledgeBestChunk string `json:"knowledge_best_chunk,omitempty"`
KnowledgeBestQueryChunk string `json:"knowledge_best_query_chunk,omitempty"`
KnowledgeQueryChunks int `json:"knowledge_query_chunks,omitempty"`
KnowledgeDocumentChunks int `json:"knowledge_document_chunks,omitempty"`
KnowledgeLLMCandidates int `json:"knowledge_llm_candidates,omitempty"`
CategoryKnowledgeLLMCandidates int `json:"category_knowledge_llm_candidates,omitempty"`
CategoryKnowledgeCandidateCutoff float64 `json:"category_knowledge_candidate_cutoff,omitempty"`
KnowledgeCandidateCutoff float64 `json:"knowledge_candidate_cutoff,omitempty"`
KnowledgeCandidateMaxGap float64 `json:"knowledge_candidate_max_gap,omitempty"`
KnowledgeAuditTopK int `json:"knowledge_audit_top_k,omitempty"`
ContextChanges int `json:"context_changes,omitempty"`
ContextIncidents int `json:"context_incidents,omitempty"`
ContextIssues int `json:"context_issues,omitempty"`
ContextDevices int `json:"context_devices,omitempty"`
ContextWarnings []string `json:"context_warnings,omitempty"`
KnowledgeCandidates []KnowledgeCandidateAudit `json:"knowledge_candidates,omitempty"`
CategoryKnowledgeCandidates []KnowledgeCandidateAudit `json:"category_knowledge_candidates,omitempty"`
ReplyKnowledgeCandidates []KnowledgeCandidateAudit `json:"reply_knowledge_candidates,omitempty"`
ContextDetails []ContextAuditItem `json:"context_details,omitempty"`
DryRun bool `json:"dry_run"`
Error string `json:"error,omitempty"`
}