import gradio as gr import pandas as pd import tempfile import os import requests from chatgpt_api import get_chatgpt_response def process_csv(csv_file): # CSVファイルを読み込む df = pd.read_csv(csv_file.name) # ChatGPT APIに入力を送信し、出力を取得 outputs = [] for _, row in df.iterrows(): id = row['id'] input_text = row['input'] # ChatGPT APIから応答を取得 output_text = get_chatgpt_response(input_text) outputs.append({'id': id, 'output': output_text}) # 出力をCSVファイルに書き込む output_df = pd.DataFrame(outputs) with tempfile.NamedTemporaryFile(delete=False, suffix='.csv') as tmp: output_df.to_csv(tmp.name, index=False) output_path = tmp.name # ファイル名を変更 new_path = os.path.join(os.path.dirname(output_path), "output.csv") os.rename(output_path, new_path) return new_path interface = gr.Interface( fn=process_csv, inputs=[ gr.File(label="CSVファイルをアップロード", file_count="single"), gr.File( source="open", label="サンプルCSVファイル", file_count="single", file_name="sample.csv", ), ], outputs=gr.File(label="ダウンロード", file_count="singular"), allow_flagging="never", ) interface.launch(share=True)