From bea006295cf5ce3311e1405f024f0564d2b825ab Mon Sep 17 00:00:00 2001 From: TransformerOptimus Date: Tue, 6 Jun 2023 00:38:33 +0530 Subject: [PATCH] removing agent prompt and adding unit tests for task queue --- gui/package-lock.json | 120 ------------------------- superagi/agent/agent_prompt.py | 15 ---- superagi/agent/agent_prompt_builder.py | 6 +- superagi/agent/task_listener.py | 11 --- tests/agent/__init__.py | 0 tests/agent/test_task_queue.py | 51 +++++++++++ 6 files changed, 54 insertions(+), 149 deletions(-) delete mode 100644 superagi/agent/agent_prompt.py delete mode 100644 superagi/agent/task_listener.py create mode 100644 tests/agent/__init__.py create mode 100644 tests/agent/test_task_queue.py diff --git a/gui/package-lock.json b/gui/package-lock.json index e3371f21c..2585212da 100644 --- a/gui/package-lock.json +++ b/gui/package-lock.json @@ -3450,126 +3450,6 @@ "funding": { "url": "https://github.com/sponsors/colinhacks" } - }, - "node_modules/@next/swc-darwin-x64": { - "version": "13.4.2", - "resolved": "https://registry.npmjs.org/@next/swc-darwin-x64/-/swc-darwin-x64-13.4.2.tgz", - "integrity": "sha512-iZuYr7ZvGLPjPmfhhMl0ISm+z8EiyLBC1bLyFwGBxkWmPXqdJ60mzuTaDSr5WezDwv0fz32HB7JHmRC6JVHSZg==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-gnu": { - "version": "13.4.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-gnu/-/swc-linux-arm64-gnu-13.4.2.tgz", - "integrity": "sha512-2xVabFtIge6BJTcJrW8YuUnYTuQjh4jEuRuS2mscyNVOj6zUZkom3CQg+egKOoS+zh2rrro66ffSKIS+ztFJTg==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-arm64-musl": { - "version": "13.4.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-arm64-musl/-/swc-linux-arm64-musl-13.4.2.tgz", - "integrity": "sha512-wKRCQ27xCUJx5d6IivfjYGq8oVngqIhlhSAJntgXLt7Uo9sRT/3EppMHqUZRfyuNBTbykEre1s5166z+pvRB5A==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-gnu": { - "version": "13.4.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-gnu/-/swc-linux-x64-gnu-13.4.2.tgz", - "integrity": "sha512-NpCa+UVhhuNeaFVUP1Bftm0uqtvLWq2JTm7+Ta48+2Uqj2mNXrDIvyn1DY/ZEfmW/1yvGBRaUAv9zkMkMRixQA==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-linux-x64-musl": { - "version": "13.4.2", - "resolved": "https://registry.npmjs.org/@next/swc-linux-x64-musl/-/swc-linux-x64-musl-13.4.2.tgz", - "integrity": "sha512-ZWVC72x0lW4aj44e3khvBrj2oSYj1bD0jESmyah3zG/3DplEy/FOtYkMzbMjHTdDSheso7zH8GIlW6CDQnKhmQ==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "linux" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-arm64-msvc": { - "version": "13.4.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-arm64-msvc/-/swc-win32-arm64-msvc-13.4.2.tgz", - "integrity": "sha512-pLT+OWYpzJig5K4VKhLttlIfBcVZfr2+Xbjra0Tjs83NQSkFS+y7xx+YhCwvpEmXYLIvaggj2ONPyjbiigOvHQ==", - "cpu": [ - "arm64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-ia32-msvc": { - "version": "13.4.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-ia32-msvc/-/swc-win32-ia32-msvc-13.4.2.tgz", - "integrity": "sha512-dhpiksQCyGca4WY0fJyzK3FxMDFoqMb0Cn+uDB+9GYjpU2K5//UGPQlCwiK4JHxuhg8oLMag5Nf3/IPSJNG8jw==", - "cpu": [ - "ia32" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } - }, - "node_modules/@next/swc-win32-x64-msvc": { - "version": "13.4.2", - "resolved": "https://registry.npmjs.org/@next/swc-win32-x64-msvc/-/swc-win32-x64-msvc-13.4.2.tgz", - "integrity": "sha512-O7bort1Vld00cu8g0jHZq3cbSTUNMohOEvYqsqE10+yfohhdPHzvzO+ziJRz4Dyyr/fYKREwS7gR4JC0soSOMw==", - "cpu": [ - "x64" - ], - "optional": true, - "os": [ - "win32" - ], - "engines": { - "node": ">= 10" - } } } } diff --git a/superagi/agent/agent_prompt.py b/superagi/agent/agent_prompt.py deleted file mode 100644 index 3dc5fb4fd..000000000 --- a/superagi/agent/agent_prompt.py +++ /dev/null @@ -1,15 +0,0 @@ -from typing import List - -from pydantic import BaseModel - - -class AgentPrompt(BaseModel): - ai_name: str = "" - ai_role: str = "" - base_prompt: str = "" - goals: List[str] = [] - constraints: List[str] = [] - tools: List[str] = [] - resources: List[str] = [] - evaluations: List[str] = [] - response_format: str = "" diff --git a/superagi/agent/agent_prompt_builder.py b/superagi/agent/agent_prompt_builder.py index db72f2124..262636ad3 100644 --- a/superagi/agent/agent_prompt_builder.py +++ b/superagi/agent/agent_prompt_builder.py @@ -1,10 +1,10 @@ import json +import re + from pydantic.types import List -from superagi.agent.agent_prompt import AgentPrompt + from superagi.helper.token_counter import TokenCounter from superagi.tools.base_tool import BaseTool -from fastapi_sqlalchemy import db -import re FINISH_NAME = "finish" diff --git a/superagi/agent/task_listener.py b/superagi/agent/task_listener.py deleted file mode 100644 index 3a588129a..000000000 --- a/superagi/agent/task_listener.py +++ /dev/null @@ -1,11 +0,0 @@ -# add task listener using redis/ should have flexibility of other queues - -class TaskListener: - def __int__(self, broker): - self.broker = broker - - def start_listener(self, topic, on_message_received): - self.broker.start_listener(topic, on_message_received) - - def push_message(self, topic, message): - self.broker.push_message(topic, message) diff --git a/tests/agent/__init__.py b/tests/agent/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/agent/test_task_queue.py b/tests/agent/test_task_queue.py new file mode 100644 index 000000000..9627231be --- /dev/null +++ b/tests/agent/test_task_queue.py @@ -0,0 +1,51 @@ +import unittest +from unittest.mock import patch + +from superagi.agent.task_queue import TaskQueue + + +class TaskQueueTests(unittest.TestCase): + def setUp(self): + self.queue_name = "test_queue" + self.queue = TaskQueue(self.queue_name) + + @patch.object(TaskQueue, 'add_task') + def test_add_task(self, mock_add_task): + task = "Do something" + self.queue.add_task(task) + mock_add_task.assert_called_with(task) + + @patch.object(TaskQueue, 'complete_task') + def test_complete_task(self, mock_complete_task): + task = "Do something" + response = "Task completed" + self.queue.complete_task(response) + mock_complete_task.assert_called_with(response) + + @patch.object(TaskQueue, 'get_first_task') + def test_get_first_task(self, mock_get_first_task): + self.queue.get_first_task() + mock_get_first_task.assert_called() + + @patch.object(TaskQueue, 'get_tasks') + def test_get_tasks(self, mock_get_tasks): + self.queue.get_tasks() + mock_get_tasks.assert_called() + + @patch.object(TaskQueue, 'get_completed_tasks') + def test_get_completed_tasks(self, mock_get_completed_tasks): + self.queue.get_completed_tasks() + mock_get_completed_tasks.assert_called() + + @patch.object(TaskQueue, 'clear_tasks') + def test_clear_tasks(self, mock_clear_tasks): + self.queue.clear_tasks() + mock_clear_tasks.assert_called() + + @patch.object(TaskQueue, 'get_last_task_details') + def test_get_last_task_details(self, mock_get_last_task_details): + self.queue.get_last_task_details() + mock_get_last_task_details.assert_called() + +if __name__ == '__main__': + unittest.main() \ No newline at end of file