Spaces:
Running
Running
Fix Gemini model to use gemini-pro from config
Browse files
notebooks/04_agent_intelligence.ipynb
CHANGED
|
@@ -48,8 +48,8 @@
|
|
| 48 |
"AGENT_DIR = MODELS_DIR.parent / \"agent\"\n",
|
| 49 |
"AGENT_DIR.mkdir(exist_ok=True)\n",
|
| 50 |
"\n",
|
| 51 |
-
"print(f\"
|
| 52 |
-
"print(f\"
|
| 53 |
]
|
| 54 |
},
|
| 55 |
{
|
|
@@ -103,7 +103,7 @@
|
|
| 103 |
" def to_dict(self) -> Dict:\n",
|
| 104 |
" return asdict(self)\n",
|
| 105 |
"\n",
|
| 106 |
-
"print(\"
|
| 107 |
]
|
| 108 |
},
|
| 109 |
{
|
|
@@ -207,7 +207,7 @@
|
|
| 207 |
" reverse=True)\n",
|
| 208 |
"\n",
|
| 209 |
"scoring_engine = DecisionScoringEngine()\n",
|
| 210 |
-
"print(\"
|
| 211 |
]
|
| 212 |
},
|
| 213 |
{
|
|
@@ -262,12 +262,12 @@
|
|
| 262 |
" if self.api_key:\n",
|
| 263 |
" try:\n",
|
| 264 |
" genai.configure(api_key=self.api_key)\n",
|
| 265 |
-
" self.model = genai.GenerativeModel('gemini-
|
| 266 |
-
" print(\"
|
| 267 |
" except Exception as e:\n",
|
| 268 |
-
" print(f\"
|
| 269 |
" else:\n",
|
| 270 |
-
" print(\"
|
| 271 |
" \n",
|
| 272 |
" def analyze_threat(self, threat_data: Dict) -> AgentDecision:\n",
|
| 273 |
" \"\"\"Analyze threat and generate decision with reasoning\"\"\"\n",
|
|
@@ -307,7 +307,7 @@
|
|
| 307 |
" recommended_follow_up=result.get('recommended_follow_up', [])\n",
|
| 308 |
" )\n",
|
| 309 |
" except Exception as e:\n",
|
| 310 |
-
" print(f\"
|
| 311 |
" return self._fallback_analyze(threat_data)\n",
|
| 312 |
" \n",
|
| 313 |
" def _fallback_analyze(self, threat_data: Dict) -> AgentDecision:\n",
|
|
@@ -339,7 +339,7 @@
|
|
| 339 |
" )\n",
|
| 340 |
"\n",
|
| 341 |
"reasoning_engine = GeminiReasoningEngine()\n",
|
| 342 |
-
"print(\"
|
| 343 |
]
|
| 344 |
},
|
| 345 |
{
|
|
@@ -435,7 +435,7 @@
|
|
| 435 |
" }\n",
|
| 436 |
"\n",
|
| 437 |
"task_queue = AgentTaskQueue()\n",
|
| 438 |
-
"print(\"
|
| 439 |
]
|
| 440 |
},
|
| 441 |
{
|
|
@@ -560,7 +560,7 @@
|
|
| 560 |
" }\n",
|
| 561 |
"\n",
|
| 562 |
"agent = CyberForgeAgent()\n",
|
| 563 |
-
"print(\"
|
| 564 |
]
|
| 565 |
},
|
| 566 |
{
|
|
@@ -634,14 +634,14 @@
|
|
| 634 |
" 'severity_weights': DecisionScoringEngine.SEVERITY_WEIGHTS,\n",
|
| 635 |
" 'evidence_weights': DecisionScoringEngine.EVIDENCE_WEIGHTS,\n",
|
| 636 |
" 'task_priorities': {p.name: p.value for p in TaskPriority},\n",
|
| 637 |
-
" 'gemini_model': 'gemini-
|
| 638 |
"}\n",
|
| 639 |
"\n",
|
| 640 |
"config_path = AGENT_DIR / \"agent_config.json\"\n",
|
| 641 |
"with open(config_path, 'w') as f:\n",
|
| 642 |
" json.dump(agent_config, f, indent=2)\n",
|
| 643 |
"\n",
|
| 644 |
-
"print(f\"
|
| 645 |
]
|
| 646 |
},
|
| 647 |
{
|
|
@@ -718,7 +718,7 @@
|
|
| 718 |
"with open(module_path, 'w') as f:\n",
|
| 719 |
" f.write(agent_module)\n",
|
| 720 |
"\n",
|
| 721 |
-
"print(f\"
|
| 722 |
]
|
| 723 |
},
|
| 724 |
{
|
|
@@ -741,23 +741,23 @@
|
|
| 741 |
"print(\"=\" * 60)\n",
|
| 742 |
"\n",
|
| 743 |
"print(f\"\"\"\n",
|
| 744 |
-
"
|
| 745 |
" - Decision Scoring: Weighted threat assessment\n",
|
| 746 |
" - Gemini Integration: AI-powered reasoning\n",
|
| 747 |
" - Task Queue: Priority-based execution\n",
|
| 748 |
" - Action History: Full audit trail\n",
|
| 749 |
"\n",
|
| 750 |
-
"
|
| 751 |
" - Action: {decision.action}\n",
|
| 752 |
" - Confidence: {decision.confidence:.2%}\n",
|
| 753 |
" - Risk Level: {decision.risk_level}\n",
|
| 754 |
"\n",
|
| 755 |
-
"
|
| 756 |
" - Config: {AGENT_DIR}/agent_config.json\n",
|
| 757 |
" - Module: {AGENT_DIR}/cyberforge_agent.py\n",
|
| 758 |
"\n",
|
| 759 |
"Next step:\n",
|
| 760 |
-
"
|
| 761 |
"\"\"\")\n",
|
| 762 |
"print(\"=\" * 60)"
|
| 763 |
]
|
|
@@ -770,4 +770,4 @@
|
|
| 770 |
},
|
| 771 |
"nbformat": 4,
|
| 772 |
"nbformat_minor": 5
|
| 773 |
-
}
|
|
|
|
| 48 |
"AGENT_DIR = MODELS_DIR.parent / \"agent\"\n",
|
| 49 |
"AGENT_DIR.mkdir(exist_ok=True)\n",
|
| 50 |
"\n",
|
| 51 |
+
"print(f\"\u2713 Configuration loaded\")\n",
|
| 52 |
+
"print(f\"\u2713 Agent output: {AGENT_DIR}\")"
|
| 53 |
]
|
| 54 |
},
|
| 55 |
{
|
|
|
|
| 103 |
" def to_dict(self) -> Dict:\n",
|
| 104 |
" return asdict(self)\n",
|
| 105 |
"\n",
|
| 106 |
+
"print(\"\u2713 Task definitions loaded\")"
|
| 107 |
]
|
| 108 |
},
|
| 109 |
{
|
|
|
|
| 207 |
" reverse=True)\n",
|
| 208 |
"\n",
|
| 209 |
"scoring_engine = DecisionScoringEngine()\n",
|
| 210 |
+
"print(\"\u2713 Decision Scoring Engine initialized\")"
|
| 211 |
]
|
| 212 |
},
|
| 213 |
{
|
|
|
|
| 262 |
" if self.api_key:\n",
|
| 263 |
" try:\n",
|
| 264 |
" genai.configure(api_key=self.api_key)\n",
|
| 265 |
+
" self.model = genai.GenerativeModel(CONFIG.get('gemini_model', 'gemini-pro'))\n",
|
| 266 |
+
" print(\" \u2713 Gemini API connected\")\n",
|
| 267 |
" except Exception as e:\n",
|
| 268 |
+
" print(f\" \u26a0 Gemini API error: {e}\")\n",
|
| 269 |
" else:\n",
|
| 270 |
+
" print(\" \u26a0 No Gemini API key found (will use fallback reasoning)\")\n",
|
| 271 |
" \n",
|
| 272 |
" def analyze_threat(self, threat_data: Dict) -> AgentDecision:\n",
|
| 273 |
" \"\"\"Analyze threat and generate decision with reasoning\"\"\"\n",
|
|
|
|
| 307 |
" recommended_follow_up=result.get('recommended_follow_up', [])\n",
|
| 308 |
" )\n",
|
| 309 |
" except Exception as e:\n",
|
| 310 |
+
" print(f\" \u26a0 Gemini error: {e}\")\n",
|
| 311 |
" return self._fallback_analyze(threat_data)\n",
|
| 312 |
" \n",
|
| 313 |
" def _fallback_analyze(self, threat_data: Dict) -> AgentDecision:\n",
|
|
|
|
| 339 |
" )\n",
|
| 340 |
"\n",
|
| 341 |
"reasoning_engine = GeminiReasoningEngine()\n",
|
| 342 |
+
"print(\"\u2713 Gemini Reasoning Engine initialized\")"
|
| 343 |
]
|
| 344 |
},
|
| 345 |
{
|
|
|
|
| 435 |
" }\n",
|
| 436 |
"\n",
|
| 437 |
"task_queue = AgentTaskQueue()\n",
|
| 438 |
+
"print(\"\u2713 Task Queue Manager initialized\")"
|
| 439 |
]
|
| 440 |
},
|
| 441 |
{
|
|
|
|
| 560 |
" }\n",
|
| 561 |
"\n",
|
| 562 |
"agent = CyberForgeAgent()\n",
|
| 563 |
+
"print(\"\u2713 CyberForge Agent initialized\")"
|
| 564 |
]
|
| 565 |
},
|
| 566 |
{
|
|
|
|
| 634 |
" 'severity_weights': DecisionScoringEngine.SEVERITY_WEIGHTS,\n",
|
| 635 |
" 'evidence_weights': DecisionScoringEngine.EVIDENCE_WEIGHTS,\n",
|
| 636 |
" 'task_priorities': {p.name: p.value for p in TaskPriority},\n",
|
| 637 |
+
" 'gemini_model': 'gemini-pro'\n",
|
| 638 |
"}\n",
|
| 639 |
"\n",
|
| 640 |
"config_path = AGENT_DIR / \"agent_config.json\"\n",
|
| 641 |
"with open(config_path, 'w') as f:\n",
|
| 642 |
" json.dump(agent_config, f, indent=2)\n",
|
| 643 |
"\n",
|
| 644 |
+
"print(f\"\u2713 Agent config saved to: {config_path}\")"
|
| 645 |
]
|
| 646 |
},
|
| 647 |
{
|
|
|
|
| 718 |
"with open(module_path, 'w') as f:\n",
|
| 719 |
" f.write(agent_module)\n",
|
| 720 |
"\n",
|
| 721 |
+
"print(f\"\u2713 Agent module saved to: {module_path}\")"
|
| 722 |
]
|
| 723 |
},
|
| 724 |
{
|
|
|
|
| 741 |
"print(\"=\" * 60)\n",
|
| 742 |
"\n",
|
| 743 |
"print(f\"\"\"\n",
|
| 744 |
+
"\ud83e\udd16 Agent Capabilities:\n",
|
| 745 |
" - Decision Scoring: Weighted threat assessment\n",
|
| 746 |
" - Gemini Integration: AI-powered reasoning\n",
|
| 747 |
" - Task Queue: Priority-based execution\n",
|
| 748 |
" - Action History: Full audit trail\n",
|
| 749 |
"\n",
|
| 750 |
+
"\ud83d\udcca Test Results:\n",
|
| 751 |
" - Action: {decision.action}\n",
|
| 752 |
" - Confidence: {decision.confidence:.2%}\n",
|
| 753 |
" - Risk Level: {decision.risk_level}\n",
|
| 754 |
"\n",
|
| 755 |
+
"\ud83d\udcc1 Output Files:\n",
|
| 756 |
" - Config: {AGENT_DIR}/agent_config.json\n",
|
| 757 |
" - Module: {AGENT_DIR}/cyberforge_agent.py\n",
|
| 758 |
"\n",
|
| 759 |
"Next step:\n",
|
| 760 |
+
" \u2192 05_model_validation.ipynb\n",
|
| 761 |
"\"\"\")\n",
|
| 762 |
"print(\"=\" * 60)"
|
| 763 |
]
|
|
|
|
| 770 |
},
|
| 771 |
"nbformat": 4,
|
| 772 |
"nbformat_minor": 5
|
| 773 |
+
}
|