| | import gradio as gr |
| | import google.generativeai as genai |
| | import os |
| | import time |
| |
|
| | |
| | genai.configure(api_key=os.environ["GEMINI_API_KEY"]) |
| |
|
| | |
| | generation_config = { |
| | "temperature": 1, |
| | "top_p": 0.8, |
| | "top_k": 64, |
| | "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_solution(problem_situation): |
| | """ |
| | ์
๋ ฅ๋ ๋ฌธ์ ์ํฉ์ ๋ํ ๋ง์ดํฌ๋ก๋นํธ ๊ธฐ๋ฐ ํด๊ฒฐ ๋ฐฉ์์ ์์ฑํฉ๋๋ค. |
| | """ |
| |
|
| | prompt = [ |
| | SYSTEM_PROMPT, |
| | f"**๋ฌธ์ ์ํฉ:** {problem_situation}", |
| | ] |
| |
|
| | 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) |
| |
|
| |
|
| | |
| | iface = gr.Interface( |
| | fn=generate_solution, |
| | inputs=gr.Textbox(lines=5, label="๋ฌธ์ ์ํฉ"), |
| | outputs=gr.Textbox(lines=15, label="๋ง์ดํฌ๋ก๋นํธ ํด๊ฒฐ ๋ฐฉ์"), |
| | title="๋ง์ดํฌ๋ก๋นํธ ๋ฌธ์ ํด๊ฒฐ ๋์ฐ๋ฏธ", |
| | description="๋ฌธ์ ์ํฉ์ ์
๋ ฅํ๋ฉด, ๋ง์ดํฌ๋ก๋นํธ๋ฅผ ํ์ฉํ ํด๊ฒฐ ๋ฐฉ์์ ์ ์ํด์ค๋๋ค.", |
| | ) |
| |
|
| | |
| | iface.launch() |