Spaces:
Sleeping
Sleeping
import subprocess | |
from typing import Any, Dict, List | |
from swarms.utils.loguru_logger import initialize_logger | |
from pydantic import BaseModel | |
from swarms.structs.agent import Agent | |
logger = initialize_logger(log_folder="pandas_utils") | |
try: | |
import pandas as pd | |
except ImportError: | |
logger.error("Failed to import pandas") | |
subprocess.run(["pip", "install", "pandas"]) | |
import pandas as pd | |
def display_agents_info(agents: List[Agent]) -> None: | |
""" | |
Displays information about all agents in a list using a DataFrame. | |
:param agents: List of Agent instances. | |
""" | |
# Extracting relevant information from each agent | |
agent_data = [] | |
for agent in agents: | |
try: | |
agent_info = { | |
"ID": agent.id, | |
"Name": agent.agent_name, | |
"Description": agent.description, | |
"max_loops": agent.max_loops, | |
# "Docs": agent.docs, | |
"System Prompt": agent.system_prompt, | |
"LLM Model": agent.llm.model_name, # type: ignore | |
} | |
agent_data.append(agent_info) | |
except AttributeError as e: | |
logger.error( | |
f"Failed to extract information from agent {agent}: {e}" | |
) | |
continue | |
# Creating a DataFrame to display the data | |
try: | |
df = pd.DataFrame(agent_data) | |
except Exception as e: | |
logger.error(f"Failed to create DataFrame: {e}") | |
return | |
# Displaying the DataFrame | |
try: | |
print(df) | |
except Exception as e: | |
logger.error(f"Failed to print DataFrame: {e}") | |
def dict_to_dataframe(data: Dict[str, Any]) -> pd.DataFrame: | |
""" | |
Converts a dictionary into a pandas DataFrame. | |
:param data: Dictionary to convert. | |
:return: A pandas DataFrame representation of the dictionary. | |
""" | |
# Convert dictionary to DataFrame | |
df = pd.json_normalize(data) | |
return df | |
def pydantic_model_to_dataframe(model: BaseModel) -> pd.DataFrame: | |
""" | |
Converts a Pydantic Base Model into a pandas DataFrame. | |
:param model: Pydantic Base Model to convert. | |
:return: A pandas DataFrame representation of the Pydantic model. | |
""" | |
# Convert Pydantic model to dictionary | |
model_dict = model.dict() | |
# Convert dictionary to DataFrame | |
df = dict_to_dataframe(model_dict) | |
return df | |