openfree commited on
Commit
4be365e
ยท
verified ยท
1 Parent(s): 7f0c2bb

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -23
app.py CHANGED
@@ -1,25 +1,13 @@
1
  """
2
  Square Theory Generator (Markdownโ€‘only, up to 20 ideas)
3
  =====================================================
4
- 2025โ€‘05โ€‘28ย v9 โ— ์ถœ๋ ฅ ํฌ๋งท ๊ฐœ์„  & ํ•„๋“œ ๊ตฌ๋ถ„ ๋ช…ํ™•ํ™”
5
  ---------------------------------------------------
6
  ๋ณ€๊ฒฝ ์š”์•ฝ
7
  ---------
8
- 1. **์Šฌ๋กœ๊ฑด ยท ๋ธŒ๋žœ๋“œ ๋„ค์ž„ ๊ตฌํš** โ€” Markdown ํ…œํ”Œ๋ฆฟ์„ ๋‹ค์Œ ๊ตฌ์กฐ๋กœ ๊ฐœ์„ 
9
- ```md
10
- ### 1. ๋ธŒ๋žœ๋“œ ๋„ค์ž„: ๋ชจ๋‹์ปคํ”ผ
11
- **๋ฉ”์ธ ์นดํ”ผ**
12
- โ€ข ์ƒ๋‹จ: ํ’๋ฏธ๋ฅผ ๋‹ด์€ ์ปคํ”ผ
13
- โ€ข ํ•˜๋‹จ: ๋‹น์‹ ์˜ ํ•˜๋ฃจ๋ฅผ ํŠน๋ณ„ํ•˜๊ฒŒ
14
-
15
- **์Šฌ๋กœ๊ฑด**
16
- > ์ปคํ”ผ ํ•œ์ž”์˜ ์—ฌ์œ 
17
-
18
- **์‚ฌ๊ฐํ˜• ํ‚ค์›Œ๋“œ**
19
- TL: ํ’๋ฏธ ยท TR: ์ปคํ”ผ ยท BR: ํ–ฅ๊ธฐ ยท BL: ํ•œ์ž”
20
- ```
21
- 2. **ํ”„๋กฌํ”„ํŠธ ๋ช…์„ธ ์œ ์ง€** โ€” JSON ๊ตฌ์กฐ ๋ณ€๋™์€ ์—†์Œ(ํ˜ธํ™˜).
22
- 3. **์ถ”๊ฐ€ ๊ฐœ์„  ์ œ์•ˆ** โ€” ์ฝ”๋“œ ๋‚ด ์ฃผ์„์œผ๋กœ โ€˜์ถ”๊ฐ€ ํ•„๋“œยท๋žญํ‚น ๊ธฐ์ค€ยทCSV ๋‹ค์šด๋กœ๋“œโ€™ ์•„์ด๋””์–ด ์‚ฝ์ž….
23
 
24
  ์‹คํ–‰๋ฒ•
25
  ------
@@ -33,7 +21,8 @@ python square_theory_gradio.py
33
  import os
34
  import json
35
  import gradio as gr
36
- from openai import OpenAI, error as oai_err
 
37
 
38
  # -------------------------------------------------
39
  # 0. OpenAI ํด๋ผ์ด์–ธํŠธ
@@ -57,7 +46,6 @@ FALLBACK_MODELS = ["gpt-4o-mini", "gpt-4o", "gpt-4o-preview", "gpt-4-turbo"]
57
 
58
 
59
  def _clean_json_block(text: str) -> str:
60
- """Strip ```json fences if present."""
61
  text = text.strip()
62
  if text.startswith("```"):
63
  text = text.split("\n", 1)[1] if "\n" in text else text[3:]
@@ -86,7 +74,7 @@ def _call_llm(seed: str):
86
  if not isinstance(data, list) or not (1 <= len(data) <= 20):
87
  raise ValueError("LLM ์‘๋‹ต์ด ์˜ฌ๋ฐ”๋ฅธ 1โ€‘20๊ฐœ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์•„๋‹˜")
88
  return data
89
- except (oai_err.OpenAIError, json.JSONDecodeError, ValueError, TypeError) as exc:
90
  last_exc = exc
91
  continue
92
  raise RuntimeError(f"LLM ํ˜ธ์ถœ ์‹คํŒจ: {last_exc}")
@@ -128,12 +116,11 @@ with gr.Blocks(title="Square Theory โ€“ ์ตœ๋Œ€ 20๊ฐœ ๐Ÿ‡ฐ๐Ÿ‡ท") as demo:
128
 
129
  run.click(generate, inputs=seed, outputs=md_out)
130
 
131
- # queue(): ๋กœ๋”ฉ ์ธ๋””์ผ€์ดํ„ฐ & ๋™์‹œ ์ ‘์† ์•ˆ์ •ํ™”
132
  demo.queue().launch()
133
 
134
  # -------------------------------------------------
135
  # 4. (Optional) ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ์•„์ด๋””์–ด
136
  # -------------------------------------------------
137
- # - JSON์— "why"(์„ ์ • ์ด์œ ) ํ•„๋“œ ์š”์ฒญ โ†’ ์•„์ด๋””์–ด ์„ค๋“๋ ฅ ๊ฐ•ํ™”
138
- # - ์ฑ„๋„๋ณ„ ํƒœ๊ทธ๋ผ์ธ ๋ณ€ํ˜•(OOHยทSNSยทTV) ์ž๋™ ์ƒ์„ฑ ์˜ต์…˜
139
- # - ๊ฒฐ๊ณผ CSV ๋‹ค์šด๋กœ๋“œ ๋ฒ„ํŠผ ์ถ”๊ฐ€(๊ทธ๋ผ๋””์˜ค File component)
 
1
  """
2
  Square Theory Generator (Markdownโ€‘only, up to 20 ideas)
3
  =====================================================
4
+ 2025โ€‘05โ€‘28ย v10 โ— ImportErrorย fix (OpenAI error module)
5
  ---------------------------------------------------
6
  ๋ณ€๊ฒฝ ์š”์•ฝ
7
  ---------
8
+ * **๋ฌธ์ œ**: `from openai import OpenAI, error as oai_err` โ†’ v1ย SDK์—๋Š” `error` ์„œ๋ธŒ๋ชจ๋“ˆ์ด ์—†์Œ โ‡’ `ImportError`.
9
+ * **ํ•ด๊ฒฐ**: `import openai` ํ›„ `openai.OpenAIError` ์ฐธ์กฐ.
10
+ `except` ์ ˆ์„ `openai.OpenAIError` ๋กœ ๊ต์ฒด.
 
 
 
 
 
 
 
 
 
 
 
 
11
 
12
  ์‹คํ–‰๋ฒ•
13
  ------
 
21
  import os
22
  import json
23
  import gradio as gr
24
+ import openai
25
+ from openai import OpenAI
26
 
27
  # -------------------------------------------------
28
  # 0. OpenAI ํด๋ผ์ด์–ธํŠธ
 
46
 
47
 
48
  def _clean_json_block(text: str) -> str:
 
49
  text = text.strip()
50
  if text.startswith("```"):
51
  text = text.split("\n", 1)[1] if "\n" in text else text[3:]
 
74
  if not isinstance(data, list) or not (1 <= len(data) <= 20):
75
  raise ValueError("LLM ์‘๋‹ต์ด ์˜ฌ๋ฐ”๋ฅธ 1โ€‘20๊ฐœ ๋ฆฌ์ŠคํŠธ๊ฐ€ ์•„๋‹˜")
76
  return data
77
+ except (openai.OpenAIError, json.JSONDecodeError, ValueError, TypeError) as exc:
78
  last_exc = exc
79
  continue
80
  raise RuntimeError(f"LLM ํ˜ธ์ถœ ์‹คํŒจ: {last_exc}")
 
116
 
117
  run.click(generate, inputs=seed, outputs=md_out)
118
 
 
119
  demo.queue().launch()
120
 
121
  # -------------------------------------------------
122
  # 4. (Optional) ์ถ”๊ฐ€ ๊ธฐ๋Šฅ ์•„์ด๋””์–ด
123
  # -------------------------------------------------
124
+ # - JSON์— "why" ํ•„๋“œ ์š”์ฒญ โ€” ๊ฐ ์ œ์•ˆ์˜ ์„ ์ • ์ด์œ ๋ฅผ ํ‘œ์‹œํ•ด ์„ค๋“๋ ฅ ๊ฐ•ํ™”
125
+ # - ํƒ€๊นƒ ์ฑ„๋„๋ณ„ ํƒœ๊ทธ๋ผ์ธ ๋ณ€ํ˜• ์˜ต์…˜(OHHยทSNSยทTV)
126
+ # - CSV ๋‹ค์šด๋กœ๋“œ ๋ฒ„ํŠผ์œผ๋กœ ๊ฒฐ๊ณผ ์ผ๊ด„ ์ €์žฅ