Update app-backup2.py
Browse files- app-backup2.py +25 -49
app-backup2.py
CHANGED
|
@@ -1,28 +1,4 @@
|
|
| 1 |
# -*- coding: utf-8 -*-
|
| 2 |
-
"""
|
| 3 |
-
AI λ΄μ€ & νκΉ
νμ΄μ€ νΈλ λ© LLM λΆμ μΉμ± (μμ ν v3.2)
|
| 4 |
-
νμΌλͺ
: app_advanced.py
|
| 5 |
-
|
| 6 |
-
μ£Όμ κΈ°λ₯:
|
| 7 |
-
1. SQLite DB μꡬ μ€ν 리μ§
|
| 8 |
-
2. AI Times μ€μκ° λ΄μ€ ν¬λ‘€λ§ (2κ° μΉμ
)
|
| 9 |
-
3. μ€μ Hugging Face Trending API μ°λ (λͺ¨λΈ/μ€νμ΄μ€ 30μ)
|
| 10 |
-
4. Fireworks AI (Qwen3-235B) μ€μκ° LLM λΆμ
|
| 11 |
-
- λ΄μ€ μ΄λ±νμ μμ€ λΆμ
|
| 12 |
-
- λͺ¨λΈ μΉ΄λ μλ λΆμ (README.md)
|
| 13 |
-
- μ€νμ΄μ€ μ½λ μλ λΆμ (app.py)
|
| 14 |
-
5. ν UI (λ΄μ€/λͺ¨λΈ/μ€νμ΄μ€)
|
| 15 |
-
|
| 16 |
-
μ€ν λ°©λ²:
|
| 17 |
-
1. pip install Flask requests beautifulsoup4 huggingface_hub
|
| 18 |
-
2. export FIREWORKS_API_KEY="your-api-key-here" # μ νμ¬ν (μμΌλ©΄ ν
νλ¦Ώ λͺ¨λ)
|
| 19 |
-
3. python app_advanced.py
|
| 20 |
-
4. λΈλΌμ°μ μμ http://localhost:7860 μ μ
|
| 21 |
-
|
| 22 |
-
νκ²½λ³μ:
|
| 23 |
-
- FIREWORKS_API_KEY: Fireworks AI API ν€ (μ ν, λ λμ λΆμ)
|
| 24 |
-
- PORT: μλ² ν¬νΈ (κΈ°λ³Έκ°: 7860)
|
| 25 |
-
"""
|
| 26 |
|
| 27 |
from flask import Flask, render_template_string, jsonify, request
|
| 28 |
import requests
|
|
@@ -545,7 +521,7 @@ HTML_TEMPLATE = """
|
|
| 545 |
<body>
|
| 546 |
<div class="container">
|
| 547 |
<h1>π€ AI λ΄μ€ & νκΉ
νμ΄μ€ LLM λΆμ</h1>
|
| 548 |
-
<p class="subtitle"
|
| 549 |
|
| 550 |
<!-- ν΅κ³ μΉ΄λ -->
|
| 551 |
<div class="stats">
|
|
@@ -676,7 +652,7 @@ HTML_TEMPLATE = """
|
|
| 676 |
</div>
|
| 677 |
|
| 678 |
<div class="space-analysis">
|
| 679 |
-
<strong>π
|
| 680 |
{{ space.simple_explanation }}
|
| 681 |
</div>
|
| 682 |
|
|
@@ -1096,32 +1072,32 @@ class LLMAnalyzer:
|
|
| 1096 |
return None
|
| 1097 |
|
| 1098 |
def analyze_news_simple(self, title: str, content: str = "") -> Dict:
|
| 1099 |
-
"""λ΄μ€ κΈ°μ¬λ₯Ό
|
| 1100 |
|
| 1101 |
analysis_templates = {
|
| 1102 |
"μ±GPT": {
|
| 1103 |
-
"summary": "λ§μ΄ν¬λ‘μννΈ(MS)
|
| 1104 |
-
"significance": "
|
| 1105 |
"impact_level": "high",
|
| 1106 |
"impact_text": "λμ",
|
| 1107 |
-
"impact_description": "AI
|
| 1108 |
-
"action": "μ±GPT κ°μ AI λꡬλ₯Ό
|
| 1109 |
},
|
| 1110 |
"GPU": {
|
| 1111 |
-
"summary": "
|
| 1112 |
-
"significance": "
|
| 1113 |
"impact_level": "medium",
|
| 1114 |
"impact_text": "μ€κ°",
|
| 1115 |
-
"impact_description": "AI
|
| 1116 |
-
"action": "
|
| 1117 |
},
|
| 1118 |
"μλΌ": {
|
| 1119 |
-
"summary": "μ€νAI
|
| 1120 |
-
"significance": "
|
| 1121 |
"impact_level": "high",
|
| 1122 |
"impact_text": "λμ",
|
| 1123 |
-
"impact_description": "
|
| 1124 |
-
"action": "
|
| 1125 |
}
|
| 1126 |
}
|
| 1127 |
|
|
@@ -1130,14 +1106,14 @@ class LLMAnalyzer:
|
|
| 1130 |
if keyword.lower() in title.lower():
|
| 1131 |
return template
|
| 1132 |
|
| 1133 |
-
# κΈ°λ³Έ λΆμ
|
| 1134 |
return {
|
| 1135 |
-
"summary": f"'{title}'
|
| 1136 |
-
"significance": "AI
|
| 1137 |
"impact_level": "medium",
|
| 1138 |
"impact_text": "μ€κ°",
|
| 1139 |
-
"impact_description": "AI κΈ°μ μ λ°μ μ
|
| 1140 |
-
"action": "AI
|
| 1141 |
}
|
| 1142 |
|
| 1143 |
def analyze_model(self, model_name: str, task: str, downloads: int) -> str:
|
|
@@ -1152,7 +1128,7 @@ class LLMAnalyzer:
|
|
| 1152 |
messages = [
|
| 1153 |
{
|
| 1154 |
"role": "system",
|
| 1155 |
-
"content": "λΉμ μ
|
| 1156 |
},
|
| 1157 |
{
|
| 1158 |
"role": "user",
|
|
@@ -1160,7 +1136,7 @@ class LLMAnalyzer:
|
|
| 1160 |
|
| 1161 |
{model_card}
|
| 1162 |
|
| 1163 |
-
μ΄ λͺ¨λΈμ
|
| 1164 |
1. μ΄ λͺ¨λΈμ΄ 무μμ νλμ§
|
| 1165 |
2. μ΄λ€ νΉμ§μ΄ μλμ§
|
| 1166 |
3. λκ° μ¬μ©νλ©΄ μ’μμ§
|
|
@@ -1215,7 +1191,7 @@ class LLMAnalyzer:
|
|
| 1215 |
messages = [
|
| 1216 |
{
|
| 1217 |
"role": "system",
|
| 1218 |
-
"content": "λΉμ μ
|
| 1219 |
},
|
| 1220 |
{
|
| 1221 |
"role": "user",
|
|
@@ -1223,7 +1199,7 @@ class LLMAnalyzer:
|
|
| 1223 |
|
| 1224 |
{app_code}
|
| 1225 |
|
| 1226 |
-
μ΄ μ±μ
|
| 1227 |
1. μ΄ μ±μ΄ 무μμ νλμ§
|
| 1228 |
2. μ΄λ€ κΈ°μ μ μ¬μ©νλμ§
|
| 1229 |
3. μ΄λ»κ² νμ©ν μ μλμ§
|
|
@@ -1777,7 +1753,7 @@ if __name__ == '__main__':
|
|
| 1777 |
β¨ μ£Όμ κΈ°λ₯:
|
| 1778 |
β’ πΎ SQLite DB μꡬ μ€ν 리μ§
|
| 1779 |
β’ π AI Times μ€μκ° λ΄μ€ ν¬λ‘€λ§ (2κ° μΉμ
)
|
| 1780 |
-
β’ π° λ΄μ€
|
| 1781 |
β’ π€ νκΉ
νμ΄μ€ νΈλ λ© λͺ¨λΈ TOP 30 (λͺ¨λΈ μΉ΄λ λΆμ)
|
| 1782 |
β’ π νκΉ
νμ΄μ€ νΈλ λ© μ€νμ΄μ€ TOP 30 (app.py λΆμ)
|
| 1783 |
β’ π§ Fireworks AI (Qwen3-235B) μ€μκ° LLM λΆμ
|
|
|
|
| 1 |
# -*- coding: utf-8 -*-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2 |
|
| 3 |
from flask import Flask, render_template_string, jsonify, request
|
| 4 |
import requests
|
|
|
|
| 521 |
<body>
|
| 522 |
<div class="container">
|
| 523 |
<h1>π€ AI λ΄μ€ & νκΉ
νμ΄μ€ LLM λΆμ</h1>
|
| 524 |
+
<p class="subtitle">AI νΈλ λ λΆμ μμ€ν
π</p>
|
| 525 |
|
| 526 |
<!-- ν΅κ³ μΉ΄λ -->
|
| 527 |
<div class="stats">
|
|
|
|
| 652 |
</div>
|
| 653 |
|
| 654 |
<div class="space-analysis">
|
| 655 |
+
<strong>π μ¬μ΄ μ€λͺ
:</strong><br>
|
| 656 |
{{ space.simple_explanation }}
|
| 657 |
</div>
|
| 658 |
|
|
|
|
| 1072 |
return None
|
| 1073 |
|
| 1074 |
def analyze_news_simple(self, title: str, content: str = "") -> Dict:
|
| 1075 |
+
"""λ΄μ€ κΈ°μ¬λ₯Ό μ€κ³ λ±νμ μμ€μΌλ‘ λΆμ"""
|
| 1076 |
|
| 1077 |
analysis_templates = {
|
| 1078 |
"μ±GPT": {
|
| 1079 |
+
"summary": "λ§μ΄ν¬λ‘μννΈ(MS)λ μ±GPTμ νλ°μ μΈ μ¬μ©λ μ¦κ°λ‘ μΈν΄ λ°μ΄ν°μΌν° μ©λμ΄ λΆμ‘±ν μν©μ μ§λ©΄νμ΅λλ€. νμ¬ λ―Έκ΅ λ΄ μ¬λ¬ μ§μμμ 물리μ 곡κ°κ³Ό μλ²κ° λͺ¨λ λΆμ‘±ν μνμ΄λ©°, μ΄λ‘ μΈν΄ λ²μ§λμμ ν
μ¬μ€ λ± ν΅μ¬ μ§μμμλ 2026λ
μλ°κΈ°κΉμ§ μ κ· Azure ν΄λΌμ°λ ꡬλ
μ΄ μ νλ κ²μΌλ‘ μμλ©λλ€. μ΄λ μμ±ν AI μλΉμ€μ κΈκ²©ν μ±μ₯μ΄ κ°μ Έμ¨ μΈνλΌ κ³΅κΈ λ¬Έμ λ₯Ό μ¬μ€ν 보μ¬μ£Όλ μ¬λ‘μ
λλ€.",
|
| 1080 |
+
"significance": "μ΄ λ΄μ€λ AI κΈ°μ μ λμ€ν μλκ° κΈ°μ
λ€μ μμμ ν¨μ¬ λ°μ΄λκ³ μμμ 보μ¬μ€λλ€. MS κ°μ κΈλ‘λ² IT κΈ°μ
λ AI μμλ₯Ό λ°λΌμ‘κΈ° μν΄ κ³ κ΅°λΆν¬νκ³ μμΌλ©°, μ΄λ AIκ° λ¨μν μ νμ΄ μλ μ°μ
μ λ°μ λ³νμν€λ ν΅μ¬ κΈ°μ μμ μ¦λͺ
ν©λλ€.",
|
| 1081 |
"impact_level": "high",
|
| 1082 |
"impact_text": "λμ",
|
| 1083 |
+
"impact_description": "ν΄λΌμ°λ μΈνλΌ λΆμ‘±μ AI μλΉμ€ νμ₯μ μ§μ μ μΈ μν₯μ λ―ΈμΉλ©°, ν₯ν AI κΈ°μ μ κ·Όμ±κ³Ό λΉμ© ꡬ쑰λ₯Ό λ³νμν¬ μ μμ΅λλ€.",
|
| 1084 |
+
"action": "μ±GPTλ Claude κ°μ AI λꡬλ₯Ό νμ©ν νμ΅ λ°©λ²μ μ΅νμΈμ. λ³΄κ³ μ μμ±, μ½λ© νμ΅, μΈκ΅μ΄ κ³΅λΆ λ± λ€μν λΆμΌμμ AIλ₯Ό νμ΅ λ³΄μ‘° λκ΅¬λ‘ μ¬μ©ν μ μμ΅λλ€."
|
| 1085 |
},
|
| 1086 |
"GPU": {
|
| 1087 |
+
"summary": "λ―Έκ΅ μ λΆκ° μλμ미리νΈ(UAE)μ μ΅μ²¨λ¨ AI μΉ©(GPU) μμΆμ μΉμΈνμ΅λλ€. μ΄λ² μΉμΈμ UAE λ΄ λ―Έκ΅ κΈ°μ
μ΄ μ΄μνλ λ°μ΄ν°μΌν°μ νμ λλ©°, μ€νAI μ μ© 5GW κ·λͺ¨ λ°μ΄ν°μΌν° ꡬμΆμ μ¬μ©λ μμ μ
λλ€. GPUλ AI λͺ¨λΈ νμ΅μ νμμ μΈ νλμ¨μ΄λ‘, μλΉλμκ° μμ₯μ μ£Όλνκ³ μμΌλ©° μ΄λ² κ²°μ μΌλ‘ μλΉλμμ μκ°μ΄οΏ½οΏ½μ΄ 5μ‘° λ¬λ¬μ κ·Όμ ν κ²μΌλ‘ μ λ§λ©λλ€.",
|
| 1088 |
+
"significance": "μ΄λ λ―Έκ΅μ AI κΈ°μ μμΆ μ μ±
λ³νλ₯Ό 보μ¬μ£Όλ μ€μν μ νΈμ
λλ€. κΈ°μ ν¨κΆ κ²½μ μμμλ μ λ΅μ λλ§Ήκ΅κ³Όμ νλ ₯μ ν΅ν΄ AI μνκ³λ₯Ό νμ₯νλ €λ λ―Έκ΅μ μλλ₯Ό μΏλ³Ό μ μμ΅λλ€.",
|
| 1089 |
"impact_level": "medium",
|
| 1090 |
"impact_text": "μ€κ°",
|
| 1091 |
+
"impact_description": "AI νλμ¨μ΄ 곡κΈλ§μ μ§μ νμ λ³νλ κΈλ‘λ² AI μ°μ
μ§νλμ μν₯μ λ―ΈμΉ μ μμΌλ©°, νΉν λ°λ체 μ°μ
κ³Ό κ΅μ κ΄κ³μ μ€μν μλ―Έλ₯Ό κ°μ§λλ€.",
|
| 1092 |
+
"action": "μ»΄ν¨ν° νλμ¨μ΄, νΉν GPUμ μλ μ리μ AI νμ΅μμμ μν μ 곡λΆν΄λ³΄μΈμ. λ³λ ¬ μ²λ¦¬, νλ ¬ μ°μ° λ±μ κ°λ
μ μ΄ν΄νλ©΄ AI κΈ°μ μ κ·Όκ°μ νμ
ν μ μμ΅λλ€."
|
| 1093 |
},
|
| 1094 |
"μλΌ": {
|
| 1095 |
+
"summary": "μ€νAIμ AI λμμ μμ± μ± 'μλΌ(Sora)'κ° μΆμ 5μΌ λ§μ 100λ§ λ€μ΄λ‘λλ₯Ό λννμ΅λλ€. μ΄λ μ±GPTλ³΄λ€ λΉ λ₯Έ μ±μ₯ μλμ΄λ©°, μ΄λ μ μ©(invite-only) μ±μμ κ³ λ €νλ©΄ λμ± λλΌμ΄ κΈ°λ‘μ
λλ€. μλΌλ ν
μ€νΈ ν둬ννΈλ§μΌλ‘ κ³ νμ§ λμμμ μμ±ν μ μλ μμ±ν AI λꡬλ‘, λ―Έκ΅κ³Ό μΊλλ€μμ iOS μ μ©μΌλ‘ μΆμλμμ΅λλ€.",
|
| 1096 |
+
"significance": "ν
μ€νΈλ₯Ό μ΄λ―Έμ§λ‘ λ³ννλ κΈ°μ μμ λ λμκ° λμμ μμ±κΉμ§ κ°λ₯ν΄μ§ κ²μ AI κΈ°μ μ μ§νλ₯Ό 보μ¬μ€λλ€. μ½ν
μΈ μ μμ λ―Όμ£Όνκ° κ°μνλκ³ μμΌλ©°, λꡬλ μ½κ² κ³ νμ§ μμμ λ§λ€ μ μλ μλκ° μ΄λ¦¬κ³ μμ΅λλ€.",
|
| 1097 |
"impact_level": "high",
|
| 1098 |
"impact_text": "λμ",
|
| 1099 |
+
"impact_description": "μμ μ μ μ°μ
μ ν¨λ¬λ€μμ΄ λ³ννκ³ μμΌλ©°, κ΅μ‘, λ§μΌν
, μν°ν
μΈλ¨ΌνΈ λ± λ€μν λΆμΌμμ AI λμμ μμ± κΈ°μ μ νμ©μ΄ μ¦κ°ν κ²μΌλ‘ μμλ©λλ€.",
|
| 1100 |
+
"action": "AI λμμ μμ± λꡬμ κ°λ₯μ±κ³Ό νκ³λ₯Ό νꡬν΄λ³΄μΈμ. μ°½μμ μΈ μμ΄λμ΄λ₯Ό μκ°ννλ λ°©λ²μ λ°°μ°κ³ , λμμ λ₯νμ΄ν¬ κ°μ μ
μ© μ¬λ‘μ λν λΉνμ μ¬κ³ λ ν¨μνμΈμ."
|
| 1101 |
}
|
| 1102 |
}
|
| 1103 |
|
|
|
|
| 1106 |
if keyword.lower() in title.lower():
|
| 1107 |
return template
|
| 1108 |
|
| 1109 |
+
# κΈ°λ³Έ λΆμ (μ€κ³ λ±νμ μμ€)
|
| 1110 |
return {
|
| 1111 |
+
"summary": f"'{title}'μ κ΄λ ¨λ μ΅μ AI κΈ°μ λν₯μ
λλ€. μΈκ³΅μ§λ₯ λΆμΌλ λΉ λ₯΄κ² λ°μ νκ³ μμΌλ©°, μ΄λ¬ν κΈ°μ λ³νλ μ°λ¦¬μ μΌμμνκ³Ό λ―Έλ μ§μ
μΈκ³μ ν° μν₯μ λ―ΈμΉ κ²μΌλ‘ μμλ©λλ€. κ΄λ ¨ κΈ°μ μ μ리μ μ¬νμ νκΈν¨κ³Όλ₯Ό ν¨κ» μ΄ν΄νλ κ²μ΄ μ€μν©λλ€.",
|
| 1112 |
+
"significance": "AI κΈ°μ μ λ°μ μ λ¨μν κΈ°μ νμ μ λμ΄ μ¬ν, κ²½μ , μ€λ¦¬μ μΈ‘λ©΄μμ λ€μν λ
Όμλ₯Ό λΆλ¬μΌμΌν€κ³ μμ΅λλ€. μ΄λ¬ν λ³νλ₯Ό μ΄ν΄νκ³ λλΉνλ κ²μ΄ λ―Έλ μΈλμκ² μ€μν μλμ
λλ€.",
|
| 1113 |
"impact_level": "medium",
|
| 1114 |
"impact_text": "μ€κ°",
|
| 1115 |
+
"impact_description": "AI κΈ°μ μ λ°μ μ κ΅μ‘, μ·¨μ
, μ°μ
μ λ°μ κ±Έμ³ κ΅¬μ‘°μ λ³νλ₯Ό κ°μ Έμ¬ κ²μ΄λ©°, μ΄μ λν μ΄ν΄μ μ€λΉκ° νμν©λλ€.",
|
| 1116 |
+
"action": "AI κΈ°μ μ κΈ°λ³Έ μ리λ₯Ό νμ΅νκ³ , κ΄λ ¨ νλ‘κ·Έλλ°(Python λ±)μ΄λ λ°μ΄ν° κ³Όν κΈ°μ΄λ₯Ό 곡λΆν΄λ³΄μΈμ. λν AI μ€λ¦¬μ μ¬νμ μν₯μ λν΄μλ λΉνμ μΌλ‘ μ¬κ³ νλ μ΅κ΄μ κΈ°λ₯΄μΈμ."
|
| 1117 |
}
|
| 1118 |
|
| 1119 |
def analyze_model(self, model_name: str, task: str, downloads: int) -> str:
|
|
|
|
| 1128 |
messages = [
|
| 1129 |
{
|
| 1130 |
"role": "system",
|
| 1131 |
+
"content": "λΉμ μ μ€κ³ λ±νμλ μ΄ν΄ν μ μκ² AI λͺ¨λΈμ μ½κ² μ€λͺ
νλ μ λ¬Έκ°μ
λλ€. νκ΅μ΄λ‘ λ΅λ³νμΈμ."
|
| 1132 |
},
|
| 1133 |
{
|
| 1134 |
"role": "user",
|
|
|
|
| 1136 |
|
| 1137 |
{model_card}
|
| 1138 |
|
| 1139 |
+
μ΄ λͺ¨λΈμ μ€κ³ λ±νμμ΄ μ΄ν΄ν μ μλλ‘ 3-4λ¬Έμ₯μΌλ‘ μ½κ² μ€λͺ
ν΄μ£ΌμΈμ. λ€μ λ΄μ©μ ν¬ν¨νμΈμ:
|
| 1140 |
1. μ΄ λͺ¨λΈμ΄ 무μμ νλμ§
|
| 1141 |
2. μ΄λ€ νΉμ§μ΄ μλμ§
|
| 1142 |
3. λκ° μ¬μ©νλ©΄ μ’μμ§
|
|
|
|
| 1191 |
messages = [
|
| 1192 |
{
|
| 1193 |
"role": "system",
|
| 1194 |
+
"content": "λΉμ μ μ€κ³ λ±νμλ μ΄ν΄ν μ μκ² AI μ ν리μΌμ΄μ
μ μ½κ² μ€λͺ
νλ μ λ¬Έκ°μ
λλ€. νκ΅μ΄λ‘ λ΅λ³νμΈμ."
|
| 1195 |
},
|
| 1196 |
{
|
| 1197 |
"role": "user",
|
|
|
|
| 1199 |
|
| 1200 |
{app_code}
|
| 1201 |
|
| 1202 |
+
μ΄ μ±μ μ€κ³ λ±νμμ΄ μ΄ν΄ν μ μλλ‘ 3-4λ¬Έμ₯μΌλ‘ μ½κ² μ€λͺ
ν΄μ£ΌμΈμ. λ€μ λ΄μ©μ ν¬ν¨νμΈμ:
|
| 1203 |
1. μ΄ μ±μ΄ 무μμ νλμ§
|
| 1204 |
2. μ΄λ€ κΈ°μ μ μ¬μ©νλμ§
|
| 1205 |
3. μ΄λ»κ² νμ©ν μ μλμ§
|
|
|
|
| 1753 |
β¨ μ£Όμ κΈ°λ₯:
|
| 1754 |
β’ πΎ SQLite DB μꡬ μ€ν 리μ§
|
| 1755 |
β’ π AI Times μ€μκ° λ΄μ€ ν¬λ‘€λ§ (2κ° μΉμ
)
|
| 1756 |
+
β’ π° λ΄μ€ μ€κ³ λ±νμ μμ€ λΆμ
|
| 1757 |
β’ π€ νκΉ
νμ΄μ€ νΈλ λ© λͺ¨λΈ TOP 30 (λͺ¨λΈ μΉ΄λ λΆμ)
|
| 1758 |
β’ π νκΉ
νμ΄μ€ νΈλ λ© μ€νμ΄μ€ TOP 30 (app.py λΆμ)
|
| 1759 |
β’ π§ Fireworks AI (Qwen3-235B) μ€μκ° LLM λΆμ
|