import gradio as gr import pandas as pd import json # 读取Excel文件 def read_excel(file_path): df = pd.read_excel(file_path) # 提取 Output 和 Initial Output 列的第一行数据 output_str = df["Output"].iloc[0] # 第一行 Output 列的值 initial_output_str = df["Initial Output"].iloc[0] # 第一行 Initial Output 列的值 return output_str, initial_output_str # 生成问卷调查界面 def generate_survey(output_str, initial_output_str): # 创建Gradio界面 with gr.Blocks() as demo: gr.Markdown("## 问卷调查") # 将 Output 列的数据解析为 Markdown 并显示 gr.Markdown("### Output (Markdown)") gr.Markdown(output_str) # 解析并显示 Markdown # 将 Initial Output 列的数据解析为 Markdown 并显示 gr.Markdown("### Initial Output (Markdown)") gr.Markdown(initial_output_str) # 解析并显示 Markdown # 创建一个文本输入框用于打分 score = gr.Textbox(label="请打分 (1-5)", placeholder="输入1到5之间的数字") # 创建一个提交按钮 submit_button = gr.Button("提交") # 创建一个输出文本框 output_text = gr.Textbox(label="提交结果", interactive=False) # 定义一个回调函数来处理提交 def submit(score): try: score = int(score) if 1 <= score <= 5: # 将结果保存到JSON文件 result = {"score": score} with open("survey_result.json", "w") as f: json.dump(result, f) return "提交成功!" else: return "请输入1到5之间的数字。" except ValueError: return "请输入有效的数字。" # 绑定提交按钮的回调函数 submit_button.click(submit, inputs=score, outputs=output_text) return demo # 主函数 def main(): # 读取Excel文件 file_path = "survey_data.xlsx" # 替换为你的Excel文件路径 output_str, initial_output_str = read_excel(file_path) # 生成问卷调查界面 demo = generate_survey(output_str, initial_output_str) # 启动Gradio应用 demo.launch() if __name__ == "__main__": main()