File size: 2,107 Bytes
b55d531
 
9ddb9de
b55d531
 
 
 
 
 
9ddb9de
 
 
b55d531
 
 
 
 
7461ece
 
 
 
b55d531
 
 
 
7461ece
 
 
 
 
 
 
 
9ddb9de
 
7461ece
 
 
 
 
 
 
 
 
b55d531
9ddb9de
 
b55d531
 
 
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
49
50
51
import gradio as gr

def mock_question_answer(question, history):
    # 假資料模擬回答
    answers = {
        "文件的核心觀點是什麼?": "這份文件的核心觀點是關於人工智慧如何提升工作效率。",
        "有哪些關鍵詞或數據?": "關鍵詞包括:人工智慧、工作效率、數據分析。",
        "文件的摘要是什麼?": "這份文件討論了如何利用人工智慧工具,提升企業的運營效率和決策速度。"
    }
    response = answers.get(question, "抱歉,我無法回答這個問題。請嘗試其他問題!")
    history.append((question, response))
    return history, response

def mock_summary():
    # 假資料模擬摘要
    return "這份文件主要討論人工智慧在工作效率提升方面的應用,並提供了實際案例來說明其價值。"

def mock_sources():
    # 假資料模擬來源列表
    return ["來源一:時間的四則問題", "來源二:新文章"]

with gr.Blocks() as demo:
    gr.Markdown("# AI Notes Assistant")

    with gr.Row():
        with gr.Column():
            gr.Markdown("### 來源選單")
            sources = gr.CheckboxGroup(
                choices=mock_sources(), label="選取所有來源", interactive=True
            )

        with gr.Column():
            gr.Markdown("### 對話區域")
            chatbot = gr.Chatbot(label="聊天記錄")
            question = gr.Textbox(label="輸入問題,例如:文件的核心觀點是什麼?")
            ask_button = gr.Button("提問")

        with gr.Column():
            gr.Markdown("### 功能卡片")
            with gr.Tab("摘要生成"):
                summary_button = gr.Button("生成摘要")
                summary = gr.Textbox(label="摘要", interactive=False)
            with gr.Tab("其他功能"):
                gr.Markdown("此處可以添加更多功能卡片")

    history = gr.State([])
    ask_button.click(mock_question_answer, inputs=[question, history], outputs=[chatbot, chatbot])
    summary_button.click(mock_summary, inputs=[], outputs=[summary])

demo.launch()