mvp_2_hf_dev_clone / agent_tools /autovis_tool.py
srivatsavdamaraju's picture
Upload 82 files
e947927 verified
# from autoviz import AutoViz_Class
# import os
# import pandas as pd
# import uuid
# def run_autoviz(
# filename,
# sep=",",
# depVar="",
# dfte=None,
# header=0,
# verbose=2,
# lowess=False,
# chart_format="html",
# max_rows_analyzed=150000,
# max_cols_analyzed=30,
# save_plot_dir=None
# ):
# # Generate unique directory using uuid
# vis_in = str(uuid.uuid4())
# save_plot_dir = f"./{chart_format}_{vis_in}"
# os.makedirs(save_plot_dir, exist_ok=True)
# # Read the CSV file to check if the path is correct
# df = pd.read_csv(filename)
# # print(df.head())
# # Run AutoViz
# AV = AutoViz_Class()
# print("Running AutoViz...")
# dft = AV.AutoViz(
# filename,
# sep=sep,
# depVar=depVar,
# dfte=dfte,
# header=header,
# verbose=verbose,
# lowess=lowess,
# chart_format=chart_format,
# max_rows_analyzed=max_rows_analyzed,
# max_cols_analyzed=max_cols_analyzed,
# save_plot_dir=save_plot_dir
# )
# print(dft)
# print(f"Plots saved in: {save_plot_dir}")
# return dft
# # Example usage:
# run_autoviz(
# filename=r"C:\Users\Dell\Documents\MR-AI\openai_agents\healthcare-data-30.csv"
# )
from fastapi import FastAPI, Request
from pydantic import BaseModel
from autoviz import AutoViz_Class
import os
import pandas as pd
import uuid
from fastapi import APIRouter
Autoviz_router = APIRouter(prefix="/autoviz", tags=["autoviz"])
class AutoVizParams(BaseModel):
filename: str
sep: str = ","
depVar: str = ""
header: int = 0
verbose: int = 2
lowess: bool = False
chart_format: str = "html"
max_rows_analyzed: int = 150000
max_cols_analyzed: int = 30
def run_autoviz(
filename,
sep=",",
depVar="",
dfte=None,
header=0,
verbose=2,
lowess=False,
chart_format="html",
max_rows_analyzed=150000,
max_cols_analyzed=30,
save_plot_dir=None
):
vis_in = str(uuid.uuid4())
save_plot_dir = f"./{chart_format}_{vis_in}"
os.makedirs(save_plot_dir, exist_ok=True)
df = pd.read_csv(filename)
AV = AutoViz_Class()
dft = AV.AutoViz(
filename,
sep=sep,
depVar=depVar,
dfte=dfte,
header=header,
verbose=verbose,
lowess=lowess,
chart_format=chart_format,
max_rows_analyzed=max_rows_analyzed,
max_cols_analyzed=max_cols_analyzed,
save_plot_dir=save_plot_dir
)
return {"message": "AutoViz run complete", "plots_dir": save_plot_dir}
@Autoviz_router.post("/run_autoviz")
async def autoviz_api(params: AutoVizParams):
result = run_autoviz(
filename=params.filename,
sep=params.sep,
depVar=params.depVar,
dfte=None,
header=params.header,
verbose=params.verbose,
lowess=params.lowess,
chart_format=params.chart_format,
max_rows_analyzed=params.max_rows_analyzed,
max_cols_analyzed=params.max_cols_analyzed,
save_plot_dir=None
)
return result