From 193290c9a575a1e92fd14b97c56556df2e11fad6 Mon Sep 17 00:00:00 2001 From: Alan Birchler De Allende <alan.birchler@telecom-paris.fr> Date: Tue, 9 Apr 2024 16:31:08 +0200 Subject: [PATCH] Finished integrating drawing of ATs from AI responses. --- capectracer/requirements_capec_tracer.txt | 3 +- capectracer/requirements_model_training.txt | 4 +-- src/main/java/ai/AIAttackPatternTree1.java | 2 +- src/main/java/ui/window/JFrameAI.java | 35 +++++---------------- 4 files changed, 13 insertions(+), 31 deletions(-) diff --git a/capectracer/requirements_capec_tracer.txt b/capectracer/requirements_capec_tracer.txt index 205667098d..354c7e3f16 100644 --- a/capectracer/requirements_capec_tracer.txt +++ b/capectracer/requirements_capec_tracer.txt @@ -2,4 +2,5 @@ scikit-learn==1.0.2 gensim==4.1.2 spacy==3.7.2 xmltodict==0.13.0 -nltk==3.7 \ No newline at end of file +nltk==3.7 +scipy==1.10.1 diff --git a/capectracer/requirements_model_training.txt b/capectracer/requirements_model_training.txt index 46d9d49fec..9a9fd05fba 100644 --- a/capectracer/requirements_model_training.txt +++ b/capectracer/requirements_model_training.txt @@ -1,4 +1,4 @@ tqdm==4.64.0 -numpy==1.21.5 +numpy==1.22.4 bayesian-optimization==1.4.3 -pandas==1.4.2 \ No newline at end of file +pandas==1.4.2 diff --git a/src/main/java/ai/AIAttackPatternTree1.java b/src/main/java/ai/AIAttackPatternTree1.java index 4d965d7fb5..bd11221c5a 100644 --- a/src/main/java/ai/AIAttackPatternTree1.java +++ b/src/main/java/ai/AIAttackPatternTree1.java @@ -299,7 +299,7 @@ public class AIAttackPatternTree1 extends AIInteract { } } - public Object applyAnswer(Object input) { return at; } + public Object applyAnswer(Object input) { return atList; } private void initKnowledge() { chatData.aiinterface.clearKnowledge(); diff --git a/src/main/java/ui/window/JFrameAI.java b/src/main/java/ui/window/JFrameAI.java index ddede95b58..cbed87d77c 100644 --- a/src/main/java/ui/window/JFrameAI.java +++ b/src/main/java/ui/window/JFrameAI.java @@ -640,13 +640,6 @@ public class JFrameAI extends JFrame implements ActionListener { } private void applyAttackTree(Object spec) { -// TDiagramPanel tdp = mgui.getCurrentTDiagramPanel(); -// -// if (!(tdp instanceof AttackTreeDiagramPanel)) { -// error("An attack tree diagram must be selected first"); -// return; -// } - if (spec == null) { error("Empty attack tree diagram generated by AI"); return; @@ -656,8 +649,7 @@ public class JFrameAI extends JFrame implements ActionListener { error("Invalid attack tree diagram generated by AI"); return; } - -// AttackTreeDiagramPanel atpanel = (AttackTreeDiagramPanel) tdp; + AttackTree at = (AttackTree) spec; inform("Drawing attack tree diagram with ai answer, please wait\n"); @@ -669,32 +661,21 @@ public class JFrameAI extends JFrame implements ActionListener { } private void applyAttackTrees(Object spec) { -// TDiagramPanel tdp = mgui.getCurrentTDiagramPanel(); -// -// if (!(tdp instanceof AttackTreeDiagramPanel)) { -// error("An attack tree diagram must be selected first"); -// return; -// } - if (spec == null) { - error("Empty attack tree diagram generated by AI"); + error("Empty attack tree diagram list generated by AI"); return; } - if (!(spec instanceof AttackTree)) { - error("Invalid attack tree diagram generated by AI"); + if (!(spec instanceof Iterable)) { + error("Invalid attack tree diagram list generated by AI"); return; } -// AttackTreeDiagramPanel atpanel = (AttackTreeDiagramPanel) tdp; - AttackTree at = (AttackTree) spec; - - inform("Drawing attack tree diagram with ai answer, please wait\n"); - TraceManager.addDev("Considered AT: " + at.toString()); + Iterable<Object> atList = (Iterable<Object>) spec; - mgui.drawAttackTreeDiagram(at); - - inform("Enhancing attack tree diagram with ai answer: done\n"); + for (Object at : atList) { + applyAttackTree(at); + } } private void applyIdentifySystemBlocks(Object input) { -- GitLab