Spaces:
Running
Running
import gradio as gr | |
import requests | |
# ์ง๋ฌธ ๋ฐ ์ ํ์ง ์ค์ | |
questions = ["[1๋จ๊ณ] 1. ๋น์ฆ๊ถ์ฑ์ผ๋ก ํ๋จ๋ฐ์ ๋ฒ๋ฅ ์๋ฌธ ๊ฒํ ์๋ฅผ ๋ณด์ ํ๊ณ ์๋์?", | |
"[1๋จ๊ณ] 2. TOP 10 Holder ๋ฐฐ๋ถ์จ์ ์ ํํด์ฃผ์ธ์(TOP 10 Holder)๊ฐ ์ผ๋ง๋ ๋ณด์ ํ๊ณ ์๋์?)", | |
"[1๋จ๊ณ] 3. ํ ํฐ ๋ฐํ์ ํ ์ดํ ์ผ๋ง๋ ์ง๋ฌ์ต๋๊น?", | |
"[1๋จ๊ณ] 4. ํ๋ก์ ํธ ๊ณต์๊ด๋ จ ๊ท์ (or ๋งค๋ด์ผ)์ด ์์ต๋๋ค", | |
"[2๋จ๊ณ] 5. ์์ฒด ์ด์ ์ปค๋ฎค๋ํฐ ํฌํจ ๋ค์ํ ์ฑ๋์ ๊ฐ์ข ์ด์, ๊ณต์ง, ๊ณต์ ๋ฑ ์ค์๊ฐ ๋ฐ์ํ๊ณ ์์ต๋๊น?", | |
"[2๋จ๊ณ] 6. ๋น์ฆ๋์ค ๊ด๋ จ ๋ฒ๋ฅ ์ด์ ํด๊ฒฐ์ ์ํ ์ค๋น์ํ๋ฅผ ์ ํํด ์ฃผ์ธ์. ", | |
"[2๋จ๊ณ] 7. ํ๋ก์ ํธ์์ ์ด์์ค์ธ ์ปค๋ฎค๋ํฐ(์๋น์ค ๊ฐ์ ์ ํฌํจ) ์ธ์ ์ด ํฉ์ ์ ํํด ์ฃผ์ธ์. ", | |
"[2๋จ๊ณ] 8. ํ๋ก์ ํธ ํ๋ณด๋ฅผ ์ํ ๋ด์ค, ์ธ๋ก ๋ฑ ๋ฏธ๋์ด ๋ ธ์ถ ์ฌ๋ถ๋ฅผ ์ ํํด ์ฃผ์ธ์", | |
"[3๋จ๊ณ] 9. ๋ฐ์ ๋ฑ ๋ง์ผํ ์ค์ ์ ์ ํํด ์ฃผ์ธ์", | |
"[3๋จ๊ณ] 10. ์ด๋๋ฐ์ด์ ๋๋ ํํธ๋์ ์ ๋ฌธ์ฑ ์์ค์ ์ ํํด ์ฃผ์ธ์ ", | |
"[3๋จ๊ณ] 11. ํ๋ก์ ํธ์ ์ฐ๋๋ ์ ์์ง๊ฐ ์๋น์ค๊ฐ ์์ต๋๊น? ", | |
"[3๋จ๊ณ] 12. ๋ฉํฐ์ฒด์ธ ์ง์์ ์ ๋๋ฅผ ์ ํํด์ฃผ์ธ์ ", | |
"[4๋จ๊ณ] 13. GitHub์ ํ๋ก์ ํธ๋ฅผ ๊ณต๊ฐํ๊ณ ํ๋ํ๊ณ ์๋์?", | |
"[4๋จ๊ณ] 14. ํ๋ก์ ํธ์ ๊ด๋ จ๋ ๊ธฐ์ ๋ฐ ๋น์ฆ๋์ค ๊ด๋ จ ํนํ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๊น?", | |
"[4๋จ๊ณ] 15. ๊ธฐ์ ์ธ๋ ฅ(in-house)์ค ๊ด๋ จ ๋ถ๋ถ ๋ฐ์ฌ ๋๋ ๊ธฐ์ ์ ์๊ฒฉ ๋ณด์ ์๊ฐ ์๋์?", | |
"[4๋จ๊ณ] 16. ํ๋ซํผ/์๋น์ค ์ด์ฉ๊ธฐ๊ฐ์ด ์ด๋ป๊ฒ ๋๋์?", | |
"[5๋จ๊ณ] 17. ๋ณด์ ๊ธฐ์ ๊ฐ์ฌ ๊ธฐ๊ด์ ๋ณด์๊ฐ์ฌ์(Audit)๋ฅผ ๋ณด์ ํ๊ณ ์๋์? ", | |
"[5๋จ๊ณ] 18. ๋ณด์๊ฐ์ฌ์๊ฐ ์ธ๋ถ์ ๊ณต๊ฐ๋์ด ์์ต๋๊น? ", | |
"[5๋จ๊ณ] 19. ๋ณด์๋ฉ๋ด์ผ์ ๋ฐ๋ฅธ ์ ๊ธฐ์ ์ธ ์ทจ์ฝ์ ์ ๊ฒ ํ๋์ ํ๊ณ ์์ต๋๊น? ", | |
"[5๋จ๊ณ] 20. ๋ฒ๊ทธ๋ฐ์ดํฐ ์๋น์ค๋ฅผ ํ๊ฑฐ๋ ํ์ฌ ํ๊ณ ์์ต๋๊น? ", | |
"[6๋จ๊ณ] 21. ๊ฐ์ธ์ ๋ณด๋ณดํธ์กฐ์น ์์ค์ ์ ํํด์ฃผ์ธ์ ", | |
"[6๋จ๊ณ] 22. ์ฝ์ธ๋ง์ผ์บก ๋๋ ์ฝ์ธ๊ฒ์ฝ์์ ์กฐํ๋ ์จ์ฒด์ธ ๋ฐ์ดํฐ ์์ด ์์ ์ ํํด์ฃผ์ธ์", | |
"[6๋จ๊ณ] 23. ์์ฅ ๊ฑฐ๋์๊ฐ ์์ ๊ฒฝ์ฐ ์์ฅ๊ฐ ๋๋น ํ์ฌ ์์ธ๋ฅผ ์ ํํด ์ฃผ์ธ์", | |
"[6๋จ๊ณ] 24. ์์ฅ๋์ด ์๋ ๊ฑฐ๋์๋ฅผ ์ ํํด์ฃผ์ธ์", | |
"[7๋จ๊ณ] 25. ์ง๋ 52์ฃผ ๊ธฐ์ค ์จ์ฒด์ธ ์ฑ ํธ์ ํธ๋์ญ์ ์ถ์ธ๋ฅผ ์ ํํด์ฃผ์ธ์", | |
"[7๋จ๊ณ] 26. ํ๋ซํผ ์ด์ฉ์ ์ด๋, (ํ๋ซํผ ์ด์ฉ์ ์ + )์จ์ฒด์ธ ํ๋ ์(=์ง๊ฐ์)์ ์ ํํด์ฃผ์ธ์ ", | |
"[7๋จ๊ณ] 27. ๋ก๋๋งต ๋ฐ ํ์คํ ๋ฆฌ ๊ณต๊ฐ ์์ค์ ์ ํํด์ฃผ์ธ์ ", | |
"[7๋จ๊ณ] 28. ๋ก๋๋งต ๋ฌ์ฑ ์์ค์ ์ ํํด์ฃผ์ธ์ ", | |
"[8๋จ๊ณ] 29. ์ฌ๋จ ๋ฐ ์ด์์ฌ(์ง๋ฐฐ๊ตฌ์กฐ ํฌํจ)์ ํํ๋ฅผ ์ ํํด ์ฃผ์ธ์", | |
"[8๋จ๊ณ] 30. ๊ฒฝ์์ง์ ํฌํจํ ํต์ฌ์ธ๋ ฅ์ ์ ๋ฌธ์ฑ ๋๋ ์ํฅ๋ ฅ ์์ค์ ์ ํํด์ฃผ์ธ์ ", | |
"[8๋จ๊ณ] 31. Cash runway(์ฌ๋จ์ ํ๊ธ์ ๋์ฑ ๋๋ ์ฌ๋ฌด๊ฑด์ ์ฑ์ ๊ธฐ์ค์ผ๋ก ์ฌ์ ์ง์ ๊ฐ๋ฅ๊ธฐ๊ฐ)๋ ์ด๋ป๊ฒ ๋๋์?", | |
"[8๋จ๊ณ] 32. ํ ํฐ ์ ํต๊ด๋ จ ํฌ์์ ๋ณดํธ๋ฅผ ์ํ ์ค๋น์ํ๋ฅผ ์ ํํด์ฃผ์ธ์." | |
] | |
options = [["๋ค", "์๋์ค"], | |
["30% ์ดํ", "31~69%์ดํ", "70% ์ด์"], | |
["2๋ ์ด์", "1๋ ๋ฏธ๋ง", "6๊ฐ์ ๋ฏธ๋ง"], | |
["๋ค", "์๋์ค"], | |
["๋ค", "์๋์ค"], | |
["์ค๋ฒ๊ด๋ฆฌํ(๋ณํธ์ฌ ๊ณ ์ฉ) ๋ณด์ (์ ํ)", "์ค๋ฒํ๋ก์ธ์ค ๋ฐ ์์ฒด ๋ฉ๋ด์ผ ๋ณด์ ๋๋ ์ ๊ธฐ์ ์ผ๋ก ๋ฒ๋ฅ ์๋ฌธ์ ๋ฐ๊ณ ์์(์ ํ)", "๋ฒ๋ฅ ์๋ฌธ์ ๋ฐ์ ์ด๋ ฅ ์์(์ ํ)", "์์"], | |
["์ปค๋ฎค๋ํฐ ์ธ์์ ํฉ 5๋ง ์ด์", "์ปค๋ฎค๋ํฐ ์ธ์์ ํฉ 1๋ง ์ด์", "์ปค๋ฎค๋ํฐ ์ธ์์ ํฉ 1์ฒ ์ด์","์ปค๋ฎค๋ํฐ ์ธ์์ ํฉ 1์ฒ ์ดํ"], | |
["๊ธ๋ก๋ฒ ์์ ์ธ๋ก ๋ฐ ๋ฏธ๋์ด ๋ด์ค์ ๋ ธ์ถ๋์์ต๋๋ค", "๊ตญ๋ด ๋ํ ์ธ๋ก ๋ฐ ๋ฏธ๋์ด ๋ด์ค์ ๋ ธ์ถ๋์์ต๋๋ค", "๊ตญ๋ด ์ค์ํ ์ผ๋ฐ ์ธ๋ก ๋ณด๋์๋ฃ์ ๋ ธ์ถ๋์์ต๋๋ค","๋ ธ์ถ๋์ง ์์ต๋๋ค"], | |
["์ง์์ ์ด๊ณ ์ ๊ธฐ์ ์ธ ์จ์คํ ๋ง์ผํ ์งํ ","๊ฐํ์ ๋ง์ผํ ์คํ ์์ค: ๋ฐ์ ํฌํจ ์จ์คํ ๋ง์ผํ ์งํ","๋ง์ผํ ์คํ ์ด๋ ฅ์์"], | |
["๊ธ๋ก๋ฒ ์์ค","๋ก์ปฌ ํ ์์ค","๋ก์ปฌ ์ผ๋ฐ ์์ค"], | |
["์์ฒด๊ฐ๋ฐํ ์ง๊ฐ์ ๋ณด์ ํ๊ณ ์์ผ๋ฉฐ ์๋น์ค ์ค์ ๋๋ค ","์ธ๋ถ๊ฐ๋ฐํ ์ง๊ฐ์ ๋ณด์ ํ๊ณ ์์ผ๋ฉฐ ์๋น์ค ์ค์ ๋๋ค ","์ง๊ฐ ์๋น์ค๋ฅผ ํ๊ณ ์์ง ์์ต๋๋ค"], | |
["๋ณต์(3์ข ์ด์) ์ฒด์ธ์ ์ง์ํ๊ณ ์ง์ API ๋๋ ๋ธ๋ฆฟ์ง๊ฐ ๊ณต๊ฐ๋์ด ์์ต๋๋ค ","๋ณต์(2์ข ์ด์) ์ฒด์ธ์ ์ง์ ๋ฐ ๋ธ๋ฆฟ์ง๊ฐ ์ฐ๊ฒฐ๋์ด ์์ต๋๋ค","๋จ์ผ ์ฒด์ธ๋ง ์ง์ํฉ๋๋ค"], | |
["๋ค ", "์๋์ค"], | |
["๋ฑ๋ก ์๋ฃ๋ ํนํ๋ฅผ ๋ณด์ ํ๊ณ ์์ต๋๋ค ","ํนํ๋ฅผ ๋ฐ๋ ์ ์ฐจ๋ฅผ ์งํ์ค์ ๋๋ค (์ถ์ ์ค)", "์์"], | |
["๊ฒฝ๋ ฅ ํ๋กํ ๊ธฐ์ค ๋ฐ์ฌ ๋ฐ ๊ธฐ์ ์ฌ ์๊ฒฉ ์ธ๋ ฅ์ด ์์ต๋๋ค.", "๋ฐ์ฌ๊ธ์ ์๋์ง๋ง ์์ฌ๊ธ ์์ค, ๊ด๋ จ ๊ฒฝ๋ ฅ 10๋ ์ด์์ ๊ฒฝ๋ ฅ์๊ฐ ์์ต๋๋ค","๊ด๋ จ๋ถ์ผ ๊ฒฝ๋ ฅ 10๋ ๋ฏธ๋ง์ ์ผ๋ฐ์ ์ธ ์์ค์ ๊ฒฝ๋ ฅ์๊ฐ ์์ต๋๋ค"], | |
["ํ๋ซํผ/์๋น์ค ์ด์ฉ๊ธฐ๊ฐ์ด 1๋ ์ด์ ์ ๋๋ค ","ํ๋ซํผ/์๋น์ค ์ด์ฉ๊ธฐ๊ฐ์ด 1๋ ๋ฏธ๋ง ์ ๋๋ค","ํ๋ซํผ/์๋น์ค ์ด์ฉ๊ธฐ๊ฐ์ด 6๊ฐ์ ๋ฏธ๋ง ์ ๋๋ค"], | |
["๊ธ๋ก๋ฒTOP ์์ค.์ฌ๋ก์ฐ๋ฏธ์คํธ/์จํฑ ๋ฑ ์์30% ๊ธฐ๊ด์ ํตํ ํ๊ฐ๋ฅผ ๋ฐ์์ต๋๋ค ","์ผ๋ฐ์์ค์ ๋ณด์๊ฐ์ฌ๊ธฐ๊ด์ ํตํ ํ๊ฐ๋ฅผ ๋ฐ์์ต๋๋ค","๋ณด์๊ฐ์ฌ์๊ฐ ์์ต๋๋ค."], | |
["๋ณด์๊ฐ์ฌ์ ์ฒด ํํ์ด์ง, ์ฝ์ธ๋ง์ผ๊ฐญ ๋ฑ ์ฌ์ดํธ์์ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค ","๊ณต๊ฐ๋์ด ์์ง ์์ต๋๋ค"], | |
["๋ค ","์๋์ค"], | |
["๋ค ", "์๋์ค"], | |
["๋ด๋ถ ์ง์ ์ค CISO ๋ฑ๋ก๋ ์์์ด ์๋ค ","๋ด๋ถ ์ง์ ์ค ๊ฐ์ธ์ ๋ณด๋ณดํธ๋ฅผ ์ํ ๊ด๋ฆฌ์๊ฐ ์๋ค", "์์"], | |
["์จ์ฒด์ธ ๋ฐ์ดํฐ ์ ๋ํ๋ ์งํ์์ ์์ด์์ 500์ ์ด๋ด์ธ๊ฐ?(์ ํ) ","์จ์ฒด์ธ ๋ฐ์ดํฐ ์ ๋ํ๋์ ๋ํ๋ ์งํ์์ ์์ด์์ 500์ ์ด์ 1,000์ ๋ฏธ๋ง์ธ๊ฐ?(์ ํ)","์จ์ฒด์ธ ๋ฐ์ดํฐ ์ ๋ํ๋ ์งํ์์ ์์ด์์ 1,000์ ์ด์ 5,000์ ๋ฏธ๋ง์ธ๊ฐ?(์ ํ)","์จ์ฒด์ธ ๋ฐ์ดํฐ ์ ๋ํ๋ ์งํ์์ ์์ด์์ 5,000์ ์ด๊ณผ(๋๋ ๋ฏธํ์)์ธ๊ฐ?(์ ํ)","์ฝ์ธ๋ง์ผ๊ฐญ, ์ฝ์ธ๊ฒ์ฝ ์ธ ๋ค๋ฅธ ๊ณณ(DEX ํฌํจ)์์ ์จ์ฒด์ธ ๋ฐ์ดํฐ ์์ด ์์๋ฅผ ํ์ธํ ์ ์์ต๋๋ค","์์"], | |
["์์ฅ๊ฐ ๊ธฐ์ค 31% ์ด์ ์์น ์ ์ง(๊ฑฐ๋์๋ณต์์ ์ต๋๊ฑฐ๋๋ ๊ฑฐ๋์ ๊ธฐ์ค) ","์์ฅ๊ฐ ๊ธฐ์ค -30~+30% ์ ์ง(๊ฑฐ๋์๋ณต์์ ์ต๋๊ฑฐ๋๋ ๊ฑฐ๋์ ๊ธฐ์ค)","์์ฅ๊ฐ ๊ธฐ์ค -31% ์ด์ ํ๋ฝ(๊ฑฐ๋์๋ณต์์ ์ต๋๊ฑฐ๋๋ ๊ฑฐ๋์ ๊ธฐ์ค)"], | |
["์ ๋ฌผ/์๊ตฌ ๋ง์ผ์ ๋ฑ๋ก๋์ด ์์ต๋๋ค ","FIAT ๋ง์ผ(1๊ฐ ๊ธฐ์ค) ํฌํจ 10๊ฐ ๋ฏธ๋ง์ ํ๋ฌผ ๋ง์ผ์ ๋ฑ๋ก๋์ด ์์ต๋๋ค","์ค์ํ ๊ฑฐ๋์์ ๋ฑ๋ก๋์ด ์์ต๋๋ค","DEX ๊ฑฐ๋์์ ๋ฑ๋ก๋์ด ์์ต๋๋ค"], | |
["์ง๋ 52์ฃผ๊ฐ ์์น์ถ์ธ์ ํ๋ฆ์ ๋ณด์ด๊ณ ์์ต๋๋ค ","์ง๋ 52์ฃผ๊ฐ ์ผ์ ํ ์์ค์ ํ๋ฆ์ ๋ณด์ด๊ณ ์์ต๋๋ค","์ง๋ 52์ฃผ๊ฐ ํ๋ฝ์ถ์ธ์ ํ๋ฆ์ ๋ณด์ด๊ณ ์์ต๋๋ค"], | |
["100,000 ์ด์์ ๋๋ค ","50,000 ์ด์ 100,000 ๋ฏธ๋ง์ ๋๋ค","10,000 ์ด์ 50,000 ๋ฏธ๋ง์ ๋๋ค","1,000 ์ด์ 10,000๋ช ๋ฏธ๋ง์ ๋๋ค","1,000 ๋ฏธ๋ง์ ๋๋ค"], | |
["์ฝ์ธ๋ง์ผ์บก ๋๋ ์ฝ์ธ๊ฒ์ฝ ๋ฑ์ ๊ณต๊ฐํ๊ณ ์์ต๋๋ค ","์์ฒด์ปค๋ฎค๋ํฐ์ ํ์คํ ๋ฆฌ๋ฅผ ๊ณต๊ฐํ๊ณ ์์ต๋๋ค","ํํ์ด์ง ๋๋ ๋ฐฑ์์์๋ง ํ์คํ ๋ฆฌ๋ฅผ ๊ณต๊ฐํ๊ณ ์์ต๋๋ค"], | |
["๋ง์ผ์คํค ๋ฌ์ฑ 70% ์ด์์ ๋ฌ์ฑ ์ค์ ๋๋ค ","๋ง์ผ์คํค ๋ฌ์ฑ 20% ์ด์ 70% ๋ฏธ๋ง์ ๋ฌ์ฑ ์ค์ ๋๋ค","๋ง์ผ์คํค ๋ฌ์ฑ 20% ๋ฏธ๋ง์ ๋ฌ์ฑ ์ค์ ๋๋ค"], | |
["์ฌ๋จ ๋ฐ ์ด์ฉ์ฌ(์ง๋ฐฐ๊ตฌ์กฐ ํฌํจ)์ด IPO(์์ฅ) ๋ฒ์ธ ","์ฌ๋จ ๋ฐ ์ด์ฉ์ฌ(์ง๋ฐฐ๊ตฌ์กฐ ํฌํจ)์ด ์ธ๊ฐ ๋๋ ๋ฒ๋ฅ ๋ฑ๋ก(์, ์ ์๊ธ์ต์ ์, VASP ๋ฑ)๋ฒ์ธ","์ฌ๋จ ๋ฐ ์ด์ฉ์ฌ(์ง๋ฐฐ๊ตฌ์กฐ ํฌํจ)์ด ์ผ๋ฐ ๋ฒ์ธ"], | |
["๊ธ๋ก๋ฒ ์์ค์ ๋ฐ์ด๋ ์ ๋ฌธ์ฑ๊ณผ ์ํฅ๋ ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค ","๋ก์ปฌ ์์ค์ ์ ๋ฌธ์ฑ๊ณผ ์ํฅ๋ ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค"], | |
["1๋ ์ด์ ","1๋ ์ด๋ด","6๊ฐ์ ์ด๋ด"], | |
["์ธ๋ถ ์์น(์ปค์คํฐ๋) ์ ์ฉ & ์ฌ๋จ ๋ฝ์ ์คํ ์ดํน & ๋น ํ๋ ๋ฝ์ ์คํ ์ดํน", "์ฌ๋จ ๋ฝ์ & ๋น ํ๋ ๋ฝ์ ์คํ ์ดํน์ ํ๊ณ ์์ต๋๋ค", "์ฌ๋จ ๋ฝ์ ๋๋ ๋น ํ๋ ๋ฝ์ ์คํ ์ดํน๋ฏผ ํ๊ณ ์์ต๋๋ค", "ํด๋น์ฌํญ ์์ต๋๋ค"] | |
] | |
scores = [[1, 0], | |
[3, 2, 1], | |
[2, 1.5, 1], | |
[1, 0], | |
[1, 0], | |
[3, 2, 1, 0], | |
[3, 2, 1, 0], | |
[3, 2, 1, 0], | |
[2, 1, 0], | |
[3, 2, 1], | |
[2, 1, 0], | |
[3, 2, 1], | |
[1, 0], | |
[2, 1, 0], | |
[3, 2, 1], | |
[2, 1, 0], | |
[2, 1, 0], | |
[1, 0], | |
[1, 0], | |
[1, 0], | |
[2, 1, 0], | |
[3, 2.5, 2, 1.5, 1, 0], | |
[3, 2, 1], | |
[4, 3, 2, 1], | |
[1, 0.5, 0], | |
[5, 4, 3, 2, 1], | |
[1.5, 1, 0.5], | |
[1.5, 1, 0.5], | |
[3, 2, 1], | |
[2, 1], | |
[3, 2, 1], | |
[3, 2, 1, 0] | |
] | |
def calculate_score(project_info, answers): | |
total_score = 0 | |
for i, answer in enumerate(answers): | |
if answer is not None: | |
try: | |
answer_index = options[i].index(answer) | |
total_score += scores[i][answer_index] | |
except ValueError: | |
print(f"Invalid answer: {answer} for question {i+1}") | |
else: | |
print(f"No answer for question {i+1}, assigning score of 0.") | |
grade, definition = get_grade(total_score) | |
# Zapier Webhook์ผ๋ก ๋ฐ์ดํฐ ์ ์ก | |
webhook_url = "https://hooks.zapier.com/hooks/catch/14523965/3egrs04/" | |
data = { | |
"project_name": project_info[0], | |
"contact_name": project_info[1], | |
"contact_email": project_info[2], | |
"contact_phone": project_info[3], | |
"responses": answers # ์ฌ์ฉ์์ ์๋ต๋ค | |
} | |
response = requests.post(webhook_url, json=data) | |
if response.status_code == 200: | |
print("Data sent to Zapier successfully.") | |
else: | |
print(f"Failed to send data to Zapier. Status code: {response.status_code}, Response: {response.text}") | |
return total_score, grade, definition | |
def get_grade(total_score): | |
converted_score = (total_score) | |
grades = { | |
'A': (65.7, 73, "๋งค์ฐ ์ํธํ ํ๋ก์ ํธ ์ํ ์ญ๋๊ณผ ์งํ์ ๋ณด์ด๊ณ ์์ผ๋ฉฐ ํฅํ ๋ฐ์ ๊ฐ๋ฅ์ฑ๊ณผ ์ง์์ฑ ์ญ์ ๋์ ๊ฒ์ผ๋ก ํ๊ฐ๋ฉ๋๋ค.๋์ธ์ ์ธ ํ๊ฒฝ ๋ณํ์๋ ์ ์ฐํ ๋์๊ณผ ๋ณต์๋ ฅ์ ๋ณด์ ํ๊ณ ์๋ ๊ฒ์ผ๋ก ํ๋จ๋ฉ๋๋ค."), | |
'B': (51.1, 65.6, "ํ๋ก์ ํธ ์ํ ์ญ๋๊ณผ ์งํ์ด ์ ๊ณ ํ๊ท ์์ค์ผ๋ก ๋ชฉํ๋ฌ์ฑ ๋ฅ๋ ฅ์ด ์๊ณ ๋ฌธ์ ํด๊ฒฐ ๋ฅ๋ ฅ์ด ์๋ ๊ฒ์ผ๋ก ํ๋จ๋ฉ๋๋ค. ์ ์ ํ ์ด๋๋ฐ์ด์ ์ ์ญ๋ ์กฐ์ฑ์ ๊ฐํํ๋ค๋ฉด ๋ณด๋ค ๋ฐ์ ์ ์ธ ์ํฉ์ผ๋ก ํ๋ก์ ํธ ์ํ์ด ๊ฐ๋ฅํ ๊ฒ์ผ๋ก ํ๋จ๋ฉ๋๋ค."), | |
'C': (29.2, 51, "ํ๋ก์ ํธ์ ๊ธฐ์ ์ ํ๋น์ฑ ๋ฐ ๋น์ฆ๋์ค ๋ชจ๋ธํ๊ฐ์์ ๋ฏธํกํ ํจ์๊ฐ ์กด์ฌํฉ๋๋ค. ํ์ฌ ํ๋ก์ ํธ ์ํ์ ๊ฐ๋ฅํ๋ ์ํ์ฑ์ด ์กด์ฌํฉ๋๋ค. ๋ถ์กฑํ ๋ถ๋ถ์ ๋ํ ๋ณด์๊ณผ ์ปจ์คํ ์ด ํ์ํฉ๋๋ค."), | |
'D': (21.9, 29.1, "ํ๋ก์ ํธ์ ์์์ ๊ฐ๋ฅํ๋ ์ฌ๋ฌ ์ํ ์์๊ฐ ์ฐ์ฌ๋์ด ์๊ธฐ์ ์ํ์ด ์ฌ์ค์ ๋ถ๊ฐ๋ฅํ ์์ค์ผ๋ก ํ๋จ๋ฉ๋๋ค. ๋ณด๋ค ๊ทผ๋ณธ์ ์ธ ๊ฒํ ๊ฐ ํ์ํ ๊ฒ์ผ๋ก ํ๋จ๋ฉ๋๋ค. ์์ฅ์ ์ํ ์ปจ์คํ ์ด ๋ฐ๋์ ํ์ํฉ๋๋ค."), | |
'F': (0, 21.8, "ํ๋ก์ ํธ์ ์์์ ๊ฐ๋ฅํ๋ ์ฌ๋ฌ ์ํ ์์๊ฐ ์ฐ์ฌ๋์ด ์๊ธฐ์ ์ํ์ด ์ฌ์ค์ ๋ถ๊ฐ๋ฅํ ์์ค์ผ๋ก ํ๋จ๋ฉ๋๋ค. ๋ณด๋ค ๊ทผ๋ณธ์ ์ธ ๊ฒํ ๊ฐ ํ์ํ ๊ฒ์ผ๋ก ํ๋จ๋ฉ๋๋ค. ์์ฅ์ ์ํ ์ปจ์คํ ์ด ๋ฐ๋์ ํ์ํฉ๋๋ค.") | |
} | |
for grade, (low, high, definition) in grades.items(): | |
if low <= converted_score <= high: | |
return grade, definition | |
return "No Grade", "" | |
# Powered by arxivgpt | |
css = """ | |
footer { | |
visibility: hidden; | |
} | |
/* ๋ฒํผ ์คํ์ผ๋ง */ | |
button { | |
background: linear-gradient(135deg, #007BFF, #004085); | |
border: none; | |
color: white; | |
padding: 10px 20px; | |
text-align: center; | |
display: inline-block; | |
font-size: 16px; | |
border-radius: 5px; | |
cursor: pointer; | |
transition: background 0.5s ease; | |
} | |
button:hover { | |
background: linear-gradient(135deg, #0056b3, #002752); | |
} | |
/* ํญ ์๊น ๋ณ๊ฒฝ์ ์ํ CSS */ | |
/* ํญ ๋ฒํผ ์คํ์ผ */ | |
.tab-container .tab { | |
background-color: #f0f0f0; /* ์ฐํ ํ์์ผ๋ก ๋ฐฐ๊ฒฝ์ ๋ณ๊ฒฝ */ | |
color: #333; /* ๊ธ์์ ๋ณ๊ฒฝ */ | |
} | |
/* ์ ํ๋ ํญ ์คํ์ผ */ | |
.tab-container .tab.selected { | |
background-color: #d9d9d9; /* ์ ํ๋ ํญ์ ๋ฐฐ๊ฒฝ์์ ๋ ์ด๋์ด ํ์์ผ๋ก ๋ณ๊ฒฝ */ | |
color: #000; /* ์ ํ๋ ํญ์ ๊ธ์์์ ๊ฒ์ ์์ผ๋ก ๋ณ๊ฒฝ */ | |
border-bottom: 2px solid #007BFF; /* ์ ํ๋ ํญ์ ํ๋จ ํ ๋๋ฆฌ ์คํ์ผ */ | |
} | |
/* ํญ ์ปจํ ์ธ ์์ญ ์คํ์ผ */ | |
.tab-content { | |
border: 1px solid #dcdcdc; /* ํญ ์ปจํ ์ธ ์์ญ์ ํ ๋๋ฆฌ ์์ */ | |
background-color: #f9f9f9; /* ํญ ์ปจํ ์ธ ์์ญ์ ๋ฐฐ๊ฒฝ์ */ | |
} | |
/* ์ ๋ ฅ ํผ ๋ฐ ์ถ๋ ฅ ํผ ์คํ์ผ๋ง */ | |
.input, .output { | |
box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2); /* ์ ์ฒด๊ฐ์ ์ฃผ๋ ๊ทธ๋ฆผ์ ์ถ๊ฐ */ | |
border: 2px solid #17a2b8; /* ์ปฌ๋ฌ ํ ๋๋ฆฌ ์ ์ฉ */ | |
border-radius: 5px; /* ํ ๋๋ฆฌ ๋ฅ๊ธ๊ฒ */ | |
} | |
.input:hover, .output:hover { | |
box-shadow: 0 8px 16px 0 rgba(0, 0, 0, 0.2); /* ํธ๋ฒ ์ ๋ ํฐ ๊ทธ๋ฆผ์ ํจ๊ณผ */ | |
} | |
/* ํ์ดํ๊ณผ ์ค๋ช ๊ธ ๊ฐ์ด๋ฐ ์ ๋ ฌ ์ถ๊ฐ */ | |
.markdown { | |
text-align: center; /* ํ ์คํธ๋ฅผ ๊ฐ์ด๋ฐ ์ ๋ ฌ */ | |
} | |
/* ๊ฒฐ๊ณผ ์ถ๋ ฅ ์ปดํฌ๋ํธ์ ๊ธ์ ํฌ๊ธฐ 3๋ฐฐ๋ก ์กฐ์ */ | |
.output { | |
font-size: 300%; /* ๊ธฐ๋ณธ ๊ธ์ ํฌ๊ธฐ์ 2๋ฐฐ */ | |
} | |
/* ํญ ํด๋ฆญ ์ ๋๋ฆฐ ํญ์ ์ ์ฉ๋ ์คํ์ผ */ | |
.tab_button.selected { | |
background-color: #007BFF; /* ์ ํ๋ ํญ์ ๋ฐฐ๊ฒฝ์์ ๋ณ๊ฒฝ */ | |
color: white; /* ์ ํ๋ ํญ์ ๊ธ์์์ ๋ณ๊ฒฝ */ | |
border-bottom: 2px solid #007BFF; /* ์ ํ๋ ํญ ํ๋จ์ ํ ๋๋ฆฌ ์ถ๊ฐ */ | |
} | |
""" | |
with gr.Blocks(css=css, title="์ฝ๋ ์ดํ ์ ํ ์ง๋จ ์๋น์ค") as demo: | |
gr.Markdown("# ์ฝ๋ ์ดํ (KORating) ์ ํ ์ง๋จ ์๋น์ค", elem_id="title") | |
gr.Markdown("### ๋์งํธ์์ฐ ์ธ์ฆํ๊ฐ์ ๋ฆฌ๋ '์ฝ๋ ์ดํ '(KORating) ์ ํ ์ง๋จ ์๋น์ค๋, ํฌ์์ ๋ณดํธ ๋ฐ ๊ฑด์ ํ ๊ฐ์์์ฐ ์ํ๊ณ ๊ตฌ์ถ์ ์ง์ํฉ๋๋ค.", elem_id="description1") | |
gr.Markdown("### ๊ธฐ๋ณธ ์ ๋ณด ์ ๋ ฅ ํ ์ด 8๋จ๊ณ TAP(1๋จ๊ณ ~ ์ต์ข 8๋จ๊ณ๊น์ง) ํด๋ฆญ ํ ์ ๋ ฅ ๋ฐ๋๋๋ค. *๋ฐ๋์ ๋ชจ๋ ์ง๋ฌธ ํญ๋ชฉ์ ์ฒดํฌ(์๋ต ํด์ผ๋ง ์๋ฌ์์ด ๊ฒฐ๊ณผ๊ฐ ์ถ๋ ฅ๋ฉ๋๋ค.", elem_id="description2") | |
with gr.Tab("์ง๋จ ๊ธฐ๋ณธ ์ ๋ณด ์ ๋ ฅ"): | |
project_name = gr.Textbox(label="ํ๋ก์ ํธ๋ช ") | |
contact_name = gr.Textbox(label="๋ด๋น์ ์ฑ๋ช ") | |
contact_phone = gr.Textbox(label="์ฐ๋ฝ์ฒ") | |
contact_email = gr.Textbox(label="์ด๋ฉ์ผ ์ฃผ์") | |
with gr.Tab("1๋จ๊ณ"): | |
answer1 = gr.Radio(choices=options[0], label=questions[0]) | |
answer2 = gr.Radio(choices=options[1], label=questions[1]) | |
answer3 = gr.Radio(choices=options[2], label=questions[2]) | |
answer4 = gr.Radio(choices=options[3], label=questions[3]) | |
with gr.Tab("2๋จ๊ณ"): | |
answer5 = gr.Radio(choices=options[4], label=questions[4]) | |
answer6 = gr.Radio(choices=options[5], label=questions[5]) | |
answer7 = gr.Radio(choices=options[6], label=questions[6]) | |
answer8 = gr.Radio(choices=options[7], label=questions[7]) | |
with gr.Tab("3๋จ๊ณ"): | |
answer9 = gr.Radio(choices=options[8], label=questions[8]) | |
answer10 = gr.Radio(choices=options[9], label=questions[9]) | |
answer11 = gr.Radio(choices=options[10], label=questions[10]) | |
answer12 = gr.Radio(choices=options[11], label=questions[11]) | |
with gr.Tab("4๋จ๊ณ"): | |
answer13 = gr.Radio(choices=options[12], label=questions[12]) | |
answer14 = gr.Radio(choices=options[13], label=questions[13]) | |
answer15 = gr.Radio(choices=options[14], label=questions[14]) | |
answer16 = gr.Radio(choices=options[15], label=questions[15]) | |
with gr.Tab("5๋จ๊ณ"): | |
answer17 = gr.Radio(choices=options[16], label=questions[16]) | |
answer18 = gr.Radio(choices=options[17], label=questions[17]) | |
answer19 = gr.Radio(choices=options[18], label=questions[18]) | |
answer20 = gr.Radio(choices=options[19], label=questions[19]) | |
with gr.Tab("6๋จ๊ณ"): | |
answer21 = gr.Radio(choices=options[20], label=questions[20]) | |
answer22 = gr.Radio(choices=options[21], label=questions[21]) | |
answer23 = gr.Radio(choices=options[22], label=questions[22]) | |
answer24 = gr.Radio(choices=options[23], label=questions[23]) | |
with gr.Tab("7๋จ๊ณ"): | |
answer25 = gr.Radio(choices=options[24], label=questions[24]) | |
answer26 = gr.Radio(choices=options[25], label=questions[25]) | |
answer27 = gr.Radio(choices=options[26], label=questions[26]) | |
answer28 = gr.Radio(choices=options[27], label=questions[27]) | |
with gr.Tab("8๋จ๊ณ/ ์ต์ข "): | |
answer29 = gr.Radio(choices=options[28], label=questions[28]) | |
answer30 = gr.Radio(choices=options[29], label=questions[29]) | |
answer31 = gr.Radio(choices=options[30], label=questions[30]) | |
answer32 = gr.Radio(choices=options[31], label=questions[31]) | |
submit_btn = gr.Button("์ ํ ์ง๋จ ์๋น์ค ๊ฒฐ๊ณผ ๋ณด๊ธฐ") | |
score_output = gr.Number(label="์ด์ (73์ ๋ง์ )") | |
grade_output = gr.Text(label="๋ฑ๊ธ") | |
definition_output = gr.Textbox(label="๋ฑ๊ธ ์ ์: ์ ํ์ง๋จ ๊ฒฐ๊ณผ๋ ์ดค์ํ์ ํญ๋ชฉ์ ์ฌ์ฉ์์ ์์์ ๋ต๋ณ์ ๊ธฐ๋ฐํ ๊ฒฐ๊ณผ์ ๋๋ค. ๋ฐ๋ผ์ ๋ณธ ๊ฒฐ๊ณผ๋ ์ฝ๋ ์ดํ ์ ๊ณต์ ํ๊ฐ ๊ฒฐ๊ณผ๊ฐ ์๋์ ์๋ ค๋๋ฆฝ๋๋ค.") | |
submit_btn.click( | |
fn=lambda project_name, contact_name, contact_phone, contact_email, *answers: calculate_score([project_name, contact_name, contact_phone, contact_email], answers), | |
inputs=[project_name, contact_name, contact_phone, contact_email] + [answer1, answer2, answer3, answer4, answer5, answer6, answer7, answer8, answer9, answer10, answer11, answer12, answer13, answer14, answer15, answer16, answer17, answer18, answer19, answer20, answer21, answer22, answer23, answer24, answer25, answer26, answer27, answer28, answer29, answer30, answer31, answer32], | |
outputs=[score_output, grade_output, definition_output] | |
) | |
demo.launch() | |