| | import os |
| | os.system("pip uninstall -y gradio") |
| | os.system("pip install gradio==3.50.2") |
| |
|
| |
|
| | import pandas as pd |
| | import matplotlib.pyplot as plt |
| | import gradio as gr |
| |
|
| | import gradio as gr |
| | import pandas as pd |
| | import matplotlib.pyplot as plt |
| | import tempfile |
| | import os |
| |
|
| | |
| | def analyze_csv(file, u, alpha1, alpha2): |
| | df = pd.read_csv(file.name) |
| | df_original = df.copy() |
| | df["Computed"] = df["Income"] * u + df["SpendingScore"] * alpha1 - df["Age"] * alpha2 |
| |
|
| | output_path = os.path.join(tempfile.gettempdir(), "processed.csv") |
| | df.to_csv(output_path, index=False) |
| |
|
| | image_path = os.path.join(tempfile.gettempdir(), "computed_plot.png") |
| | plt.figure(figsize=(6, 4)) |
| | plt.plot(df["Income"], df["Computed"], marker='o') |
| | plt.xlabel("Income") |
| | plt.ylabel("Computed Value") |
| | plt.title("Income vs Computed") |
| | plt.grid(True) |
| | plt.tight_layout() |
| | plt.savefig(image_path) |
| | plt.close() |
| |
|
| | return df_original, df, output_path, image_path |
| |
|
| |
|
| | |
| | example_data = [ |
| | ["sample_table_0.csv", 0.0002, 0.4, 0.8], |
| | ["sample_table_1.csv", 0.0001, 0.5, 1.0], |
| | ["sample_table_2.csv", 0.00015, 0.6, 0.7], |
| | ] |
| |
|
| |
|
| | |
| | with gr.Blocks() as demo: |
| | gr.Markdown("## 📊 表格分析大模型") |
| | gr.Markdown("上传 CSV 文件或点击示例,我将为你分析并可视化结果。") |
| |
|
| | with gr.Row(): |
| | file_input = gr.File(label="上传CSV文件", file_types=[".csv"]) |
| | u = gr.Number(label="u", value=0.0001) |
| | alpha1 = gr.Number(label="alpha1", value=0.5) |
| | alpha2 = gr.Number(label="alpha2", value=1.0) |
| |
|
| | run_btn = gr.Button("开始分析") |
| |
|
| | gr.Markdown("### ✅ 示例(点击自动加载)") |
| | gr.Examples( |
| | examples=example_data, |
| | inputs=[file_input, u, alpha1, alpha2], |
| | outputs=["original_table", "processed_table", "download", "image"], |
| | fn=analyze_csv, |
| | examples_per_page=3, |
| | label="点击示例自动分析" |
| | ) |
| |
|
| | gr.Markdown("### 📄 原始 CSV") |
| | original_table = gr.Dataframe(label="original_table") |
| |
|
| | gr.Markdown("### 📑 处理后 CSV") |
| | processed_table = gr.Dataframe(label="processed_table") |
| | download = gr.File(label="下载处理结果", elem_id="download") |
| |
|
| | gr.Markdown("### 📈 图表可视化") |
| | image = gr.Image(label="image") |
| |
|
| | run_btn.click(fn=analyze_csv, |
| | inputs=[file_input, u, alpha1, alpha2], |
| | outputs=[original_table, processed_table, download, image]) |
| |
|
| | demo.launch() |
| |
|
| |
|