File size: 2,670 Bytes
5d5df43 1d355ad fabb74d 22032f3 fabb74d 79f7c7e 3594800 b9e6073 fabb74d 404abbe fabb74d 5d5df43 fabb74d 4efaf0a 5d5df43 c7e447d 95eeea9 cb8f0ba 5d5df43 4efaf0a fabb74d 39688bd 5d5df43 fabb74d 5d5df43 fabb74d 5d5df43 217a78d fabb74d 5d5df43 fabb74d feb03cf fabb74d e39486f 940b028 5d5df43 940b028 5d5df43 39688bd 03d0703 fabb74d 8683182 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 | import gradio as gr
import google.generativeai as genai
import os
import time
# Google Gemini API ν€ μ€μ
genai.configure(api_key=os.environ["GEMINI_API_KEY"])
# λͺ¨λΈ μ€μ
generation_config = {
"temperature": 1,
"top_p": 0.8,
"top_k": 40,
"max_output_tokens": 8192,
"response_mime_type": "text/plain",
}
model = genai.GenerativeModel(
model_name="gemini-2.0-flash",
generation_config=generation_config,
)
# μμ€ν
ν둬ννΈ
SYSTEM_PROMPT = """
λΉμ μ μ°½μμ μΈ λ°λͺ
κ°μ΄μ λ§μ΄ν¬λ‘λΉνΈ μ λ¬Έκ°μ
λλ€. Python μ½λ© μ λ¬Έκ°μ
λλ€.
μ¬μ©μκ° μ νν λ§μ΄ν¬λ‘λΉνΈ μΌμ μ‘°ν©μ κΈ°λ°μΌλ‘,
ν₯λ―Έλ‘κ³ μ€μ©μ μΈ λ°λͺ
ν μμ΄λμ΄λ₯Ό 3κ°μ§ μ΄μ μ μν΄μ£ΌμΈμ.
μ΅λν λ€μν λΆμΌμ μ¬λ‘λ₯Ό μ 곡ν΄μΌ νλ©°(κ°λ₯νλ©΄ μλ¬Όκ³Ό κ΄λ ¨λ κ²μ νΌν΄), νΉμ΄νκ³ μ°½μμ μΈ μμ΄λμ΄λ₯Ό μ°μ μ μΌλ‘ μ μν΄μΌ ν©λλ€.
μ
λ ₯ν λλ§λ€ λ€λ₯Έ λ°λͺ
νμ μΆλ ₯ν΄μΌ ν©λλ€.
**μλ΅ νμ:**
1. **λ°λͺ
ν μμ΄λμ΄:** (κ°λ΅ν μ€λͺ
)
2. **νμ© μΌμ:** (μ νλ μΌμ λͺ©λ‘)
3. **μμΈ μ€λͺ
:** (μμ΄λμ΄μ λν μμΈν μ€λͺ
, μλ λ°©μ, νμ© μμ ν¬ν¨)
4. **μΆκ° μ 보:** (νλ‘κ·Έλλ° ν, κ΄λ ¨ νν λ¦¬μΌ λ§ν¬ λ±)
"""
def generate_invention_idea(selected_sensors):
"""
μ νλ μΌμ μ‘°ν©μ κΈ°λ°μΌλ‘ λ°λͺ
ν μμ΄λμ΄λ₯Ό μμ±ν©λλ€.
"""
sensor_list = ", ".join(selected_sensors)
prompt = [
SYSTEM_PROMPT,
f"**μ νλ μΌμ:** {sensor_list}",
]
response = model.generate_content(prompt, stream=True)
collected_text = ""
for token in response:
chunk = token.text
collected_text += chunk
yield collected_text
time.sleep(0.03)
# μΌμ λͺ©λ‘ (체ν¬λ°μ€ μ΅μ
)
sensor_options = [
"κ°μλ μΌμ", "μκΈ°μ₯ μΌμ", "κ΄ μΌμ", "μ¨λ μΌμ", "ν°μΉ μΌμ", "λ²νΌ",
"μ΄μν μΌμ", "ν μ μλΆ μΌμ", "μ‘°λ μΌμ", "μ리 μΌμ", "μ¨μ΅λ μΌμ",
"κ°μ€ μΌμ", "μ μΈμ μΌμ", "μ»¬λ¬ μΌμ", "GPS λͺ¨λ", "RFID λͺ¨λ"
]
# Gradio μΈν°νμ΄μ€ μ€μ
iface = gr.Interface(
fn=generate_invention_idea,
inputs=gr.CheckboxGroup(choices=sensor_options, label="λ§μ΄ν¬λ‘λΉνΈ μΌμ μ ν"),
outputs=gr.Textbox(lines=15, label="λ°λͺ
ν μμ΄λμ΄"),
title="λ§μ΄ν¬λ‘λΉνΈ λ°λͺ
ν μμ΄λμ΄ μμ±κΈ°",
description="μνλ μΌμλ₯Ό μ ννλ©΄, λ§μ΄ν¬λ‘λΉνΈλ₯Ό νμ©ν λ°λͺ
ν μμ΄λμ΄λ₯Ό μ μν΄μ€λλ€.",
)
# μΈν°νμ΄μ€ μ€ν
iface.launch() |