youngtsai commited on
Commit
47bc389
·
1 Parent(s): 38d2c0b

5. 解題說明: 1. 步驟一, 2. 步驟二, 3. 步驟三....(最少三個步驟,最多五步驟),最後一個步驟 format 為: 答案選: (A) 或 (B) 或 (C) 或 (D) (選項用LATEX color:fuchsia, mbox)

Browse files
Files changed (1) hide show
  1. app.py +15 -13
app.py CHANGED
@@ -71,13 +71,14 @@ def process_image(image_url):
71
 
72
  def image_to_text(url):
73
  user_prompt = """
74
- 請解讀數學題目圖片,圖片請用 zh-TW 解讀
75
- [數學用語、題目內的數字、選項上的數字、 數學符號、英文單字] 請一定要用 LATEX markdown 語法(前後用 $ 包起來),LATEX 這很重要
76
- 輸出為
77
- 1. 題號:
78
- 2. 題目:
79
- 3. 選項:
80
- 4. 解題說明1. 步驟一, 2. 步驟二, 3. 步驟三....(最少三個步驟,最多五步驟)
 
81
  """
82
 
83
  response = OPEN_AI_CLIENT.chat.completions.create(
@@ -99,7 +100,7 @@ def image_to_text(url):
99
  ],
100
  }
101
  ],
102
- max_tokens=300,
103
  )
104
  return response.choices[0].message.content
105
 
@@ -110,7 +111,7 @@ def text_to_json(text):
110
  user_prompt = """
111
  將以內容轉成 json,並保留 latex 語法($...$),請一定要用 LATEX markdown 語法(前後用 $ 包起來的形式)
112
 
113
- 包含 q_id, question 跟 choice 1~4, hint 1~5
114
  {
115
  "q_id" : 1,
116
  "question": .......,
@@ -118,6 +119,7 @@ def text_to_json(text):
118
  "choice_2": .... ,
119
  "choice_3": ....,
120
  "choice_4": ....,
 
121
  "hint_1": ....,
122
  "hint_2": ....,
123
  "hint_3": ....,
@@ -134,7 +136,7 @@ def text_to_json(text):
134
  {"role": "system", "content": system_prompt},
135
  {"role": "user", "content": user_prompt}
136
  ],
137
- max_tokens=1000,
138
  )
139
 
140
  result = response_to_json.choices[0].message.content
@@ -226,7 +228,7 @@ def create_csv(processed_data):
226
  writer = csv.writer(file)
227
 
228
  # 写入标题行
229
- headers = ["圖片URL", "文字", "題號", "題目", "選項1", "選項2", "選項3", "選項4", "提示1", "提示2", "提示3", "提示4", "提示5", "Perseus JSON"]
230
  writer.writerow(headers)
231
 
232
  # 写入数据行
@@ -271,8 +273,8 @@ with gr.Blocks() as demo:
271
  result_text = gr.Textbox(label="處理結果")
272
  with gr.Row():
273
  result_table = gr.Dataframe(
274
- headers=["圖片URL", "文字", "題號", "題目", "選項1", "選項2", "選項3", "選項4", "提示1", "提示2", "提示3", "提示4", "提示5", "Perseus JSON"],
275
- column_widths=[10, 10, 5, 20, 5, 5, 5, 5, 4,4,4,4,4, 10],
276
  wrap=True
277
  )
278
 
 
71
 
72
  def image_to_text(url):
73
  user_prompt = """
74
+ 請解讀數學題目圖片,圖片請用 zh-TW 解讀
75
+ [數學用語、題目內的數字、選項上的數字、 數學符號、英文單字] 請一定要用 LATEX markdown 語法(前後用 $ 包起來),LATEX 這很重要
76
+ 輸出為
77
+ 1. 題號:
78
+ 2. 題目:
79
+ 3. 選項:
80
+ 4. 答案(到選項裡面挑選一個最合理的選項) ex: (A) (B) (C) 或 (D)
81
+ 5. 解題說明: 1. 步驟一, 2. 步驟二, 3. 步驟三....(最少三個步驟,最多五步驟),最後一個步驟 format 為: 答案選: (A) 或 (B) 或 (C) 或 (D) (選項用LATEX color:fuchsia, mbox)
82
  """
83
 
84
  response = OPEN_AI_CLIENT.chat.completions.create(
 
100
  ],
101
  }
102
  ],
103
+ max_tokens=4000,
104
  )
105
  return response.choices[0].message.content
106
 
 
111
  user_prompt = """
112
  將以內容轉成 json,並保留 latex 語法($...$),請一定要用 LATEX markdown 語法(前後用 $ 包起來的形式)
113
 
114
+ 包含 q_id, question 跟 choice 1~4, answer, hint 1~5
115
  {
116
  "q_id" : 1,
117
  "question": .......,
 
119
  "choice_2": .... ,
120
  "choice_3": ....,
121
  "choice_4": ....,
122
+ "answer": ....,
123
  "hint_1": ....,
124
  "hint_2": ....,
125
  "hint_3": ....,
 
136
  {"role": "system", "content": system_prompt},
137
  {"role": "user", "content": user_prompt}
138
  ],
139
+ max_tokens=4000,
140
  )
141
 
142
  result = response_to_json.choices[0].message.content
 
228
  writer = csv.writer(file)
229
 
230
  # 写入标题行
231
+ headers = ["圖片URL", "文字", "題號", "題目", "選項1", "選項2", "選項3", "選項4", "答案", "提示1", "提示2", "提示3", "提示4", "提示5", "Perseus JSON"]
232
  writer.writerow(headers)
233
 
234
  # 写入数据行
 
273
  result_text = gr.Textbox(label="處理結果")
274
  with gr.Row():
275
  result_table = gr.Dataframe(
276
+ headers=["圖片URL", "文字", "題號", "題目", "選項1", "選項2", "選項3", "選項4", "答案", "提示1", "提示2", "提示3", "提示4", "提示5", "Perseus JSON"],
277
+ column_widths=[10, 10, 5, 20, 4, 4, 4, 4, 4,4,4,4,4,4, 10],
278
  wrap=True
279
  )
280