Update app.py
Browse files
app.py
CHANGED
|
@@ -177,18 +177,48 @@ def analyze_code(code: str) -> str:
|
|
| 177 |
"""์ฝ๋ ๋ถ์ ๊ฒฐ๊ณผ๋ฅผ HTML ํ์์ผ๋ก ๋ฐํ"""
|
| 178 |
analysis = []
|
| 179 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 180 |
# 1. ์ฌ์ฉ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ถ์
|
| 181 |
imports = []
|
|
|
|
| 182 |
for line in code.split('\n'):
|
| 183 |
if line.startswith('import ') or line.startswith('from '):
|
| 184 |
imports.append(line.strip())
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 185 |
|
| 186 |
if imports:
|
| 187 |
-
analysis.append("<h2>๐
|
| 188 |
analysis.append("<ul>")
|
| 189 |
for imp in imports:
|
| 190 |
analysis.append(f"<li><code>{imp}</code></li>")
|
| 191 |
analysis.append("</ul>")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 192 |
|
| 193 |
# 2. ํจ์ ๋ถ์
|
| 194 |
functions = []
|
|
@@ -210,11 +240,20 @@ def analyze_code(code: str) -> str:
|
|
| 210 |
current_func = []
|
| 211 |
|
| 212 |
if functions:
|
| 213 |
-
analysis.append("<h2>๐ง ์ฃผ์
|
| 214 |
for func in functions:
|
| 215 |
func_name = func.split('def ')[1].split('(')[0]
|
| 216 |
analysis.append(f"<h3><code>{func_name}</code></h3>")
|
| 217 |
analysis.append(f"<p>{get_function_description(func)}</p>")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 218 |
|
| 219 |
# 3. UI ์ปดํฌ๋ํธ ๋ถ์
|
| 220 |
ui_components = []
|
|
@@ -225,17 +264,32 @@ def analyze_code(code: str) -> str:
|
|
| 225 |
ui_components.append(component)
|
| 226 |
|
| 227 |
if ui_components:
|
| 228 |
-
analysis.append("<h2>๐จ UI
|
|
|
|
| 229 |
analysis.append("<ul>")
|
| 230 |
for component in ui_components:
|
| 231 |
analysis.append(f"<li><strong>{component}</strong>: {get_component_description(component)}</li>")
|
| 232 |
analysis.append("</ul>")
|
| 233 |
|
| 234 |
-
# 4.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 235 |
analysis.append("<h2>โถ๏ธ ์คํ ๋ฐฉ๋ฒ</h2>")
|
| 236 |
analysis.append("<ol>")
|
| 237 |
analysis.append("<li>'์คํํ๊ธฐ' ๋ฒํผ์ ํด๋ฆญํ์ฌ Hugging Face Space์ ๋ฐฐํฌ</li>")
|
| 238 |
analysis.append("<li>์์ฑ๋ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ์ ํ๋ฆฌ์ผ์ด์
์คํ</li>")
|
|
|
|
| 239 |
analysis.append("</ol>")
|
| 240 |
|
| 241 |
return "\n".join(analysis)
|
|
|
|
| 177 |
"""์ฝ๋ ๋ถ์ ๊ฒฐ๊ณผ๋ฅผ HTML ํ์์ผ๋ก ๋ฐํ"""
|
| 178 |
analysis = []
|
| 179 |
|
| 180 |
+
# 0. ์ฝ๋ ๊ฐ์
|
| 181 |
+
analysis.append("<h2>๐ก ์ฝ๋ ๊ฐ์</h2>")
|
| 182 |
+
analysis.append("<p>์ด ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ ํน์ง์ ๊ฐ์ง๊ณ ์์ต๋๋ค:</p>")
|
| 183 |
+
analysis.append("<ul>")
|
| 184 |
+
if 'gr.Blocks' in code:
|
| 185 |
+
analysis.append("<li>Gradio Blocks๋ฅผ ์ฌ์ฉํ ๋ชจ๋ํ UI ๊ตฌ์ฑ</li>")
|
| 186 |
+
if 'theme=' in code:
|
| 187 |
+
analysis.append("<li>์ปค์คํ
ํ
๋ง ์ ์ฉ์ผ๋ก ์๊ฐ์ ์ผ๊ด์ฑ ์ ์ง</li>")
|
| 188 |
+
if 'with gr.Row' in code or 'with gr.Column' in code:
|
| 189 |
+
analysis.append("<li>Row/Column ๋ ์ด์์์ผ๋ก ๋ฐ์ํ ๋์์ธ ๊ตฌํ</li>")
|
| 190 |
+
analysis.append("</ul>")
|
| 191 |
+
|
| 192 |
# 1. ์ฌ์ฉ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ถ์
|
| 193 |
imports = []
|
| 194 |
+
required_packages = set()
|
| 195 |
for line in code.split('\n'):
|
| 196 |
if line.startswith('import ') or line.startswith('from '):
|
| 197 |
imports.append(line.strip())
|
| 198 |
+
# ํจํค์ง ์ด๋ฆ ์ถ์ถ
|
| 199 |
+
if line.startswith('import '):
|
| 200 |
+
package = line.split('import ')[1].split()[0].split('.')[0]
|
| 201 |
+
else:
|
| 202 |
+
package = line.split('from ')[1].split()[0].split('.')[0]
|
| 203 |
+
required_packages.add(package)
|
| 204 |
|
| 205 |
if imports:
|
| 206 |
+
analysis.append("<h2>๐ ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ</h2>")
|
| 207 |
analysis.append("<ul>")
|
| 208 |
for imp in imports:
|
| 209 |
analysis.append(f"<li><code>{imp}</code></li>")
|
| 210 |
analysis.append("</ul>")
|
| 211 |
+
|
| 212 |
+
# requirements.txt ์ค๋ช
์ถ๊ฐ
|
| 213 |
+
analysis.append("<h3>๐ Requirements.txt</h3>")
|
| 214 |
+
analysis.append("<p>์ด ์ฑ์ ์คํํ๊ธฐ ์ํด ํ์ํ ํจํค์ง๋ค์
๋๋ค:</p>")
|
| 215 |
+
analysis.append("<pre>")
|
| 216 |
+
for pkg in sorted(required_packages):
|
| 217 |
+
if pkg == 'gradio':
|
| 218 |
+
analysis.append("gradio==5.5.0")
|
| 219 |
+
else:
|
| 220 |
+
analysis.append(pkg)
|
| 221 |
+
analysis.append("</pre>")
|
| 222 |
|
| 223 |
# 2. ํจ์ ๋ถ์
|
| 224 |
functions = []
|
|
|
|
| 240 |
current_func = []
|
| 241 |
|
| 242 |
if functions:
|
| 243 |
+
analysis.append("<h2>๐ง ์ฃผ์ ํจ์ ์ค๋ช
</h2>")
|
| 244 |
for func in functions:
|
| 245 |
func_name = func.split('def ')[1].split('(')[0]
|
| 246 |
analysis.append(f"<h3><code>{func_name}</code></h3>")
|
| 247 |
analysis.append(f"<p>{get_function_description(func)}</p>")
|
| 248 |
+
# ํจ์ ํ๋ผ๋ฏธํฐ ๋ถ์
|
| 249 |
+
params = func.split('(')[1].split(')')[0]
|
| 250 |
+
if params.strip():
|
| 251 |
+
analysis.append("<p>ํ๋ผ๋ฏธํฐ:</p><ul>")
|
| 252 |
+
for param in params.split(','):
|
| 253 |
+
param = param.strip()
|
| 254 |
+
if param and param != 'self':
|
| 255 |
+
analysis.append(f"<li><code>{param}</code></li>")
|
| 256 |
+
analysis.append("</ul>")
|
| 257 |
|
| 258 |
# 3. UI ์ปดํฌ๋ํธ ๋ถ์
|
| 259 |
ui_components = []
|
|
|
|
| 264 |
ui_components.append(component)
|
| 265 |
|
| 266 |
if ui_components:
|
| 267 |
+
analysis.append("<h2>๐จ UI ๊ตฌ์ฑ์์</h2>")
|
| 268 |
+
analysis.append("<p>์ด ์ฑ์ ๋ค์๊ณผ ๊ฐ์ Gradio ์ปดํฌ๋ํธ๋ค๋ก ๊ตฌ์ฑ๋์ด ์์ต๋๋ค:</p>")
|
| 269 |
analysis.append("<ul>")
|
| 270 |
for component in ui_components:
|
| 271 |
analysis.append(f"<li><strong>{component}</strong>: {get_component_description(component)}</li>")
|
| 272 |
analysis.append("</ul>")
|
| 273 |
|
| 274 |
+
# 4. ํน์ง ๋ฐ ๊ธฐ๋ฅ
|
| 275 |
+
analysis.append("<h2>โจ ์ฃผ์ ํน์ง</h2>")
|
| 276 |
+
analysis.append("<ul>")
|
| 277 |
+
if 'theme=' in code:
|
| 278 |
+
analysis.append("<li>์ปค์คํ
ํ
๋ง ์ ์ฉ์ผ๋ก ์ผ๊ด๋ ๋์์ธ</li>")
|
| 279 |
+
if 'with gr.Row' in code:
|
| 280 |
+
analysis.append("<li>๋ฐ์ํ ๋ ์ด์์์ผ๋ก ๋ค์ํ ํ๋ฉด ํฌ๊ธฐ ์ง์</li>")
|
| 281 |
+
if 'gr.State' in code:
|
| 282 |
+
analysis.append("<li>์ํ ๊ด๋ฆฌ๋ฅผ ํตํ ๋ฐ์ดํฐ ์ ์ง</li>")
|
| 283 |
+
if '.click(' in code:
|
| 284 |
+
analysis.append("<li>์ด๋ฒคํธ ํธ๋ค๋ง์ ํตํ ๋์ ์ํธ์์ฉ</li>")
|
| 285 |
+
analysis.append("</ul>")
|
| 286 |
+
|
| 287 |
+
# 5. ์คํ ๋ฐฉ๋ฒ
|
| 288 |
analysis.append("<h2>โถ๏ธ ์คํ ๋ฐฉ๋ฒ</h2>")
|
| 289 |
analysis.append("<ol>")
|
| 290 |
analysis.append("<li>'์คํํ๊ธฐ' ๋ฒํผ์ ํด๋ฆญํ์ฌ Hugging Face Space์ ๋ฐฐํฌ</li>")
|
| 291 |
analysis.append("<li>์์ฑ๋ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ์ ํ๋ฆฌ์ผ์ด์
์คํ</li>")
|
| 292 |
+
analysis.append("<li>ํ์ํ ์
๋ ฅ๊ฐ์ ์ ๊ณตํ๊ณ ์ํธ์์ฉ ์์</li>")
|
| 293 |
analysis.append("</ol>")
|
| 294 |
|
| 295 |
return "\n".join(analysis)
|