Spaces:
Running
Running
import gradio as gr | |
import pandas as pd | |
from openai import OpenAI | |
import os | |
PASSWORD = os.environ['PASSWORD'] | |
OPEN_AI_KEY = os.environ['OPEN_AI_KEY'] | |
def process_file(file_path, question): | |
client = OpenAI(api_key=OPEN_AI_KEY) | |
df = pd.read_csv(file_path) if file_path.endswith('.csv') else pd.read_excel(file_path) | |
df_string = df.to_string() | |
# 初始化對話 | |
sys_content = f"你是一個專業的資料分析師,請解讀這份資料" | |
prompt = df_string + "\nQ: " + question | |
messages = [ | |
{"role": "system", "content": sys_content}, | |
{"role": "user", "content": prompt} | |
] | |
print("=====messages=====") | |
print(messages) | |
print("=====messages=====") | |
request_payload = { | |
"model": "gpt-4-1106-preview", | |
"messages": messages, | |
"max_tokens": 2046, | |
} | |
response = client.chat.completions.create(**request_payload) | |
print(response) | |
response_text = response.choices[0].message.content.strip() | |
return response_text | |
iface = gr.Interface( | |
fn=process_file, | |
inputs=[gr.inputs.File(type='file'), gr.inputs.Textbox(label="Your Question")], | |
outputs="text" | |
) | |
iface.launch() | |