wanda222 commited on
Commit
a4fb696
ยท
verified ยท
1 Parent(s): 8f43717

Update app.py

Browse files

change api key input

Files changed (1) hide show
  1. app.py +33 -20
app.py CHANGED
@@ -7,20 +7,9 @@ import tempfile
7
  import os
8
  import io
9
 
10
- # API ํ‚ค ๋ถˆ๋Ÿฌ์˜ค๊ธฐ
11
- UPSTAGE_API_KEY = os.getenv("UPSTAGE_API_KEY")
12
 
13
- # Upstage API ํด๋ผ์ด์–ธํŠธ ์„ค์ • (์Šคํ‚ค๋งˆ ์ƒ์„ฑ์šฉ)
14
- schema_client = OpenAI(
15
- api_key=UPSTAGE_API_KEY,
16
- base_url="https://api.upstage.ai/v1/information-extraction/schema-generation"
17
- )
18
 
19
- # Upstage API ํด๋ผ์ด์–ธํŠธ ์„ค์ • (์ •๋ณด ์ถ”์ถœ์šฉ)
20
- extraction_client = OpenAI(
21
- api_key=UPSTAGE_API_KEY,
22
- base_url="https://api.upstage.ai/v1/information-extraction"
23
- )
24
 
25
  # ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ base64 ๋ฌธ์ž์—ด๋กœ ์ธ์ฝ”๋”ฉํ•˜๋Š” ํ•จ์ˆ˜
26
  def encode_img_to_base64(img_path):
@@ -46,7 +35,21 @@ def flatten_to_rows(data):
46
  return flat
47
 
48
  # ๋ช…ํ•จ ์ด๋ฏธ์ง€๋ฅผ ๋ฐ›์•„ ์ •๋ณด ์ถ”์ถœ ๋ฐ CSV ์ €์žฅ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•ต์‹ฌ ํ•จ์ˆ˜
49
- def extract_info(image_path):
 
 
 
 
 
 
 
 
 
 
 
 
 
 
50
  base64_data = encode_img_to_base64(image_path)
51
 
52
  # ์Šคํ‚ค๋งˆ ์ƒ์„ฑ
@@ -93,10 +96,14 @@ def extract_info(image_path):
93
  return json_result, df_result
94
 
95
 
96
- # ๐Ÿ”ง Gradio ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌ์„ฑ
 
97
  with gr.Blocks() as demo:
98
  gr.Markdown("## ๐Ÿ“‡ ๋ช…ํ•จ ์ •๋ณด ์ž๋™ ์ถ”์ถœ๊ธฐ")
99
- gr.Markdown("๋ช…ํ•จ ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•˜๋ฉด ์ •๋ณด๋ฅผ JSON๊ณผ ํ…Œ์ด๋ธ” ํ˜•์‹์œผ๋กœ ์ถ”์ถœํ•ฉ๋‹ˆ๋‹ค.")
 
 
 
100
 
101
  with gr.Row():
102
  with gr.Column():
@@ -104,16 +111,22 @@ with gr.Blocks() as demo:
104
  extract_btn = gr.Button("๐Ÿ“ค ์ •๋ณด ์ถ”์ถœํ•˜๊ธฐ")
105
 
106
  with gr.Column():
107
- json_output = gr.Textbox(label="๐Ÿ“„ ์ถ”์ถœ๋œ JSON", lines=8)
108
  table_output = gr.Dataframe(label="๐Ÿ“‹ ์ถ”์ถœ๋œ ์ •๋ณด (ํ‘œ ํ˜•ํƒœ)", interactive=False)
 
 
109
 
110
- # ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ ์ •๋ณด ์ถ”์ถœ ํ•จ์ˆ˜ ์‹คํ–‰
111
  extract_btn.click(
112
- fn=extract_info,
113
- inputs=image_input,
114
- outputs=[json_output, table_output]
115
  )
116
 
 
 
 
 
 
117
 
118
 
119
  # ์•ฑ ์‹คํ–‰
 
7
  import os
8
  import io
9
 
 
 
10
 
 
 
 
 
 
11
 
12
+ UPSTAGE_API_KEY = ""
 
 
 
 
13
 
14
  # ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ base64 ๋ฌธ์ž์—ด๋กœ ์ธ์ฝ”๋”ฉํ•˜๋Š” ํ•จ์ˆ˜
15
  def encode_img_to_base64(img_path):
 
35
  return flat
36
 
37
  # ๋ช…ํ•จ ์ด๋ฏธ์ง€๋ฅผ ๋ฐ›์•„ ์ •๋ณด ์ถ”์ถœ ๋ฐ CSV ์ €์žฅ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํ•ต์‹ฌ ํ•จ์ˆ˜
38
+ def extract_info(image_path, UPSTAGE_API_KEY):
39
+
40
+
41
+ # Upstage API ํด๋ผ์ด์–ธํŠธ ์„ค์ • (์Šคํ‚ค๋งˆ ์ƒ์„ฑ์šฉ)
42
+ schema_client = OpenAI(
43
+ api_key=UPSTAGE_API_KEY,
44
+ base_url="https://api.upstage.ai/v1/information-extraction/schema-generation"
45
+ )
46
+
47
+ # Upstage API ํด๋ผ์ด์–ธํŠธ ์„ค์ • (์ •๋ณด ์ถ”์ถœ์šฉ)
48
+ extraction_client = OpenAI(
49
+ api_key=UPSTAGE_API_KEY,
50
+ base_url="https://api.upstage.ai/v1/information-extraction"
51
+ )
52
+
53
  base64_data = encode_img_to_base64(image_path)
54
 
55
  # ์Šคํ‚ค๋งˆ ์ƒ์„ฑ
 
96
  return json_result, df_result
97
 
98
 
99
+
100
+ # Gradio UI
101
  with gr.Blocks() as demo:
102
  gr.Markdown("## ๐Ÿ“‡ ๋ช…ํ•จ ์ •๋ณด ์ž๋™ ์ถ”์ถœ๊ธฐ")
103
+ gr.Markdown("๋ช…ํ•จ ์ด๋ฏธ์ง€๋ฅผ ์—…๋กœ๋“œํ•˜๋ฉด ์ •๋ณด๋ฅผ ์ถ”์ถœํ•˜๊ณ , ๋‹ค์šด๋กœ๋“œ ๋ฒ„ํŠผ์„ ๋ˆŒ๋Ÿฌ CSV๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.")
104
+
105
+ with gr.Row():
106
+ api_key_input = gr.Textbox(label="๐Ÿ”‘ Upstage API Key", type="password", placeholder="Paste your API key here")
107
 
108
  with gr.Row():
109
  with gr.Column():
 
111
  extract_btn = gr.Button("๐Ÿ“ค ์ •๋ณด ์ถ”์ถœํ•˜๊ธฐ")
112
 
113
  with gr.Column():
114
+ json_output = gr.Textbox(label="๐Ÿ“„ ์ถ”์ถœ๋œ JSON", lines=20)
115
  table_output = gr.Dataframe(label="๐Ÿ“‹ ์ถ”์ถœ๋œ ์ •๋ณด (ํ‘œ ํ˜•ํƒœ)", interactive=False)
116
+ download_btn = gr.Button("๐Ÿ“ฅ CSV ๋‹ค์šด๋กœ๋“œ ๋ฐ›๊ธฐ")
117
+ file_output = gr.File(label="", visible=False)
118
 
 
119
  extract_btn.click(
120
+ fn=extract_info,
121
+ inputs=[image_input, api_key_input],
122
+ outputs=[json_output, table_output, file_output]
123
  )
124
 
125
+ download_btn.click(
126
+ fn=lambda x: x,
127
+ inputs=file_output,
128
+ outputs=file_output
129
+ )
130
 
131
 
132
  # ์•ฑ ์‹คํ–‰