Spaces:
Runtime error
Runtime error
| import os | |
| import uuid | |
| import plotly.graph_objects as go | |
| from langchain.tools import Tool | |
| os.makedirs('image', exist_ok=True) | |
| def plot_bar(inputs) -> str: | |
| inputs = eval(inputs) | |
| image_filename = os.path.join('image', f"{str(uuid.uuid4())[:8]}.png") | |
| fig = go.Figure(data=[go.Bar(x=list(range(len(inputs))), y=inputs)]) | |
| fig.write_image(image_filename) | |
| print(f"\nProcessed PlotBarChart, Input arr: {inputs}, Output Text: {image_filename}") | |
| return image_filename | |
| def plot_line(inputs) -> str: | |
| inputs = eval(inputs) | |
| image_filename = os.path.join('image', f"{str(uuid.uuid4())[:8]}.png") | |
| fig = go.Figure(data=[go.Line(x=list(range(len(inputs))), y=inputs)]) | |
| fig.write_image(image_filename) | |
| print(f"\nProcessed PlotBarChart, Input arr: {inputs}, Output Text: {image_filename}") | |
| return image_filename | |
| def plot_pie(inputs: tuple) -> str: | |
| inputs = eval(inputs) | |
| labels = inputs[0] | |
| values = inputs[1] | |
| # 创建饼图对象 | |
| fig = go.Figure(data=go.Pie(labels=labels, values=values)) | |
| # 设置图表布局 | |
| fig.update_layout(title='Pie Chart') | |
| image_filename = os.path.join('image', f"{str(uuid.uuid4())[:8]}.png") | |
| fig.write_image(image_filename) | |
| print(f"\nProcessed PlotPieChart, Input labels :{labels}, Input arr: {values}, Output Text: {image_filename}") | |
| return image_filename | |
| def plot_scatter(inputs: tuple) -> str: | |
| inputs = eval(inputs) | |
| # 创建散点图数据 | |
| x = inputs[0] | |
| y = inputs[1] | |
| # 创建散点图对象 | |
| fig = go.Figure(data=go.Scatter( | |
| x=x, y=y, mode='markers', marker=dict(size=10, color='blue') | |
| )) | |
| # 设置图表布局 | |
| fig.update_layout(title='Scatter Plot', xaxis_title='X-axis', yaxis_title='Y-axis') | |
| image_filename = os.path.join('image', f"{str(uuid.uuid4())[:8]}.png") | |
| fig.write_image(image_filename) | |
| print(f"\nProcessed PlotScatterChart, Input x :{x}, Input y: {y}, Output Text: {image_filename}") | |
| return image_filename | |
| bar_tool = Tool(name="PlotBarChart", func=plot_bar, | |
| description="useful when you want to draw bar chart. receives array as input. " | |
| "The input to this tool should be a number list, representing the array. ", | |
| return_direct=True) | |
| line_tool = Tool(name="PlotLineChart", func=plot_line, | |
| description="useful when you want to draw line chart. receives array as input. " | |
| "The input to this tool should be a number list, representing the array. ", | |
| return_direct=True) | |
| pie_tool = Tool(name="PlotPieChart", func=plot_pie, | |
| description="useful when you want to draw pie chart. the input is a tuple, which schema is such as(lables,values)." | |
| "'labels', the first element of the input tuple, is a list of string, containing the names of each sector in the pie chart. " | |
| "'values', the second element of the input tuple, is a list of number, containing values corresponding to each sector ", | |
| return_direct=True) | |
| scatter_tool = Tool(name="PlotScatterChart", func=plot_scatter, | |
| description="useful when you want to draw scatter chart. the input is a tuple, which schema is such as(x,y)." | |
| "'x', the first element of the input tuple, is a list containing the abscissa values of each point in the scatterplot." | |
| "'y', the second element of the input tuple, 'is a list containing the ordinate values of each point in the scatterplot.", | |
| return_direct=True) | |