File size: 1,765 Bytes
0e95346
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import subprocess
subprocess.check_call(["pip", "install", "gradio"])
subprocess.check_call(["pip", "install", "openai"])

import gradio as gr
import openai

def test(grade, difficulty, subject, test_type, key, topic):
  openai.api_key = key
  completion = openai.chat.completions.create(
      model="gpt-3.5-turbo",
      messages=[{"role": "system", "content": """
            你是一位有經驗的台灣小學教師,將協助我設計符合需求的考題,並要求邏輯嚴謹,適合該年級學生的理解程度。
            1. 所有考題必須依據台灣十二年國民基本教育小學課綱。
            2. 題目應涵蓋學生應具備的核心能力,不得超出該年級的教學範圍。
            3. 若為多步驟解題,應提供適合該年級邏輯能力的步驟提示。
            4. 所有詞彙和語法必須符合台灣常用表達方式。
            5. 確保生成的題目答案正確無誤,並符合題目邏輯。
            """},
            {"role": "user", "content":f"請為{grade}年級的學生,設計一份{difficulty}{subject}{test_type}考題,範圍限定為「{topic}」,並提供正確答案。"}])
  return completion.choices[0].message.content

demo = gr.Interface(
    fn=test,
    inputs=[
        gr.Dropdown(["一", "二", "三", "四", "五", "六"], label="年級"),
        gr.Dropdown(["易", "中", "難"], label="難易度"),
        gr.Dropdown(["國語", "數學", "英文", "自然", "社會"], label="科目"),
        gr.Dropdown(["選擇", "填充", "簡答"], label="題型"),
        gr.Textbox(label="生成金鑰", type="password"),
        gr.Textbox(label="章節範圍")],

    outputs=[gr.Textbox(label="考題")],
    allow_flagging='never',
)
demo.launch()