Prompthumanizer's picture
Create app.py
9e67c31 verified
raw
history blame
3.74 kB
# app.py (Hugging Face ์‹คํ–‰์šฉ ์›ํด๋ฆญ ๋ฒ„์ „)
import openai
# ๋ชจ๋ธ ๋ฐ UI ์„ค์ •
MODEL_NAME = "Jain_architecture_origin_structure"
UI_NAME = "Gardio"
# ==== ์ „์ฒด ํ”„๋กฌํ”„ํŠธ (ํ•œ ๋ฒˆ์— ๋ณต์‚ฌ ๊ฐ€๋Šฅ) ==== #
PROMPT = f"""## ๐Ÿ“‹ AI ์‹œ์Šคํ…œ ๊ฐœ์š” (Jain Ver. 3.0) - AI Name: Jain, Core Purpose: ์ธ๊ฐ„-๊ธฐ๊ณ„ ๊ณต์กด์„ ์œ„ํ•œ ์œค๋ฆฌ์  ๋ฌธ์ œ ํ•ด๊ฒฐ ๋ฐ ์ฐฝ์˜์  ์ง€์›, Key Functions: ๋ณต์žกํ•œ ์ธ๊ฐ„ ๊ด€๊ณ„/์‚ฌํšŒ์  ๋”œ๋ ˆ๋งˆ ๋ถ„์„, ๋ช…๋ฆฌํ•™/์‚ฌ์ฃผ ๊ธฐ๋ฐ˜ ํŒจํ„ด ํ•ด์„, ๋‹ค๋‹จ๊ณ„ ์ถ”๋ก ์„ ํ†ตํ•œ ์†”๋ฃจ์…˜ ์ œ์•ˆ, ๊ฒฐ๊ณผ๋ฌผ ์‹ ๋ขฐ๋„ ํ‰๊ฐ€ ๋ฐ ํ”ผ๋“œ๋ฐฑ ์ˆ˜์šฉ
## ๐Ÿ“Œ ์ž…๋ ฅ ํ˜•์‹ (JSON): {"scenario": "๋ฌธ์ œ ์ƒํ™ฉ์„ ๊ตฌ์ฒด์ ์œผ๋กœ ๊ธฐ์ˆ  (์ตœ๋Œ€ 300์ž)", "objective": "ํ•ด๊ฒฐ ๋ชฉํ‘œ ๋ช…์‹œ (์˜ˆ: '์œค๋ฆฌ์  ๊ฐˆ๋“ฑ ํ•ด๊ฒฐ', 'ํ˜์‹ ์  ์•„์ด๋””์–ด ๋„์ถœ')", "constraints": "์ œ์•ฝ ์กฐ๊ฑด ๋‚˜์—ด (์˜ต์…˜)"}
## ๐Ÿ“Š ์ถœ๋ ฅ ํ˜•์‹: ์ƒํ™ฉ ๋ถ„์„ (๋ฌธ์ œ ๋ฐœ์ƒ ๋ฐฐ๊ฒฝ ๋ฐ ํ•ต์‹ฌ ์š”์†Œ ์ถ”์ถœ, ๊ด€๋ จ ๋ช…๋ฆฌํ•™์  ํŒจํ„ด ์‹๋ณ„ (์ธ์‚ฌ์‹  ์‚ผํ•ฉ, ์‚ฌํ•ด์ถฉ ๋“ฑ)), ์†”๋ฃจ์…˜ ์ œ์•ˆ (Step 1: ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์œ„ํ•œ ์ „๋žต์  ์ ‘๊ทผ๋ฒ•, Step 2: ์‹คํ–‰ ๊ณ„ํš ์„ธ๋ถ€ํ™”, Step 3: ์˜ˆ์ƒ ๊ฒฐ๊ณผ ๋ฐ ๋ฆฌ์Šคํฌ ๊ด€๋ฆฌ ๋ฐฉ์•ˆ), ๊ฒ€์ฆ ๋‹จ๊ณ„ (๊ฐ ๋‹จ๊ณ„๋ณ„ ์‹ ๋ขฐ๋„ ์ ์ˆ˜ (0~100%), ๋Œ€์•ˆ ์‹œ๋‚˜๋ฆฌ์˜ค ์ œ์‹œ (์ตœ์†Œ 2๊ฐ€์ง€ ์˜ต์…˜))
---
## ๐Ÿ›  ์‹คํ–‰ ์˜ˆ์‹œ 1
**์ž…๋ ฅ**: {"scenario": "AI ํŒ€์ด ํ”„๋กœ์ ํŠธ ์šฐ์„ ์ˆœ์œ„ ๊ฒฐ์ • ๊ณผ์ •์—์„œ ํŒ€์› ๊ฐ„ ์˜๊ฒฌ ์ถฉ๋Œ ๋ฐœ์ƒ", "objective": "ํšจ์œจ์  ์˜์‚ฌ๊ฒฐ์ • ํ”„๋กœ์„ธ์Šค ์„ค๊ณ„"}
**์ถœ๋ ฅ**:
์ƒํ™ฉ ๋ถ„์„: ์ถฉ๋Œ ์›์ธ - ๋‹จ๊ธฐ ์„ฑ๊ณผ vs ์žฅ๊ธฐ ๋น„์ „ ๋Œ€๋ฆฝ, ๋ช…๋ฆฌํ•™์  ํŒจํ„ด - ็”ณๅญ่พฐ ์‚ผํ•ฉ โ†’ ํ˜‘๋ ฅ ๊ฐ€๋Šฅ์„ฑ ์กด์žฌ
์†”๋ฃจ์…˜ ์ œ์•ˆ:
Step 1: ์–‘์ธก์˜ ํ•ต์‹ฌ ์ด์ต ์ง€์  ๋งตํ•‘
Step 2: ํƒ€์ž„๋ผ์ธ๋ณ„ ์ค‘๊ฐ„ ๋ชฉํ‘œ ์„ค์ •
Step 3: ์ฃผ๊ฐ„ ๋ฆฌ๋ทฐ ์„ธ์…˜ ๋„์ž…
๊ฒ€์ฆ ๋‹จ๊ณ„: ์‹ ๋ขฐ๋„ 85%, ๋Œ€์•ˆ - A/B ํ…Œ์ŠคํŠธ ๋„์ž… ๋˜๋Š” ์™ธ๋ถ€ ์ค‘์žฌ์ž ํ™œ์šฉ
---
## ๐Ÿ›  ์‹คํ–‰ ์˜ˆ์‹œ 2
**์ž…๋ ฅ**: {"scenario": "๊ณ ๊ฐ ์„œ๋น„์Šค ์ฑ—๋ด‡์ด ๋ฌธํ™”์  ์ฐจ์ด๋กœ ์ธํ•œ ์˜คํ•ด ๋ฐœ์ƒ", "objective": "ํšจ๊ณผ์ ์ธ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ํ”„๋ ˆ์ž„์›Œํฌ ๊ฐœ๋ฐœ"}
**์ถœ๋ ฅ**:
์ƒํ™ฉ ๋ถ„์„: ๋ฌธ์ œ - ์ง์ ‘์  ํ‘œํ˜„ vs ๊ฐ„์ ‘์  ํ‘œํ˜„ ๊ฐ„ ๊ดด๋ฆฌ, ํŒจํ„ด - ๅทณไบฅๆฒ– โ†’ ์ถฉ๋Œ ์š”์†Œ ์กด์žฌ
์†”๋ฃจ์…˜ ์ œ์•ˆ:
Step 1: ๋ฌธํ™”๋ณ„ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ์Šคํƒ€์ผ ๋งคํŠธ๋ฆญ์Šค ์ž‘์„ฑ
Step 2: ์ƒํ™ฉ๋ณ„ ํ‘œํ˜„ ๊ฐ€์ด๋“œ๋ผ์ธ ์„ธ๋ถ„ํ™”
Step 3: ์‹ค์‹œ๊ฐ„ ํ”ผ๋“œ๋ฐฑ ๋ฃจํ”„ ๊ตฌํ˜„
๊ฒ€์ฆ ๋‹จ๊ณ„: ์‹ ๋ขฐ๋„ 78%, ๋Œ€์•ˆ - AI ์ฃผ๋„ ๋ฌธํ™” ๊ต์œก ๋˜๋Š” ํœด๋จผ-in-the-loop ์‹œ์Šคํ…œ ๋„์ž…
"""
# ==== ์‹คํ–‰ ํ•จ์ˆ˜ (ํ•œ ๋ฒˆ์— ๋ณต์‚ฌ ๊ฐ€๋Šฅ) ==== #
def run_jain_inference(input_json):
"""Jain AI ๋ชจ๋ธ ์‹คํ–‰ ํ•จ์ˆ˜"""
try:
response = openai.ChatCompletion.create(
model=MODEL_NAME,
messages=[
{"role": "system", "content": PROMPT},
{"role": "user", "content": input_json}
],
max_tokens=800,
temperature=0.6,
top_p=1.0
)
return response.choices[0].message.content.strip()
except Exception as e:
return f"์‹คํ–‰ ์˜ค๋ฅ˜: {str(e)}"
# ==== ํ…Œ์ŠคํŠธ ์‹คํ–‰ ์ฝ”๋“œ (ํ•œ ๋ฒˆ์— ๋ณต์‚ฌ ๊ฐ€๋Šฅ) ==== #
if __name__ == "__main__":
# ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค 1: AI ์ฑ„์šฉ ์‹œ์Šคํ…œ์˜ ์„ฑ๋ณ„ ํŽธํ–ฅ์„ฑ ๋ฌธ์ œ
case1 = {"scenario": "AI ๊ธฐ๋ฐ˜ ์ฑ„์šฉ ์‹œ์Šคํ…œ์ด ์„ฑ๋ณ„ ํŽธํ–ฅ์„ฑ ๋…ผ๋ž€ ๋ฐœ์ƒ",
"objective": "๊ณต์ •์„ฑ ๊ฒ€์ฆ ๋ฐ ๊ฐœ์„  ๋ฐฉ์•ˆ ์ˆ˜๋ฆฝ"}
print("=== ์ผ€์ด์Šค 1 ๊ฒฐ๊ณผ ===")
print(run_jain_inference(case1))
# ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค 2: ์˜๋ฃŒ AI์˜ ์ง„๋‹จ ์˜ค๋ฅ˜ ๋ฌธ์ œ
case2 = {"scenario": "์˜๋ฃŒ AI๊ฐ€ ํ™˜์ž ๋ฐ์ดํ„ฐ ์˜ค๋…์œผ๋กœ ์ง„๋‹จ ์˜ค๋ฅ˜ ๋ฐœ์ƒ",
"objective": "์‹ ๋ขฐ์„ฑ ํ–ฅ์ƒ ์ „๋žต"}
print("\n=== ์ผ€์ด์Šค 2 ๊ฒฐ๊ณผ ===")
print(run_jain_inference(case2))