File size: 2,252 Bytes
f6bff5d
2a9478d
 
 
 
 
 
 
 
f7e4e7d
 
 
2a9478d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
f6bff5d
 
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
52
53
54
55
56
57
58
59
60
import gradio as gr
from vocab import get_sources, get_words_with_sentences

with gr.Blocks() as demo:
    gr.Markdown(
        """
        # 📖 英文單字隨機抽取 & GPT 例句生成 API

        ## 📝 專案簡介
        本專案製作一個 API 服務,能夠從不同的單字庫隨機抽取單字,並使用開源語言模型自動生成例句。  
        未來適合作為 LINE 單字推播、自學工具、英文教學輔助等用途。
        因為現在是免費模型,所以生成句子都很鳥,生成一次需要約一分鐘的時間,主要是測試用。

        ## ⚙️ 主要功能
        - 支援從多個單字庫中選擇,如:`common3000`, `business_words`。
        - 可自訂抽取單字數量。
        - 每個單字自動生成一個簡單的英文例句,適合初學者學習。

        ## 📚 使用方式
        1. 選擇單字庫(例如:`common3000`)。
        2. 設定抽取單字數量(例如:10個)。
        3. 點擊「生成例句」按鈕,即可獲得單字 + 音標 + 例句。

        ## 🗂️ 資料來源
        - **common3000**:常用3000單字表,附音標。
        - 未來可能會有更多單字庫新增至 `/data/` 資料夾。(可能啦!

        ## 🛠️ 技術架構
        - **Gradio Blocks** 前端介面 + API。
        - **Hugging Face Transformers** 語言模型:
            - 模型:`EleutherAI/pythia-410m`(小型 GPT 模型)

        ## 👨‍💻 開發者資訊
        - 開發者:余彦志 (大宇 ian)
        - 信箱:[email protected]
        - GitHub:[https://github.com/dayuian](https://github.com/dayuian)
        """
    )

    source_dropdown = gr.Dropdown(
        choices=get_sources(),
        value="common3000",
        label="選擇單字庫",
        interactive=True
    )

    num_input = gr.Number(value=10, label="抽幾個單字")
    result_output = gr.HTML(label="生成結果")
    status_output = gr.Textbox(label="狀態更新", lines=8, interactive=False)

    submit_btn = gr.Button("生成例句")

    submit_btn.click(
        fn=get_words_with_sentences,
        inputs=[source_dropdown, num_input],
        outputs=[result_output, status_output]
    )

demo.launch()