| 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() |
|
|
|
|