Update app.py
Browse files
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 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
-
|
| 33 |
-
|
| 34 |
-
|
| 35 |
-
|
| 36 |
-
6. νλμ μν μλ£
|
| 37 |
-
- νλμ νμν μλ£
|
| 38 |
-
- μΆκ° μΆμ² μλ£
|
| 39 |
-
7. νλμ μ μμ
|
| 40 |
-
- νμ μ
μ₯ μ μμ
|
| 41 |
-
- κ΅μ¬ μ
μ₯ μ μμ
|
| 42 |
-
8. νμμκ² μ 곡ν νλ μλ΄ μλ£
|
| 43 |
-
* νλ μλ΄ μλ£λ μ΄λ±νμμ΄ μ΄ν΄ν μ μλλ‘ μ΅λν ꡬ체μ μ΄κ³ , λ¨κ³μ , λͺ
μμ μΌλ‘ μλ΄ν΄μ£ΌμΈμ.
|
| 44 |
"""
|
| 45 |
|
| 46 |
-
|
|
|
|
| 47 |
"""
|
| 48 |
-
|
| 49 |
-
Args:
|
| 50 |
-
topic (str): νμ΅ μ£Όμ
|
| 51 |
-
thinking_routine (str): μ μ©ν μ¬κ³ 루ν΄
|
| 52 |
-
Returns:
|
| 53 |
-
str: μμ±λ νλ μμ
|
| 54 |
"""
|
|
|
|
| 55 |
|
| 56 |
prompt = [
|
| 57 |
SYSTEM_PROMPT,
|
| 58 |
-
f"**
|
| 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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 72 |
iface = gr.Interface(
|
| 73 |
-
fn=
|
| 74 |
-
inputs=
|
| 75 |
-
|
| 76 |
-
|
| 77 |
-
|
| 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 |
# μΈν°νμ΄μ€ μ€ν
|