File size: 1,184 Bytes
11e4790
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
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()