From 9622fd5d82a329bbbb51778eafc089ce44ef0d3d Mon Sep 17 00:00:00 2001 From: Kye Date: Mon, 1 Jan 2024 15:38:52 -0500 Subject: [PATCH] [BUGFIX][Conversation] [swarm.tools] --- scripts/auto_tests_docs/auto_docs.py | 85 ++++++++++++++++--- .../agents/simple_agent.py => simple_agent.py | 0 swarms/structs/__init__.py | 6 ++ swarms/telemetry/__init__.py | 16 ++++ 4 files changed, 97 insertions(+), 10 deletions(-) rename playground/agents/simple_agent.py => simple_agent.py (100%) diff --git a/scripts/auto_tests_docs/auto_docs.py b/scripts/auto_tests_docs/auto_docs.py index 8d441ff3..cc3d8feb 100644 --- a/scripts/auto_tests_docs/auto_docs.py +++ b/scripts/auto_tests_docs/auto_docs.py @@ -25,6 +25,39 @@ from swarms.structs.schemas import ( ) #################### + +from swarms.structs.agent import Agent +from swarms.structs.autoscaler import AutoScaler +from swarms.structs.base import BaseStructure +from swarms.structs.base_swarm import AbstractSwarm +from swarms.structs.base_workflow import BaseWorkflow +from swarms.structs.concurrent_workflow import ConcurrentWorkflow +from swarms.structs.conversation import Conversation +from swarms.structs.groupchat import GroupChat, GroupChatManager +from swarms.structs.model_parallizer import ModelParallelizer +from swarms.structs.multi_agent_collab import MultiAgentCollaboration +from swarms.structs.nonlinear_workflow import NonlinearWorkflow +from swarms.structs.recursive_workflow import RecursiveWorkflow +from swarms.structs.schemas import ( + Artifact, + ArtifactUpload, + StepInput, + TaskInput, +) +from swarms.structs.sequential_workflow import SequentialWorkflow +from swarms.structs.swarm_net import SwarmNetwork +from swarms.structs.utils import ( + distribute_tasks, + extract_key_from_json, + extract_tokens_from_text, + find_agent_by_id, + find_token_in_text, + parse_tasks, +) + + +from dotenv import load_dotenv + load_dotenv() api_key = os.getenv("OPENAI_API_KEY") @@ -35,19 +68,25 @@ model = OpenAIChat( ) -def process_documentation(cls): +def process_documentation( + item, + module: str = "swarms.structs", + docs_folder_path: str = "docs/swarms/structs", +): """ - Process the documentation for a given class using OpenAI model and save it in a Markdown file. + Process the documentation for a given class or function using OpenAI model and save it in a Python file. """ - doc = inspect.getdoc(cls) - source = inspect.getsource(cls) + doc = inspect.getdoc(item) + source = inspect.getsource(item) + is_class = inspect.isclass(item) + item_type = "Class Name" if is_class else "Name" input_content = ( - "Class Name:" - f" {cls.__name__}\n\nDocumentation:\n{doc}\n\nSource" + f"{item_type}:" + f" {item.__name__}\n\nDocumentation:\n{doc}\n\nSource" f" Code:\n{source}" ) - # Process with OpenAI model (assuming the model's __call__ method takes this input and returns processed content) + # Process with OpenAI model processed_content = model( DOCUMENTATION_WRITER_SOP(input_content, "swarms.structs") ) @@ -59,8 +98,8 @@ def process_documentation(cls): dir_path = "docs/swarms/structs" os.makedirs(dir_path, exist_ok=True) - # Write the processed documentation to a Markdown file - file_path = os.path.join(dir_path, f"{cls.__name__.lower()}.md") + # Write the processed documentation to a Python file + file_path = os.path.join(dir_path, f"{item.__name__.lower()}.md") with open(file_path, "w") as file: file.write(doc_content) @@ -82,9 +121,35 @@ def main(): ArtifactUpload, StepInput, TaskInput, + items = [ + Agent, + SequentialWorkflow, + AutoScaler, + Conversation, + TaskInput, + Artifact, + ArtifactUpload, + StepInput, + SwarmNetwork, + ModelParallelizer, + MultiAgentCollaboration, + AbstractSwarm, + GroupChat, + GroupChatManager, + parse_tasks, + find_agent_by_id, + distribute_tasks, + find_token_in_text, + extract_key_from_json, + extract_tokens_from_text, + ConcurrentWorkflow, + RecursiveWorkflow, + NonlinearWorkflow, + BaseWorkflow, + BaseStructure, ] threads = [] - for cls in classes: + for cls in items: thread = threading.Thread( target=process_documentation, args=(cls,) ) diff --git a/playground/agents/simple_agent.py b/simple_agent.py similarity index 100% rename from playground/agents/simple_agent.py rename to simple_agent.py diff --git a/swarms/structs/__init__.py b/swarms/structs/__init__.py index 8287a960..330d5edd 100644 --- a/swarms/structs/__init__.py +++ b/swarms/structs/__init__.py @@ -26,6 +26,7 @@ from swarms.structs.utils import ( find_agent_by_id, find_token_in_text, parse_tasks, + detect_markdown, ) __all__ = [ @@ -57,8 +58,13 @@ __all__ = [ ======= "BaseWorkflow", <<<<<<< HEAD +<<<<<<< HEAD >>>>>>> db2dbf3 ([CODE QUALITY]) ======= "BaseStructure" >>>>>>> a9b3d7d ([CLEANUP][__init__]) +======= + "BaseStructure", + "detect_markdown", +>>>>>>> 1df42a3 ([BUGFIX][Conversation] [swarm.tools]) ] diff --git a/swarms/telemetry/__init__.py b/swarms/telemetry/__init__.py index 813115e1..2e5b709a 100644 --- a/swarms/telemetry/__init__.py +++ b/swarms/telemetry/__init__.py @@ -11,7 +11,19 @@ from swarms.telemetry.sys_info import ( interpreter_info, system_info, ) +from swarms.telemetry.sys_info import ( + get_cpu_info, + get_oi_version, + get_os_version, + get_package_mismatches, + get_pip_version, + get_python_version, + get_ram_info, + interpreter_info, + system_info, +) from swarms.telemetry.user_utils import ( + generate_unique_identifier, generate_unique_identifier, generate_user_id, get_machine_id, @@ -25,7 +37,11 @@ __all__ = [ "get_machine_id", "get_system_info", "generate_unique_identifier", +<<<<<<< HEAD + "get_python_version", # from swarms/telemetry/sys_info.py +======= "get_python_version", +>>>>>>> 1df42a3 ([BUGFIX][Conversation] [swarm.tools]) "get_pip_version", "get_oi_version", "get_os_version",