Spaces:
Sleeping
Sleeping
5. 解題說明: 1. 步驟一, 2. 步驟二, 3. 步驟三....(最少三個步驟,最多五步驟),最後一個步驟 format 為: 答案選: (A) 或 (B) 或 (C) 或 (D) (選項用LATEX color:fuchsia, mbox)
Browse files
app.py
CHANGED
|
@@ -71,13 +71,14 @@ def process_image(image_url):
|
|
| 71 |
|
| 72 |
def image_to_text(url):
|
| 73 |
user_prompt = """
|
| 74 |
-
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 78 |
-
|
| 79 |
-
|
| 80 |
-
|
|
|
|
| 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=
|
| 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=
|
| 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,
|
| 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 |
|