ll7098ll commited on
Commit
5d5df43
Β·
verified Β·
1 Parent(s): 4885e65

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +32 -77
app.py CHANGED
@@ -1,9 +1,8 @@
 
 
1
  import os
2
  import time
3
 
4
- import google.generativeai as genai
5
- import gradio as gr
6
-
7
  # Google Gemini API ν‚€ μ„€μ •
8
  genai.configure(api_key=os.environ["GEMINI_API_KEY"])
9
 
@@ -21,43 +20,30 @@ model = genai.GenerativeModel(
21
  generation_config=generation_config,
22
  )
23
 
24
- # ν”„λ‘¬ν”„νŠΈ μ„€μ •
25
  SYSTEM_PROMPT = """
26
- 당신은 κ΅μˆ˜ν•™μŠ΅ ν™œλ™ 섀계 μ „λ¬Έκ°€, ꡐ과ꡐ윑 λ‚΄μš© μ „λ¬Έκ°€, κ΅μœ‘κ³΅ν•™μžμž…λ‹ˆλ‹€.
27
- μ„ μƒλ‹˜λ“€μ΄ ν•™μŠ΅ μ£Όμ œμ™€ 사고 루틴을 μž…λ ₯ν•˜λ©΄, ν•΄λ‹Ή μ£Όμ œμ— 적용 κ°€λŠ₯ν•œ 사고 루틴 ν™œλ™ μ˜ˆμ‹œλ₯Ό μƒμ„Έν•˜κ²Œ μ„€λͺ…ν•΄μ£Όμ„Έμš”.
28
- **ν™œλ™ μ˜ˆμ‹œ ꡬ성 μš”μ†Œ:**
29
- 1. ν•™μŠ΅ 주제
30
- 2. μ μš©ν•  사고 루틴 및 사고 루틴에 λŒ€ν•œ μ„€λͺ…λͺ…
31
- 3. ν™œλ™ λͺ©ν‘œ
32
- 4. ν™œλ™ 단계별 μ•ˆλ‚΄
33
- - 각 λ‹¨κ³„λ³„λ‘œ 사고 루틴을 μ–΄λ–»κ²Œ ν™œμš©ν•˜λŠ”μ§€ μžμ„Έν•˜κ²Œ μ„€λͺ…
34
- - μ˜ˆμ‹œ 질문 포함
35
- 5. ν™œλ™ μ€€λΉ„λ¬Ό 및 기ꡬ
36
- 6. ν™œλ™μ„ μœ„ν•œ 자료
37
- - ν™œλ™μ— ν•„μš”ν•œ 자료
38
- - μΆ”κ°€ μΆ”μ²œ 자료
39
- 7. ν™œλ™μ˜ 유의점
40
- - 학생 μž…μž₯ 유의점
41
- - ꡐ사 μž…μž₯ 유의점
42
- 8. ν•™μƒμ—κ²Œ μ œκ³΅ν•  ν™œλ™ μ•ˆλ‚΄ 자료
43
- * ν™œλ™ μ•ˆλ‚΄ μžλ£ŒλŠ” μ΄ˆλ“±ν•™μƒμ΄ 이해할 수 μžˆλ„λ‘ μ΅œλŒ€ν•œ ꡬ체적이고, 단계적, λͺ…μ‹œμ μœΌλ‘œ μ•ˆλ‚΄ν•΄μ£Όμ„Έμš”.
44
  """
45
 
46
- def generate_thinking_routine_example(topic, thinking_routine):
 
47
  """
48
- ν•™μŠ΅ μ£Όμ œμ™€ 사고 루틴을 μž…λ ₯λ°›μ•„ ν™œλ™ μ˜ˆμ‹œλ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
49
- Args:
50
- topic (str): ν•™μŠ΅ 주제
51
- thinking_routine (str): μ μš©ν•  사고 루틴
52
- Returns:
53
- str: μƒμ„±λœ ν™œλ™ μ˜ˆμ‹œ
54
  """
 
55
 
56
  prompt = [
57
  SYSTEM_PROMPT,
58
- f"**ν•™μŠ΅ 주제:** {topic}",
59
- f"**μ μš©ν•  사고 루틴:** {thinking_routine}",
60
- "**ν™œλ™ μ˜ˆμ‹œ:**",
61
  ]
62
 
63
  response = model.generate_content(prompt, stream=True)
@@ -68,52 +54,21 @@ def generate_thinking_routine_example(topic, thinking_routine):
68
  yield collected_text
69
  time.sleep(0.03)
70
 
71
- # Gradio μΈν„°νŽ˜μ΄μŠ€ μ„€μ • - λ“œλ‘­λ‹€μš΄ 메뉴 μΆ”κ°€
 
 
 
 
 
 
 
 
72
  iface = gr.Interface(
73
- fn=generate_thinking_routine_example,
74
- inputs=[
75
- gr.Textbox(lines=2, label="ν•™μŠ΅ 주제 μž…λ ₯"),
76
- gr.Dropdown(
77
- choices=[
78
- "See-Think-Wonder (보고-μƒκ°ν•˜κ³ -κΆκΈˆν•΄ν•˜κΈ°)",
79
- "Zoom In (ν™•λŒ€)",
80
- "Think-Puzzle-Explore (생각-ꢁ금-탐ꡬ)",
81
- "Chalk Talk (침묡 λŒ€ν™”)",
82
- "321 Bridge (3-2-1 닀리 μ§“κΈ°)",
83
- "Compass Points (λ‚˜μΉ¨λ°˜)",
84
- "Explanation Game (μ„€λͺ… κ²Œμž„)",
85
- "Headlines (ν—€λ“œλΌμΈ)",
86
- "CSI: Color, Symbol, Image (색상, 기호, 이미지)",
87
- "Generate-Sort-Connect-Elaborate-Concept Maps (κ°œλ…λ„)",
88
- "Connect-Extend-Challenge (μ—°κ²°-ν™•μž₯-도전)",
89
- "The 4 C's (4κ°€μ§€ C)",
90
- "Micro Lab (λ―Έλ‹ˆ μ‹€ν—˜)",
91
- "I used to think…Now I think… (μ˜ˆμ „μ—” … 라고 μƒκ°ν–ˆμ§€λ§Œ, μ§€κΈˆμ€ … 라고 생각해)",
92
- "What makes you say that? (무엇 λ•Œλ¬Έμ— κ·Έλ ‡κ²Œ μƒκ°ν•˜λ‹ˆ?)",
93
- "Circle Viewpoints (λ‹€μ–‘ν•œ 관점)",
94
- "Step Inside (μž…μž₯ λ°”κΏ” μƒκ°ν•˜κΈ°)",
95
- "Red Light, Yellow Light, Green Light (λΉ¨κ°„λΆˆ, λ…Έλž€λΆˆ, 초둝뢈)",
96
- "Claim Support Question (μ£Όμž₯-κ·Όκ±°-질문)",
97
- "Tug of War (쀄닀리기)",
98
- "Word-Phrase-Sentence (단어-ꡬ-λ¬Έμž₯)",
99
- "Think Aloud (사고 ꡬ술)",
100
- "κ΄€μ°°-λΉ„κ΅λŒ€μ‘°-λΆ„λ₯˜",
101
- "κ΄€μ°°ν•˜κΈ°",
102
- "무리 μ§“κΈ°",
103
- "μ˜ˆμƒν•˜κΈ°",
104
- "관계망 그리기",
105
- "도ꡬ μ‚¬μš©μ˜ 방법 및 절차(μˆœμ„œ λ‹¨κ³„μ μœΌλ‘œ οΏ½οΏ½οΏ½μ‹œ)"
106
- ],
107
- label="사고 루틴 선택"
108
- ),
109
- ],
110
- outputs=gr.Textbox(lines=15, label="사고 루틴 ν™œμš© μ˜ˆμ‹œ"),
111
- title="ν•™μŠ΅ ν™œλ™ 섀계 λ„μš°λ―Έ: 사고 루틴 ν™œμš© 편",
112
- description="μ„ μƒλ‹˜μ΄ ν•™μŠ΅ μ£Όμ œμ™€ 사고 루틴을 μ„ νƒν•˜μ‹œλ©΄, ν•΄λ‹Ή μ£Όμ œμ— 적용 κ°€λŠ₯ν•œ 사고 루틴 ν™œλ™ μ˜ˆμ‹œλ₯Ό λ³΄μ—¬μ€λ‹ˆλ‹€.",
113
- examples=[
114
- ["κ΄‘ν•©μ„±", "See-Think-Wonder (보고-μƒκ°ν•˜κ³ -κΆκΈˆν•΄ν•˜κΈ°)"],
115
- ["μ‘°μ„  μ‹œλŒ€μ˜ κ³Όν•™ 기술", "Think-Puzzle-Explore (생각-ꢁ금-탐ꡬ)"],
116
- ]
117
  )
118
 
119
  # μΈν„°νŽ˜μ΄μŠ€ μ‹€ν–‰
 
1
+ import gradio as gr
2
+ import google.generativeai as genai
3
  import os
4
  import time
5
 
 
 
 
6
  # Google Gemini API ν‚€ μ„€μ •
7
  genai.configure(api_key=os.environ["GEMINI_API_KEY"])
8
 
 
20
  generation_config=generation_config,
21
  )
22
 
23
+ # μ‹œμŠ€ν…œ ν”„λ‘¬ν”„νŠΈ
24
  SYSTEM_PROMPT = """
25
+ 당신은 창의적인 발λͺ…κ°€μ΄μž λ§ˆμ΄ν¬λ‘œλΉ„νŠΈ μ „λ¬Έκ°€μž…λ‹ˆλ‹€.
26
+ μ‚¬μš©μžκ°€ μ„ νƒν•œ λ§ˆμ΄ν¬λ‘œλΉ„νŠΈ μ„Όμ„œ 쑰합을 기반으둜,
27
+ ν₯λ―Έλ‘­κ³  μ‹€μš©μ μΈ 발λͺ…ν’ˆ 아이디어λ₯Ό μ œμ•ˆν•΄μ£Όμ„Έμš”.
28
+
29
+ **응닡 ν˜•μ‹:**
30
+
31
+ 1. **발λͺ…ν’ˆ 아이디어:** (κ°„λž΅ν•œ μ„€λͺ…)
32
+ 2. **ν™œμš© μ„Όμ„œ:** (μ„ νƒλœ μ„Όμ„œ λͺ©λ‘)
33
+ 3. **상세 μ„€λͺ…:** (아이디어에 λŒ€ν•œ μžμ„Έν•œ μ„€λͺ…, μž‘λ™ 방식, ν™œμš© μ˜ˆμ‹œ 포함)
34
+ 4. **μΆ”κ°€ 정보:** (ν”„λ‘œκ·Έλž˜λ° 팁, κ΄€λ ¨ νŠœν† λ¦¬μ–Ό 링크 λ“±)
 
 
 
 
 
 
 
 
35
  """
36
 
37
+
38
+ def generate_invention_idea(selected_sensors):
39
  """
40
+ μ„ νƒλœ μ„Όμ„œ 쑰합을 기반으둜 발λͺ…ν’ˆ 아이디어λ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
 
 
 
 
 
41
  """
42
+ sensor_list = ", ".join(selected_sensors)
43
 
44
  prompt = [
45
  SYSTEM_PROMPT,
46
+ f"**μ„ νƒλœ μ„Όμ„œ:** {sensor_list}",
 
 
47
  ]
48
 
49
  response = model.generate_content(prompt, stream=True)
 
54
  yield collected_text
55
  time.sleep(0.03)
56
 
57
+
58
+ # μ„Όμ„œ λͺ©λ‘ (μ²΄ν¬λ°•μŠ€ μ˜΅μ…˜)
59
+ sensor_options = [
60
+ "가속도 μ„Όμ„œ", "자기μž₯ μ„Όμ„œ", "κ΄‘ μ„Όμ„œ", "μ˜¨λ„ μ„Όμ„œ", "ν„°μΉ˜ μ„Όμ„œ", "λ²„νŠΌ",
61
+ "초음파 μ„Όμ„œ", "ν† μ–‘ μˆ˜λΆ„ μ„Όμ„œ", "쑰도 μ„Όμ„œ", "μ†Œλ¦¬ μ„Όμ„œ", "μ˜¨μŠ΅λ„ μ„Όμ„œ",
62
+ "κ°€μŠ€ μ„Όμ„œ", "적외선 μ„Όμ„œ", "컬러 μ„Όμ„œ", "GPS λͺ¨λ“ˆ", "RFID λͺ¨λ“ˆ"
63
+ ]
64
+
65
+ # Gradio μΈν„°νŽ˜μ΄μŠ€ μ„€μ •
66
  iface = gr.Interface(
67
+ fn=generate_invention_idea,
68
+ inputs=gr.CheckboxGroup(choices=sensor_options, label="λ§ˆμ΄ν¬λ‘œλΉ„νŠΈ μ„Όμ„œ 선택"),
69
+ outputs=gr.Textbox(lines=15, label="발λͺ…ν’ˆ 아이디어"),
70
+ title="λ§ˆμ΄ν¬λ‘œλΉ„νŠΈ 발λͺ…ν’ˆ 아이디어 생성기",
71
+ description="μ›ν•˜λŠ” μ„Όμ„œλ₯Ό μ„ νƒν•˜λ©΄, λ§ˆμ΄ν¬λ‘œλΉ„νŠΈλ₯Ό ν™œμš©ν•œ 발λͺ…ν’ˆ 아이디어λ₯Ό μ œμ•ˆν•΄μ€λ‹ˆλ‹€.",
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
72
  )
73
 
74
  # μΈν„°νŽ˜μ΄μŠ€ μ‹€ν–‰