diff --git a/week8/community_contributions/solisoma/price_is_right_fixed.ipynb b/week8/community_contributions/solisoma/price_is_right_fixed.ipynb
index dcf591d..032e9db 100644
--- a/week8/community_contributions/solisoma/price_is_right_fixed.ipynb
+++ b/week8/community_contributions/solisoma/price_is_right_fixed.ipynb
@@ -13,21 +13,28 @@
},
{
"cell_type": "code",
- "execution_count": 11,
+ "execution_count": 1,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
- "Working directory changed to: c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\week8\n"
+ "Working directory: c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\week8\n"
]
}
],
"source": [
"# Imports\n",
"import sys\n",
- "sys.path.append('../..')\n",
+ "import os\n",
+ "\n",
+ "# Change working directory to week8 where deal_agent_framework expects to run\n",
+ "# This ensures all relative paths (models, database) work correctly\n",
+ "notebook_dir = os.getcwd()\n",
+ "week8_dir = os.path.join(notebook_dir, '..', '..')\n",
+ "os.chdir(week8_dir)\n",
+ "print(f\"Working directory: {os.getcwd()}\")\n",
"\n",
"import logging\n",
"import queue\n",
@@ -42,7 +49,7 @@
},
{
"cell_type": "code",
- "execution_count": 12,
+ "execution_count": 2,
"metadata": {},
"outputs": [],
"source": [
@@ -84,8 +91,6 @@
" \"\"\"Generate 3D visualization of vector database - handles empty database gracefully\"\"\"\n",
" try:\n",
" documents, vectors, colors = DealAgentFramework.get_plot_data(max_datapoints=1000)\n",
- "\n",
- " print(vectors, flush=True)\n",
" \n",
" # Check if we have any data\n",
" if len(vectors) == 0:\n",
@@ -168,7 +173,7 @@
},
{
"cell_type": "code",
- "execution_count": 13,
+ "execution_count": null,
"metadata": {},
"outputs": [],
"source": [
@@ -220,8 +225,12 @@
"\n",
" def do_run(self):\n",
" \"\"\"Run framework and return updated table\"\"\"\n",
+ " import datetime\n",
" framework = self.get_agent_framework()\n",
+ " # Log to the Gradio display (will show up in logs panel)\n",
+ " logging.info(f\"⏰ TIMER TRIGGERED at {datetime.datetime.now().strftime('%H:%M:%S')} - Current memory: {len(framework.memory)} deals\")\n",
" new_opportunities = framework.run()\n",
+ " logging.info(f\"✅ Scan complete - Total deals in memory: {len(framework.memory)}\")\n",
" return self.table_for(new_opportunities)\n",
"\n",
" def run_with_logging(self, initial_log_data):\n",
@@ -288,7 +297,7 @@
" ui.load(self.load_initial, inputs=[], outputs=[log_data, logs, opportunities_dataframe])\n",
"\n",
" # Timer that runs every 5 minutes (300 seconds)\n",
- " timer = gr.Timer(value=300, active=True)\n",
+ " timer = gr.Timer(value=10, active=True)\n",
" timer.tick(self.run_with_logging, inputs=[log_data], outputs=[log_data, logs, opportunities_dataframe])\n",
"\n",
" # Selection handler\n",
@@ -307,23 +316,14 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "[2025-10-30 13:56:37 +0100] [Agents] [INFO] HTTP Request: GET https://api.gradio.app/pkg-version \"HTTP/1.1 200 OK\"\n",
- "[2025-10-30 13:56:37 +0100] [Agents] [INFO] HTTP Request: GET https://api.gradio.app/pkg-version \"HTTP/1.1 200 OK\"\n",
- "[2025-10-30 13:56:37 +0100] [Agents] [INFO] HTTP Request: GET https://api.gradio.app/pkg-version \"HTTP/1.1 200 OK\"\n",
- "* Running on local URL: http://127.0.0.1:7863\n",
- "[2025-10-30 13:56:37 +0100] [Agents] [INFO] HTTP Request: GET http://127.0.0.1:7863/gradio_api/startup-events \"HTTP/1.1 200 OK\"\n",
- "[2025-10-30 13:56:37 +0100] [Agents] [INFO] HTTP Request: GET http://127.0.0.1:7863/gradio_api/startup-events \"HTTP/1.1 200 OK\"\n",
- "[2025-10-30 13:56:37 +0100] [Agents] [INFO] HTTP Request: GET http://127.0.0.1:7863/gradio_api/startup-events \"HTTP/1.1 200 OK\"\n",
- "[2025-10-30 13:56:37 +0100] [Agents] [INFO] HTTP Request: HEAD http://127.0.0.1:7863/ \"HTTP/1.1 200 OK\"\n",
- "[2025-10-30 13:56:37 +0100] [Agents] [INFO] HTTP Request: HEAD http://127.0.0.1:7863/ \"HTTP/1.1 200 OK\"\n",
- "[2025-10-30 13:56:37 +0100] [Agents] [INFO] HTTP Request: HEAD http://127.0.0.1:7863/ \"HTTP/1.1 200 OK\"\n",
+ "* Running on local URL: http://127.0.0.1:7860\n",
"* To create a public link, set `share=True` in `launch()`.\n"
]
},
{
"data": {
"text/html": [
- "
"
+ ""
],
"text/plain": [
""
@@ -336,270 +336,57 @@
"name": "stdout",
"output_type": "stream",
"text": [
- "[2025-10-30 13:56:38 +0100] [Agents] [INFO] \u001b[40m\u001b[34m[Frontier Agent] Frontier Agent is ready\u001b[0m\n",
- "[2025-10-30 13:56:38 +0100] [Agents] [INFO] \u001b[40m\u001b[34m[Frontier Agent] Frontier Agent is ready\u001b[0m\n",
- "[2025-10-30 13:56:38 +0100] [Agents] [INFO] \u001b[40m\u001b[34m[Frontier Agent] Frontier Agent is ready\u001b[0m\n",
- "[2025-10-30 13:56:38 +0100] [Agents] [INFO] \u001b[40m\u001b[35m[Random Forest Agent] Random Forest Agent is initializing\u001b[0m\n",
- "[2025-10-30 13:56:38 +0100] [Agents] [INFO] \u001b[40m\u001b[35m[Random Forest Agent] Random Forest Agent is initializing\u001b[0m\n",
- "[2025-10-30 13:56:38 +0100] [Agents] [INFO] \u001b[40m\u001b[35m[Random Forest Agent] Random Forest Agent is initializing\u001b[0m\n",
- "[2025-10-30 13:56:38 +0100] [Agents] [INFO] Use pytorch device_name: cpu\n",
- "[2025-10-30 13:56:38 +0100] [Agents] [INFO] Use pytorch device_name: cpu\n",
- "[2025-10-30 13:56:38 +0100] [Agents] [INFO] Use pytorch device_name: cpu\n",
- "[2025-10-30 13:56:38 +0100] [Agents] [INFO] Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2\n",
- "[2025-10-30 13:56:38 +0100] [Agents] [INFO] Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2\n",
- "[2025-10-30 13:56:38 +0100] [Agents] [INFO] Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[44m\u001b[37m[Agent Framework] Initializing Agent Framework\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[44m\u001b[37m[Agent Framework] Initializing Agent Framework\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[44m\u001b[37m[Agent Framework] Initializing Agent Framework\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[44m\u001b[37m[Agent Framework] Initializing Agent Framework\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[32m[Planning Agent] Planning Agent is initializing\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[32m[Planning Agent] Planning Agent is initializing\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[32m[Planning Agent] Planning Agent is initializing\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[32m[Planning Agent] Planning Agent is initializing\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[36m[Scanner Agent] Scanner Agent is initializing\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[36m[Scanner Agent] Scanner Agent is initializing\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[36m[Scanner Agent] Scanner Agent is initializing\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[36m[Scanner Agent] Scanner Agent is initializing\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[36m[Scanner Agent] Scanner Agent is ready\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[36m[Scanner Agent] Scanner Agent is ready\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[36m[Scanner Agent] Scanner Agent is ready\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[36m[Scanner Agent] Scanner Agent is ready\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[33m[Ensemble Agent] Initializing Ensemble Agent\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[33m[Ensemble Agent] Initializing Ensemble Agent\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[33m[Ensemble Agent] Initializing Ensemble Agent\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[33m[Ensemble Agent] Initializing Ensemble Agent\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[31m[Specialist Agent] Specialist Agent is initializing - connecting to modal\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[31m[Specialist Agent] Specialist Agent is initializing - connecting to modal\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[31m[Specialist Agent] Specialist Agent is initializing - connecting to modal\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[31m[Specialist Agent] Specialist Agent is initializing - connecting to modal\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[31m[Specialist Agent] Specialist Agent is ready\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[31m[Specialist Agent] Specialist Agent is ready\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[31m[Specialist Agent] Specialist Agent is ready\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[31m[Specialist Agent] Specialist Agent is ready\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[34m[Frontier Agent] Initializing Frontier Agent\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[34m[Frontier Agent] Initializing Frontier Agent\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[34m[Frontier Agent] Initializing Frontier Agent\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[34m[Frontier Agent] Initializing Frontier Agent\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[34m[Frontier Agent] Frontier Agent is set up with DeepSeek\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[34m[Frontier Agent] Frontier Agent is set up with DeepSeek\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[34m[Frontier Agent] Frontier Agent is set up with DeepSeek\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] \u001b[40m\u001b[34m[Frontier Agent] Frontier Agent is set up with DeepSeek\u001b[0m\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] Use pytorch device_name: cpu\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] Use pytorch device_name: cpu\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] Use pytorch device_name: cpu\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] Use pytorch device_name: cpu\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2\n",
- "[2025-10-30 13:56:41 +0100] [Agents] [INFO] Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Traceback (most recent call last):\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\.venv\\Lib\\site-packages\\gradio\\queueing.py\", line 745, in process_events\n",
- " response = await route_utils.call_process_api(\n",
- " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\.venv\\Lib\\site-packages\\gradio\\route_utils.py\", line 354, in call_process_api\n",
- " output = await app.get_blocks().process_api(\n",
- " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\.venv\\Lib\\site-packages\\gradio\\blocks.py\", line 2116, in process_api\n",
- " result = await self.call_function(\n",
- " ^^^^^^^^^^^^^^^^^^^^^^^^^\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\.venv\\Lib\\site-packages\\gradio\\blocks.py\", line 1623, in call_function\n",
- " prediction = await anyio.to_thread.run_sync( # type: ignore\n",
- " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\.venv\\Lib\\site-packages\\anyio\\to_thread.py\", line 56, in run_sync\n",
- " return await get_async_backend().run_sync_in_worker_thread(\n",
- " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\.venv\\Lib\\site-packages\\anyio\\_backends\\_asyncio.py\", line 2485, in run_sync_in_worker_thread\n",
- " return await future\n",
- " ^^^^^^^^^^^^\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\.venv\\Lib\\site-packages\\anyio\\_backends\\_asyncio.py\", line 976, in run\n",
- " result = context.run(func, *args)\n",
- " ^^^^^^^^^^^^^^^^^^^^^^^^\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\.venv\\Lib\\site-packages\\gradio\\utils.py\", line 915, in wrapper\n",
- " response = f(*args, **kwargs)\n",
- " ^^^^^^^^^^^^^^^^^^\n",
- " File \"C:\\Users\\hp\\AppData\\Local\\Temp\\ipykernel_16260\\1866679463.py\", line 82, in load_initial\n",
- " framework = self.get_agent_framework()\n",
- " ^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
- " File \"C:\\Users\\hp\\AppData\\Local\\Temp\\ipykernel_16260\\1866679463.py\", line 12, in get_agent_framework\n",
- " self.agent_framework.init_agents_as_needed()\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\week8\\community_contributions\\solisoma\\../..\\deal_agent_framework.py\", line 53, in init_agents_as_needed\n",
- " self.planner = PlanningAgent(self.collection)\n",
- " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\week8\\community_contributions\\solisoma\\../..\\agents\\planning_agent.py\", line 21, in __init__\n",
- " self.ensemble = EnsembleAgent(collection)\n",
- " ^^^^^^^^^^^^^^^^^^^^^^^^^\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\week8\\community_contributions\\solisoma\\../..\\agents\\ensemble_agent.py\", line 22, in __init__\n",
- " self.frontier = FrontierAgent(collection)\n",
- " ^^^^^^^^^^^^^^^^^^^^^^^^^\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\week8\\community_contributions\\solisoma\\../..\\agents\\frontier_agent.py\", line 40, in __init__\n",
- " self.model = SentenceTransformer('sentence-transformers/all-MiniLM-L6-v2')\n",
- " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\.venv\\Lib\\site-packages\\sentence_transformers\\SentenceTransformer.py\", line 367, in __init__\n",
- " self.to(device)\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\.venv\\Lib\\site-packages\\torch\\nn\\modules\\module.py\", line 1369, in to\n",
- " return self._apply(convert)\n",
- " ^^^^^^^^^^^^^^^^^^^^\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\.venv\\Lib\\site-packages\\torch\\nn\\modules\\module.py\", line 928, in _apply\n",
- " module._apply(fn)\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\.venv\\Lib\\site-packages\\torch\\nn\\modules\\module.py\", line 928, in _apply\n",
- " module._apply(fn)\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\.venv\\Lib\\site-packages\\torch\\nn\\modules\\module.py\", line 928, in _apply\n",
- " module._apply(fn)\n",
- " [Previous line repeated 1 more time]\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\.venv\\Lib\\site-packages\\torch\\nn\\modules\\module.py\", line 955, in _apply\n",
- " param_applied = fn(param)\n",
- " ^^^^^^^^^\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\.venv\\Lib\\site-packages\\torch\\nn\\modules\\module.py\", line 1362, in convert\n",
- " raise NotImplementedError(\n",
- "NotImplementedError: Cannot copy out of meta tensor; no data! Please use torch.nn.Module.to_empty() instead of torch.nn.Module.to() when moving module from meta to a different device.\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[2025-10-30 13:56:49 +0100] [Agents] [INFO] \u001b[40m\u001b[35m[Random Forest Agent] Random Forest Agent is ready\u001b[0m\n",
- "[2025-10-30 13:56:49 +0100] [Agents] [INFO] \u001b[40m\u001b[35m[Random Forest Agent] Random Forest Agent is ready\u001b[0m\n",
- "[2025-10-30 13:56:49 +0100] [Agents] [INFO] \u001b[40m\u001b[35m[Random Forest Agent] Random Forest Agent is ready\u001b[0m\n",
- "[2025-10-30 13:56:49 +0100] [Agents] [INFO] \u001b[40m\u001b[35m[Random Forest Agent] Random Forest Agent is ready\u001b[0m\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Exception in thread Thread-18 (worker):\n",
- "Traceback (most recent call last):\n",
- " File \"C:\\Users\\hp\\AppData\\Roaming\\uv\\python\\cpython-3.12.12-windows-x86_64-none\\Lib\\threading.py\", line 1075, in _bootstrap_inner\n",
- " self.run()\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\.venv\\Lib\\site-packages\\ipykernel\\ipkernel.py\", line 772, in run_closure\n",
- " _threading_Thread_run(self)\n",
- " File \"C:\\Users\\hp\\AppData\\Roaming\\uv\\python\\cpython-3.12.12-windows-x86_64-none\\Lib\\threading.py\", line 1012, in run\n",
- " self._target(*self._args, **self._kwargs)\n",
- " File \"C:\\Users\\hp\\AppData\\Local\\Temp\\ipykernel_16260\\1866679463.py\", line 60, in worker\n",
- " File \"C:\\Users\\hp\\AppData\\Local\\Temp\\ipykernel_16260\\1866679463.py\", line 50, in do_run\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\week8\\community_contributions\\solisoma\\../..\\deal_agent_framework.py\", line 74, in run\n",
- " self.init_agents_as_needed()\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\week8\\community_contributions\\solisoma\\../..\\deal_agent_framework.py\", line 53, in init_agents_as_needed\n",
- " self.planner = PlanningAgent(self.collection)\n",
- " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\week8\\community_contributions\\solisoma\\../..\\agents\\planning_agent.py\", line 21, in __init__\n",
- " self.ensemble = EnsembleAgent(collection)\n",
- " ^^^^^^^^^^^^^^^^^^^^^^^^^\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\week8\\community_contributions\\solisoma\\../..\\agents\\ensemble_agent.py\", line 24, in __init__\n",
- " self.model = joblib.load('ensemble_model.pkl')\n",
- " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\.venv\\Lib\\site-packages\\joblib\\numpy_pickle.py\", line 735, in load\n",
- " with open(filename, \"rb\") as f:\n",
- " ^^^^^^^^^^^^^^^^^^^^\n",
- "FileNotFoundError: [Errno 2] No such file or directory: 'ensemble_model.pkl'\n"
- ]
- },
- {
- "name": "stdout",
- "output_type": "stream",
- "text": [
- "[2025-10-30 18:27:24 +0100] [Agents] [INFO] \u001b[44m\u001b[37m[Agent Framework] Initializing Agent Framework\u001b[0m\n",
- "[2025-10-30 18:27:24 +0100] [Agents] [INFO] \u001b[44m\u001b[37m[Agent Framework] Initializing Agent Framework\u001b[0m\n",
- "[2025-10-30 18:27:24 +0100] [Agents] [INFO] \u001b[44m\u001b[37m[Agent Framework] Initializing Agent Framework\u001b[0m\n",
- "[2025-10-30 18:27:24 +0100] [Agents] [INFO] \u001b[44m\u001b[37m[Agent Framework] Initializing Agent Framework\u001b[0m\n",
- "[2025-10-30 18:27:24 +0100] [Agents] [INFO] \u001b[40m\u001b[32m[Planning Agent] Planning Agent is initializing\u001b[0m\n",
- "[2025-10-30 18:27:24 +0100] [Agents] [INFO] \u001b[40m\u001b[32m[Planning Agent] Planning Agent is initializing\u001b[0m\n",
- "[2025-10-30 18:27:24 +0100] [Agents] [INFO] \u001b[40m\u001b[32m[Planning Agent] Planning Agent is initializing\u001b[0m\n",
- "[2025-10-30 18:27:24 +0100] [Agents] [INFO] \u001b[40m\u001b[32m[Planning Agent] Planning Agent is initializing\u001b[0m\n",
- "[2025-10-30 18:27:24 +0100] [Agents] [INFO] \u001b[40m\u001b[36m[Scanner Agent] Scanner Agent is initializing\u001b[0m\n",
- "[2025-10-30 18:27:24 +0100] [Agents] [INFO] \u001b[40m\u001b[36m[Scanner Agent] Scanner Agent is initializing\u001b[0m\n",
- "[2025-10-30 18:27:24 +0100] [Agents] [INFO] \u001b[40m\u001b[36m[Scanner Agent] Scanner Agent is initializing\u001b[0m\n",
- "[2025-10-30 18:27:24 +0100] [Agents] [INFO] \u001b[40m\u001b[36m[Scanner Agent] Scanner Agent is initializing\u001b[0m\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] \u001b[40m\u001b[36m[Scanner Agent] Scanner Agent is ready\u001b[0m\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] \u001b[40m\u001b[36m[Scanner Agent] Scanner Agent is ready\u001b[0m\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] \u001b[40m\u001b[36m[Scanner Agent] Scanner Agent is ready\u001b[0m\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] \u001b[40m\u001b[36m[Scanner Agent] Scanner Agent is ready\u001b[0m\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] \u001b[40m\u001b[33m[Ensemble Agent] Initializing Ensemble Agent\u001b[0m\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] \u001b[40m\u001b[33m[Ensemble Agent] Initializing Ensemble Agent\u001b[0m\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] \u001b[40m\u001b[33m[Ensemble Agent] Initializing Ensemble Agent\u001b[0m\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] \u001b[40m\u001b[33m[Ensemble Agent] Initializing Ensemble Agent\u001b[0m\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] \u001b[40m\u001b[31m[Specialist Agent] Specialist Agent is initializing - connecting to modal\u001b[0m\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] \u001b[40m\u001b[31m[Specialist Agent] Specialist Agent is initializing - connecting to modal\u001b[0m\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] \u001b[40m\u001b[31m[Specialist Agent] Specialist Agent is initializing - connecting to modal\u001b[0m\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] \u001b[40m\u001b[31m[Specialist Agent] Specialist Agent is initializing - connecting to modal\u001b[0m\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] \u001b[40m\u001b[31m[Specialist Agent] Specialist Agent is ready\u001b[0m\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] \u001b[40m\u001b[31m[Specialist Agent] Specialist Agent is ready\u001b[0m\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] \u001b[40m\u001b[31m[Specialist Agent] Specialist Agent is ready\u001b[0m\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] \u001b[40m\u001b[31m[Specialist Agent] Specialist Agent is ready\u001b[0m\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] \u001b[40m\u001b[34m[Frontier Agent] Initializing Frontier Agent\u001b[0m\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] \u001b[40m\u001b[34m[Frontier Agent] Initializing Frontier Agent\u001b[0m\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] \u001b[40m\u001b[34m[Frontier Agent] Initializing Frontier Agent\u001b[0m\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] \u001b[40m\u001b[34m[Frontier Agent] Initializing Frontier Agent\u001b[0m\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] \u001b[40m\u001b[34m[Frontier Agent] Frontier Agent is set up with DeepSeek\u001b[0m\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] \u001b[40m\u001b[34m[Frontier Agent] Frontier Agent is set up with DeepSeek\u001b[0m\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] \u001b[40m\u001b[34m[Frontier Agent] Frontier Agent is set up with DeepSeek\u001b[0m\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] \u001b[40m\u001b[34m[Frontier Agent] Frontier Agent is set up with DeepSeek\u001b[0m\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] Use pytorch device_name: cpu\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] Use pytorch device_name: cpu\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] Use pytorch device_name: cpu\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] Use pytorch device_name: cpu\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2\n",
- "[2025-10-30 18:27:25 +0100] [Agents] [INFO] Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2\n",
- "[2025-10-30 18:27:31 +0100] [Agents] [INFO] \u001b[40m\u001b[34m[Frontier Agent] Frontier Agent is ready\u001b[0m\n",
- "[2025-10-30 18:27:31 +0100] [Agents] [INFO] \u001b[40m\u001b[34m[Frontier Agent] Frontier Agent is ready\u001b[0m\n",
- "[2025-10-30 18:27:31 +0100] [Agents] [INFO] \u001b[40m\u001b[34m[Frontier Agent] Frontier Agent is ready\u001b[0m\n",
- "[2025-10-30 18:27:31 +0100] [Agents] [INFO] \u001b[40m\u001b[34m[Frontier Agent] Frontier Agent is ready\u001b[0m\n",
- "[2025-10-30 18:27:31 +0100] [Agents] [INFO] \u001b[40m\u001b[35m[Random Forest Agent] Random Forest Agent is initializing\u001b[0m\n",
- "[2025-10-30 18:27:31 +0100] [Agents] [INFO] \u001b[40m\u001b[35m[Random Forest Agent] Random Forest Agent is initializing\u001b[0m\n",
- "[2025-10-30 18:27:31 +0100] [Agents] [INFO] \u001b[40m\u001b[35m[Random Forest Agent] Random Forest Agent is initializing\u001b[0m\n",
- "[2025-10-30 18:27:31 +0100] [Agents] [INFO] \u001b[40m\u001b[35m[Random Forest Agent] Random Forest Agent is initializing\u001b[0m\n",
- "[2025-10-30 18:27:31 +0100] [Agents] [INFO] Use pytorch device_name: cpu\n",
- "[2025-10-30 18:27:31 +0100] [Agents] [INFO] Use pytorch device_name: cpu\n",
- "[2025-10-30 18:27:31 +0100] [Agents] [INFO] Use pytorch device_name: cpu\n",
- "[2025-10-30 18:27:31 +0100] [Agents] [INFO] Use pytorch device_name: cpu\n",
- "[2025-10-30 18:27:31 +0100] [Agents] [INFO] Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2\n",
- "[2025-10-30 18:27:31 +0100] [Agents] [INFO] Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2\n",
- "[2025-10-30 18:27:31 +0100] [Agents] [INFO] Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2\n",
- "[2025-10-30 18:27:31 +0100] [Agents] [INFO] Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2\n",
- "[2025-10-30 18:27:37 +0100] [Agents] [INFO] \u001b[40m\u001b[35m[Random Forest Agent] Random Forest Agent is ready\u001b[0m\n",
- "[2025-10-30 18:27:37 +0100] [Agents] [INFO] \u001b[40m\u001b[35m[Random Forest Agent] Random Forest Agent is ready\u001b[0m\n",
- "[2025-10-30 18:27:37 +0100] [Agents] [INFO] \u001b[40m\u001b[35m[Random Forest Agent] Random Forest Agent is ready\u001b[0m\n",
- "[2025-10-30 18:27:37 +0100] [Agents] [INFO] \u001b[40m\u001b[35m[Random Forest Agent] Random Forest Agent is ready\u001b[0m\n"
- ]
- },
- {
- "name": "stderr",
- "output_type": "stream",
- "text": [
- "Exception in thread Thread-23 (worker):\n",
- "Traceback (most recent call last):\n",
- " File \"C:\\Users\\hp\\AppData\\Roaming\\uv\\python\\cpython-3.12.12-windows-x86_64-none\\Lib\\threading.py\", line 1075, in _bootstrap_inner\n",
- " self.run()\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\.venv\\Lib\\site-packages\\ipykernel\\ipkernel.py\", line 772, in run_closure\n",
- " _threading_Thread_run(self)\n",
- " File \"C:\\Users\\hp\\AppData\\Roaming\\uv\\python\\cpython-3.12.12-windows-x86_64-none\\Lib\\threading.py\", line 1012, in run\n",
- " self._target(*self._args, **self._kwargs)\n",
- " File \"C:\\Users\\hp\\AppData\\Local\\Temp\\ipykernel_16260\\1866679463.py\", line 60, in worker\n",
- " File \"C:\\Users\\hp\\AppData\\Local\\Temp\\ipykernel_16260\\1866679463.py\", line 50, in do_run\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\week8\\community_contributions\\solisoma\\../..\\deal_agent_framework.py\", line 74, in run\n",
- " self.init_agents_as_needed()\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\week8\\community_contributions\\solisoma\\../..\\deal_agent_framework.py\", line 53, in init_agents_as_needed\n",
- " self.planner = PlanningAgent(self.collection)\n",
- " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\week8\\community_contributions\\solisoma\\../..\\agents\\planning_agent.py\", line 21, in __init__\n",
- " self.ensemble = EnsembleAgent(collection)\n",
- " ^^^^^^^^^^^^^^^^^^^^^^^^^\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\week8\\community_contributions\\solisoma\\../..\\agents\\ensemble_agent.py\", line 24, in __init__\n",
- " self.model = joblib.load('ensemble_model.pkl')\n",
- " ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n",
- " File \"c:\\Users\\hp\\projects\\gen-ai\\llm_engineering\\.venv\\Lib\\site-packages\\joblib\\numpy_pickle.py\", line 735, in load\n",
- " with open(filename, \"rb\") as f:\n",
- " ^^^^^^^^^^^^^^^^^^^^\n",
- "FileNotFoundError: [Errno 2] No such file or directory: 'ensemble_model.pkl'\n"
+ "[2025-10-30 20:52:39 +0100] [Agents] [INFO] \u001b[44m\u001b[37m[Agent Framework] Initializing Agent Framework\u001b[0m\n",
+ "[2025-10-30 20:52:39 +0100] [Agents] [INFO] \u001b[40m\u001b[32m[Planning Agent] Planning Agent is initializing\u001b[0m\n",
+ "[2025-10-30 20:52:39 +0100] [Agents] [INFO] \u001b[40m\u001b[36m[Scanner Agent] Scanner Agent is initializing\u001b[0m\n",
+ "[2025-10-30 20:52:39 +0100] [Agents] [INFO] \u001b[40m\u001b[36m[Scanner Agent] Scanner Agent is ready\u001b[0m\n",
+ "[2025-10-30 20:52:39 +0100] [Agents] [INFO] \u001b[40m\u001b[33m[Ensemble Agent] Initializing Ensemble Agent\u001b[0m\n",
+ "[2025-10-30 20:52:39 +0100] [Agents] [INFO] \u001b[40m\u001b[31m[Specialist Agent] Specialist Agent is initializing - connecting to modal\u001b[0m\n",
+ "[2025-10-30 20:52:39 +0100] [Agents] [INFO] \u001b[40m\u001b[31m[Specialist Agent] Specialist Agent is ready\u001b[0m\n",
+ "[2025-10-30 20:52:39 +0100] [Agents] [INFO] \u001b[40m\u001b[34m[Frontier Agent] Initializing Frontier Agent\u001b[0m\n",
+ "[2025-10-30 20:52:39 +0100] [Agents] [INFO] \u001b[40m\u001b[34m[Frontier Agent] Frontier Agent is set up with DeepSeek\u001b[0m\n",
+ "[2025-10-30 20:52:39 +0100] [Agents] [INFO] Use pytorch device_name: cpu\n",
+ "[2025-10-30 20:52:39 +0100] [Agents] [INFO] Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2\n",
+ "[2025-10-30 20:52:46 +0100] [Agents] [INFO] \u001b[40m\u001b[34m[Frontier Agent] Frontier Agent is ready\u001b[0m\n",
+ "[2025-10-30 20:52:46 +0100] [Agents] [INFO] \u001b[40m\u001b[35m[Random Forest Agent] Random Forest Agent is initializing\u001b[0m\n",
+ "[2025-10-30 20:52:46 +0100] [Agents] [INFO] Use pytorch device_name: cpu\n",
+ "[2025-10-30 20:52:46 +0100] [Agents] [INFO] Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2\n",
+ "\n",
+ "============================================================\n",
+ "[20:52:49] Timer triggered - Scanning for deals...\n",
+ "Current memory has 2 deals\n",
+ "============================================================\n",
+ "\n",
+ "[2025-10-30 20:52:49 +0100] [Agents] [INFO] \u001b[44m\u001b[37m[Agent Framework] Initializing Agent Framework\u001b[0m\n",
+ "[2025-10-30 20:52:49 +0100] [Agents] [INFO] \u001b[40m\u001b[32m[Planning Agent] Planning Agent is initializing\u001b[0m\n",
+ "[2025-10-30 20:52:49 +0100] [Agents] [INFO] \u001b[40m\u001b[36m[Scanner Agent] Scanner Agent is initializing\u001b[0m\n",
+ "[2025-10-30 20:52:49 +0100] [Agents] [INFO] \u001b[40m\u001b[36m[Scanner Agent] Scanner Agent is ready\u001b[0m\n",
+ "[2025-10-30 20:52:49 +0100] [Agents] [INFO] \u001b[40m\u001b[33m[Ensemble Agent] Initializing Ensemble Agent\u001b[0m\n",
+ "[2025-10-30 20:52:49 +0100] [Agents] [INFO] \u001b[40m\u001b[31m[Specialist Agent] Specialist Agent is initializing - connecting to modal\u001b[0m\n",
+ "[2025-10-30 20:52:49 +0100] [Agents] [INFO] \u001b[40m\u001b[31m[Specialist Agent] Specialist Agent is ready\u001b[0m\n",
+ "[2025-10-30 20:52:49 +0100] [Agents] [INFO] \u001b[40m\u001b[34m[Frontier Agent] Initializing Frontier Agent\u001b[0m\n",
+ "[2025-10-30 20:52:49 +0100] [Agents] [INFO] \u001b[40m\u001b[34m[Frontier Agent] Frontier Agent is set up with DeepSeek\u001b[0m\n",
+ "[2025-10-30 20:52:49 +0100] [Agents] [INFO] Use pytorch device_name: cpu\n",
+ "[2025-10-30 20:52:49 +0100] [Agents] [INFO] Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2\n",
+ "[2025-10-30 20:52:55 +0100] [Agents] [INFO] \u001b[40m\u001b[35m[Random Forest Agent] Random Forest Agent is ready\u001b[0m\n",
+ "[2025-10-30 20:52:55 +0100] [Agents] [INFO] \u001b[40m\u001b[33m[Ensemble Agent] Ensemble Agent is ready\u001b[0m\n",
+ "[2025-10-30 20:52:55 +0100] [Agents] [INFO] \u001b[40m\u001b[37m[Messaging Agent] Messaging Agent is initializing\u001b[0m\n",
+ "[2025-10-30 20:52:55 +0100] [Agents] [INFO] \u001b[40m\u001b[37m[Messaging Agent] Messaging Agent has initialized Pushover\u001b[0m\n",
+ "[2025-10-30 20:52:55 +0100] [Agents] [INFO] \u001b[40m\u001b[32m[Planning Agent] Planning Agent is ready\u001b[0m\n",
+ "[2025-10-30 20:52:55 +0100] [Agents] [INFO] \u001b[44m\u001b[37m[Agent Framework] Agent Framework is ready\u001b[0m\n",
+ "[2025-10-30 20:52:56 +0100] [Agents] [INFO] \u001b[40m\u001b[34m[Frontier Agent] Frontier Agent is ready\u001b[0m\n",
+ "[2025-10-30 20:52:56 +0100] [Agents] [INFO] \u001b[40m\u001b[35m[Random Forest Agent] Random Forest Agent is initializing\u001b[0m\n",
+ "[2025-10-30 20:52:56 +0100] [Agents] [INFO] Use pytorch device_name: cpu\n",
+ "[2025-10-30 20:52:56 +0100] [Agents] [INFO] Load pretrained SentenceTransformer: sentence-transformers/all-MiniLM-L6-v2\n",
+ "[2025-10-30 20:53:03 +0100] [Agents] [INFO] \u001b[40m\u001b[35m[Random Forest Agent] Random Forest Agent is ready\u001b[0m\n",
+ "[2025-10-30 20:53:03 +0100] [Agents] [INFO] \u001b[40m\u001b[33m[Ensemble Agent] Ensemble Agent is ready\u001b[0m\n",
+ "[2025-10-30 20:53:03 +0100] [Agents] [INFO] \u001b[40m\u001b[37m[Messaging Agent] Messaging Agent is initializing\u001b[0m\n",
+ "[2025-10-30 20:53:03 +0100] [Agents] [INFO] \u001b[40m\u001b[37m[Messaging Agent] Messaging Agent has initialized Pushover\u001b[0m\n",
+ "[2025-10-30 20:53:03 +0100] [Agents] [INFO] \u001b[40m\u001b[32m[Planning Agent] Planning Agent is ready\u001b[0m\n",
+ "[2025-10-30 20:53:03 +0100] [Agents] [INFO] \u001b[44m\u001b[37m[Agent Framework] Agent Framework is ready\u001b[0m\n",
+ "[2025-10-30 20:53:03 +0100] [Agents] [INFO] Kicking off Planning Agent\n",
+ "[2025-10-30 20:53:03 +0100] [Agents] [INFO] \u001b[40m\u001b[32m[Planning Agent] Planning Agent is kicking off a run\u001b[0m\n",
+ "[2025-10-30 20:53:03 +0100] [Agents] [INFO] \u001b[40m\u001b[36m[Scanner Agent] Scanner Agent is about to fetch deals from RSS feed\u001b[0m\n"
]
}
],