ginipick commited on
Commit
082f03f
ยท
verified ยท
1 Parent(s): 07274af

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +63 -13
app.py CHANGED
@@ -1072,8 +1072,65 @@ class LLMAnalyzer:
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์˜ ํญ๋ฐœ์ ์ธ ์‚ฌ์šฉ๋Ÿ‰ ์ฆ๊ฐ€๋กœ ์ธํ•ด ๋ฐ์ดํ„ฐ์„ผํ„ฐ ์šฉ๋Ÿ‰์ด ๋ถ€์กฑํ•œ ์‹ฌ๊ฐํ•œ ์ƒํ™ฉ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค.
@@ -1083,9 +1140,7 @@ class LLMAnalyzer:
1083
  MS๋Š” ๋ฐ์ดํ„ฐ์„ผํ„ฐ ํ™•์žฅ์„ ์œ„ํ•ด ๋ง‰๋Œ€ํ•œ ํˆฌ์ž๋ฅผ ํ•˜๊ณ  ์žˆ์ง€๋งŒ, ์‹ค์ œ ์ธํ”„๋ผ ๊ตฌ์ถ•์—๋Š” ์ตœ์†Œ 2-3๋…„์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค.
1084
  ์ด๋Ÿฌํ•œ ๊ณต๊ธ‰ ๋ถ€์กฑ ํ˜„์ƒ์€ AI ์„œ๋น„์Šค ๊ฐ€๊ฒฉ ์ƒ์Šน๊ณผ ์ ‘๊ทผ์„ฑ ์ œํ•œ์œผ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ,
1085
  ๊ฒฝ์Ÿ์‚ฌ๋“ค๋„ ์œ ์‚ฌํ•œ ๋ฌธ์ œ์— ์ง๋ฉดํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.
1086
- ์ „๋ฌธ๊ฐ€๋“ค์€ ์ด ์ƒํ™ฉ์ด AI ์‚ฐ์—…์˜ ์„ฑ์žฅ ์†๋„๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ๋Šฆ์ถœ ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ถ„์„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
1087
- ๋™์‹œ์— ๋ฐ์ดํ„ฐ์„ผํ„ฐ ๊ฑด์„ค ๊ด€๋ จ ์‚ฐ์—…๊ณผ ๋ฐ˜๋„์ฒด, ๋ƒ‰๊ฐ ์‹œ์Šคํ…œ ๋“ฑ ๊ด€๋ จ ๊ธฐ์ˆ  ๋ถ„์•ผ์˜ ์ˆ˜์š”๊ฐ€ ๊ธ‰์ฆํ•  ๊ฒƒ์œผ๋กœ ์ „๋ง๋ฉ๋‹ˆ๋‹ค.
1088
- ์ด๋Š” AI ์‹œ๋Œ€์˜ ๋ฌผ๋ฆฌ์  ์ธํ”„๋ผ๊ฐ€ ์–ผ๋งˆ๋‚˜ ์ค‘์š”ํ•œ์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์‚ฌ๋ก€๋กœ, ๋‹จ์ˆœํžˆ ์†Œํ”„ํŠธ์›จ์–ด๋งŒ์œผ๋กœ๋Š” AI ํ˜๋ช…์„ ์™„์„ฑํ•  ์ˆ˜ ์—†์Œ์„ ์‹œ์‚ฌํ•ฉ๋‹ˆ๋‹ค.""",
1089
  "significance": "์ด ๋‰ด์Šค๋Š” AI ๊ธฐ์ˆ ์˜ ๋Œ€์ค‘ํ™” ์†๋„๊ฐ€ ๊ธฐ์—…๋“ค์˜ ์˜ˆ์ƒ์„ ํ›จ์”ฌ ๋›ฐ์–ด๋„˜๊ณ  ์žˆ์Œ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. MS ๊ฐ™์€ ๊ธ€๋กœ๋ฒŒ IT ๊ธฐ์—…๋„ AI ์ˆ˜์š”๋ฅผ ๋”ฐ๋ผ์žก๊ธฐ ์œ„ํ•ด ๊ณ ๊ตฐ๋ถ„ํˆฌํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ์ด๋Š” AI๊ฐ€ ๋‹จ์ˆœํ•œ ์œ ํ–‰์ด ์•„๋‹Œ ์‚ฐ์—… ์ „๋ฐ˜์„ ๋ณ€ํ™”์‹œํ‚ค๋Š” ํ•ต์‹ฌ ๊ธฐ์ˆ ์ž„์„ ์ฆ๋ช…ํ•ฉ๋‹ˆ๋‹ค.",
1090
  "impact_level": "high",
1091
  "impact_text": "๋†’์Œ",
@@ -1099,9 +1154,7 @@ class LLMAnalyzer:
1099
  ํ˜„์žฌ GPU ์‹œ์žฅ์€ ์—”๋น„๋””์•„๊ฐ€ ์•ฝ 80% ์ด์ƒ์„ ์žฅ์•…ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ํŠนํžˆ AI ์ „์šฉ H100, H200 ์นฉ์€ ๊ณต๊ธ‰ ๋ถ€์กฑ ํ˜„์ƒ์ด ์‹ฌ๊ฐํ•ฉ๋‹ˆ๋‹ค.
1100
  ์ด๋ฒˆ ๊ฒฐ์ •์œผ๋กœ ์—”๏ฟฝ๏ฟฝ๏ฟฝ๋””์•„์˜ ์‹œ๊ฐ€์ด์•ก์ด 5์กฐ ๋‹ฌ๋Ÿฌ์— ๊ทผ์ ‘ํ•  ๊ฒƒ์œผ๋กœ ์›”์ŠคํŠธ๋ฆฌํŠธ๋Š” ์ „๋งํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
1101
  ํ•œํŽธ, ์ด๋Š” ๋ฏธ๊ตญ์˜ ์ „๋žต์  ๊ธฐ์ˆ  ์ˆ˜์ถœ ์ •์ฑ… ๋ณ€ํ™”๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์ค‘์š”ํ•œ ์‚ฌ๋ก€์ž…๋‹ˆ๋‹ค.
1102
- ์ค‘๊ตญ์— ๋Œ€ํ•ด์„œ๋Š” ์—„๊ฒฉํ•œ ์ˆ˜์ถœ ํ†ต์ œ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ๋„, ์ค‘๋™์˜ ์ฃผ์š” ๋™๋งน๊ตญ์—๋Š” ์„ ๋ณ„์ ์œผ๋กœ ํ—ˆ์šฉํ•˜๋Š” '๊ธฐ์ˆ  ๋™๋งน' ์ „๋žต์„ ๊ตฌ์‚ฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
1103
- UAE๋Š” ๋ง‰๋Œ€ํ•œ ์˜ค์ผ๋จธ๋‹ˆ๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ AI ํ—ˆ๋ธŒ ๊ตฌ์ถ•์„ ์ถ”์ง„ ์ค‘์ด๋ฉฐ, ์ด๋ฒˆ ์Šน์ธ์œผ๋กœ ์ค‘๋™ ์ง€์—ญ AI ์ƒํƒœ๊ณ„๊ฐ€ ๊ธ‰์„ฑ์žฅํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.
1104
- AMD์™€ ์ธํ…” ๋“ฑ ๋‹ค๋ฅธ ๋ฐ˜๋„์ฒด ๊ธฐ์—…๋“ค๋„ ์ด ์‹œ์žฅ ์ง„์ถœ์„ ๋…ธ๋ฆฌ๊ณ  ์žˆ์–ด, ํ–ฅํ›„ ๊ฒฝ์Ÿ์ด ์น˜์—ดํ•ด์งˆ ์ „๋ง์ž…๋‹ˆ๋‹ค.""",
1105
  "significance": "์ด๋Š” ๋ฏธ๊ตญ์˜ AI ๊ธฐ์ˆ  ์ˆ˜์ถœ ์ •์ฑ… ๋ณ€ํ™”๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์ค‘์š”ํ•œ ์‹ ํ˜ธ์ž…๋‹ˆ๋‹ค. ๊ธฐ์ˆ  ํŒจ๊ถŒ ๊ฒฝ์Ÿ ์†์—์„œ๋„ ์ „๋žต์  ๋™๋งน๊ตญ๊ณผ์˜ ํ˜‘๋ ฅ์„ ํ†ตํ•ด AI ์ƒํƒœ๊ณ„๋ฅผ ํ™•์žฅํ•˜๋ ค๋Š” ๋ฏธ๊ตญ์˜ ์˜๋„๋ฅผ ์—ฟ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.",
1106
  "impact_level": "medium",
1107
  "impact_text": "์ค‘๊ฐ„",
@@ -1115,9 +1168,7 @@ class LLMAnalyzer:
1115
  ํ˜„์žฌ ๋ฏธ๊ตญ๊ณผ ์บ๋‚˜๋‹ค์—์„œ iOS ์ „์šฉ์œผ๋กœ ๋จผ์ € ์ถœ์‹œ๋˜์—ˆ์œผ๋ฉฐ, ์•ˆ๋“œ๋กœ์ด๋“œ ๋ฒ„์ „๊ณผ ๊ธ€๋กœ๋ฒŒ ํ™•์žฅ์ด ๊ณ„ํš๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
1116
  ์†Œ๋ผ๋Š” ๊ธฐ์กด์˜ ์ด๋ฏธ์ง€ ์ƒ์„ฑ AI(๋ฏธ๋“œ์ €๋‹ˆ, ์Šคํ…Œ์ด๋ธ” ๋””ํ“จ์ „ ๋“ฑ)๋ฅผ ๋›ฐ์–ด๋„˜์–ด, ์‹œ๊ฐ„์˜ ํ๋ฆ„๊ณผ ๋ฌผ๋ฆฌ ๋ฒ•์น™์„ ์ดํ•ดํ•˜๋Š” ์ˆ˜์ค€์œผ๋กœ ๋ฐœ์ „ํ–ˆ์Šต๋‹ˆ๋‹ค.
1117
  ์˜ˆ๋ฅผ ๋“ค์–ด, ํŒŒ๋„๊ฐ€ ์น˜๋Š” ์žฅ๋ฉด์„ ์ƒ์„ฑํ•  ๋•Œ ๋ฌผ์˜ ์›€์ง์ž„, ๋น›์˜ ๋ฐ˜์‚ฌ, ์†Œ๋ฆฌ๊นŒ์ง€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
1118
- ์ด๋Š” ์˜ํ™”, ๊ด‘๊ณ , ๊ต์œก ์ฝ˜ํ…์ธ , ๊ฒŒ์ž„ ๋“ฑ ๋ชจ๋“  ์˜์ƒ ์‚ฐ์—…์— ํ˜๋ช…์  ๋ณ€ํ™”๋ฅผ ์˜ˆ๊ณ ํ•ฉ๋‹ˆ๋‹ค.
1119
- ์ „๋ฌธ๊ฐ€๋“ค์€ ํ–ฅํ›„ 2-3๋…„ ๋‚ด์— ์†Œ๋ผ ๊ฐ™์€ ๋„๊ตฌ๊ฐ€ ์ผ๋ฐ˜ํ™”๋˜๋ฉด, ์†Œ๊ทœ๋ชจ ์ฐฝ์ž‘์ž๋„ ํ• ๋ฆฌ์šฐ๋“œ๊ธ‰ ์˜์ƒ์„ ์ œ์ž‘ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋  ๊ฒƒ์œผ๋กœ ์ „๋งํ•ฉ๋‹ˆ๋‹ค.
1120
- ๋‹ค๋งŒ ๋”ฅํŽ˜์ดํฌ ์•…์šฉ, ์ €์ž‘๊ถŒ ๋ฌธ์ œ, ์ผ์ž๋ฆฌ ๊ฐ์†Œ ๋“ฑ ์œค๋ฆฌ์  ์šฐ๋ ค๋„ ๋™์‹œ์— ์ œ๊ธฐ๋˜๊ณ  ์žˆ์–ด, ์ ์ ˆํ•œ ๊ทœ์ œ์™€ ๊ฐ€์ด๋“œ๋ผ์ธ ๋งˆ๋ จ์ด ์‹œ๊ธ‰ํ•œ ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค.""",
1121
  "significance": "ํ…์ŠคํŠธ๋ฅผ ์ด๋ฏธ์ง€๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ธฐ์ˆ ์—์„œ ๋” ๋‚˜์•„๊ฐ€ ๋™์˜์ƒ ์ƒ์„ฑ๊นŒ์ง€ ๊ฐ€๋Šฅํ•ด์ง„ ๊ฒƒ์€ AI ๊ธฐ์ˆ ์˜ ์ง„ํ™”๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ฝ˜ํ…์ธ  ์ œ์ž‘์˜ ๋ฏผ์ฃผํ™”๊ฐ€ ๊ฐ€์†ํ™”๋˜๊ณ  ์žˆ์œผ๋ฉฐ, ๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ๊ณ ํ’ˆ์งˆ ์˜์ƒ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์‹œ๋Œ€๊ฐ€ ์—ด๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.",
1122
  "impact_level": "high",
1123
  "impact_text": "๋†’์Œ",
@@ -1139,8 +1190,7 @@ class LLMAnalyzer:
1139
  ํŠนํžˆ ๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ(LLM)๊ณผ ์ƒ์„ฑํ˜• AI์˜ ๋ฐœ์ „์€ ์‚ฐ์—… ์ „๋ฐ˜์— ๊ฑธ์ณ ํ˜์‹ ์„ ๊ฐ€์ ธ์˜ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
1140
  ์ด๋Ÿฌํ•œ ๊ธฐ์ˆ  ๋ณ€ํ™”๋Š” ์ƒˆ๋กœ์šด ์ผ์ž๋ฆฌ๋ฅผ ์ฐฝ์ถœํ•˜๋Š” ๋™์‹œ์—, ๊ธฐ์กด ์ง์—…์˜ ์„ฑ๊ฒฉ์„ ๋ณ€ํ™”์‹œํ‚ค๊ณ  ์žˆ์–ด ์šฐ๋ฆฌ ๋ชจ๋‘๊ฐ€ ์ฃผ๋ชฉํ•ด์•ผ ํ•  ํŠธ๋ Œ๋“œ์ž…๋‹ˆ๋‹ค.
1141
  ์ „๋ฌธ๊ฐ€๋“ค์€ ํ–ฅํ›„ 5-10๋…„ ๋‚ด์— AI๊ฐ€ ๊ฑฐ์˜ ๋ชจ๋“  ์‚ฐ์—… ๋ถ„์•ผ์— ํ†ตํ•ฉ๋  ๊ฒƒ์œผ๋กœ ์ „๋งํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
1142
- ๋”ฐ๋ผ์„œ ๊ด€๋ จ ๊ธฐ์ˆ ์˜ ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๊ณ , ์‚ฌํšŒ์  ํŒŒ๊ธ‰ํšจ๊ณผ๋ฅผ ํ•จ๊ป˜ ๊ณ ๋ฏผํ•˜๋Š” ๊ฒƒ์ด ๋ฏธ๋ž˜ ์„ธ๋Œ€์—๊ฒŒ ๋งค์šฐ ์ค‘์š”ํ•œ ์—ญ๋Ÿ‰์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.
1143
- ๋˜ํ•œ AI ๊ธฐ์ˆ ์˜ ๋ฐœ์ „๊ณผ ํ•จ๊ป˜ ๋ฐ์ดํ„ฐ ํ”„๋ผ์ด๋ฒ„์‹œ, ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํŽธํ–ฅ์„ฑ, ์ž๋™ํ™”๋กœ ์ธํ•œ ์ผ์ž๋ฆฌ ๋ณ€ํ™” ๋“ฑ ์œค๋ฆฌ์  ๋ฌธ์ œ๋„ ํ•จ๊ป˜ ๋…ผ์˜๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.""",
1144
  "significance": "AI ๊ธฐ์ˆ ์˜ ๋ฐœ์ „์€ ๋‹จ์ˆœํ•œ ๊ธฐ์ˆ  ํ˜์‹ ์„ ๋„˜์–ด ์‚ฌํšŒ, ๊ฒฝ์ œ, ์œค๋ฆฌ์  ์ธก๋ฉด์—์„œ ๋‹ค์–‘ํ•œ ๋…ผ์˜๋ฅผ ๋ถˆ๋Ÿฌ์ผ์œผํ‚ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณ€ํ™”๋ฅผ ์ดํ•ดํ•˜๊ณ  ๋Œ€๋น„ํ•˜๋Š” ๊ฒƒ์ด ๋ฏธ๋ž˜ ์„ธ๋Œ€์—๊ฒŒ ์ค‘์š”ํ•œ ์—ญ๋Ÿ‰์ž…๋‹ˆ๋‹ค.",
1145
  "impact_level": "medium",
1146
  "impact_text": "์ค‘๊ฐ„",
 
1072
  return None
1073
 
1074
  def analyze_news_simple(self, title: str, content: str = "") -> Dict:
1075
+ """๋‰ด์Šค ๊ธฐ์‚ฌ๋ฅผ ์ค‘๊ณ ๋“ฑํ•™์ƒ ์ˆ˜์ค€์œผ๋กœ ๋ถ„์„ - LLM API ์‚ฌ์šฉ"""
1076
+
1077
+ # LLM API๊ฐ€ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๊ฒฝ์šฐ ์‹ค์ œ ๋ถ„์„
1078
+ if self.api_available:
1079
+ try:
1080
+ messages = [
1081
+ {
1082
+ "role": "system",
1083
+ "content": """๋‹น์‹ ์€ ์ค‘๊ณ ๋“ฑํ•™์ƒ๋„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ฒŒ AI ๋‰ด์Šค๋ฅผ ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•˜๋Š” ์ „๋ฌธ๊ฐ€์ž…๋‹ˆ๋‹ค.
1084
+ ํ•œ๊ตญ์–ด๋กœ ๋‹ต๋ณ€ํ•˜๋ฉฐ, ๋‹ค์Œ ํ˜•์‹์˜ JSON์œผ๋กœ๋งŒ ์‘๋‹ตํ•˜์„ธ์š”:
1085
+
1086
+ {
1087
+ "summary": "๋‰ด์Šค ๋‚ด์šฉ์„ 8-10๋ฌธ์žฅ์œผ๋กœ ์ž์„ธํ•˜๊ณ  ๊ตฌ์ฒด์ ์œผ๋กœ ์„ค๋ช… (์ˆ˜์น˜, ์‚ฌ์‹ค, ๋ฐฐ๊ฒฝ ํฌํ•จ)",
1088
+ "significance": "์ด ๋‰ด์Šค๊ฐ€ ์™œ ์ค‘์š”ํ•œ์ง€ 2-3๋ฌธ์žฅ์œผ๋กœ ์„ค๋ช…",
1089
+ "impact_level": "high ๋˜๋Š” medium ๋˜๋Š” low",
1090
+ "impact_text": "๋†’์Œ ๋˜๋Š” ์ค‘๊ฐ„ ๋˜๋Š” ๋‚ฎ์Œ",
1091
+ "impact_description": "์–ด๋–ค ์˜ํ–ฅ์ด ์žˆ์„์ง€ 2-3๋ฌธ์žฅ์œผ๋กœ ์„ค๋ช…",
1092
+ "action": "์ค‘๊ณ ๋“ฑํ•™์ƒ์ด ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ 2-3๋ฌธ์žฅ์œผ๋กœ ์ œ์•ˆ"
1093
+ }
1094
+
1095
+ ๋ฐ˜๋“œ์‹œ ์œ„ ํ˜•์‹์˜ JSON๋งŒ ์ถœ๋ ฅํ•˜์„ธ์š”."""
1096
+ },
1097
+ {
1098
+ "role": "user",
1099
+ "content": f"""๋‹ค์Œ AI ๋‰ด์Šค๋ฅผ ์ค‘๊ณ ๋“ฑํ•™์ƒ์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ถ„์„ํ•ด์ฃผ์„ธ์š”:
1100
+
1101
+ ์ œ๋ชฉ: {title}
1102
+
1103
+ ๊ฐ ํ•ญ๋ชฉ์„ ๊ตฌ์ฒด์ ์ด๊ณ  ์ž์„ธํ•˜๊ฒŒ ์ž‘์„ฑํ•˜๋˜, ์ค‘๊ณ ๋“ฑํ•™์ƒ ์ˆ˜์ค€์— ๋งž์ถฐ ์‰ฝ๊ฒŒ ์„ค๋ช…ํ•ด์ฃผ์„ธ์š”.
1104
+ ํŠนํžˆ summary๋Š” 8-10๋ฌธ์žฅ์œผ๋กœ ์ถฉ๋ถ„ํžˆ ์ƒ์„ธํ•˜๊ฒŒ ์ž‘์„ฑํ•˜์„ธ์š”."""
1105
+ }
1106
+ ]
1107
+
1108
+ result = self.call_llm(messages, max_tokens=1500)
1109
+
1110
+ if result:
1111
+ # JSON ํŒŒ์‹ฑ ์‹œ๋„
1112
+ try:
1113
+ # ๋งˆํฌ๋‹ค์šด ์ฝ”๋“œ ๋ธ”๋ก ์ œ๊ฑฐ
1114
+ result_clean = result.replace('```json', '').replace('```', '').strip()
1115
+ analysis = json.loads(result_clean)
1116
+
1117
+ # ํ•„์ˆ˜ ํ•„๋“œ ๊ฒ€์ฆ
1118
+ required_fields = ['summary', 'significance', 'impact_level', 'impact_text', 'impact_description', 'action']
1119
+ if all(field in analysis for field in required_fields):
1120
+ print(f" โœ… LLM ๋ถ„์„ ์„ฑ๊ณต")
1121
+ return analysis
1122
+ else:
1123
+ print(f" โš ๏ธ LLM ์‘๋‹ต์— ํ•„์ˆ˜ ํ•„๋“œ ๋ˆ„๋ฝ")
1124
+ except json.JSONDecodeError as e:
1125
+ print(f" โš ๏ธ JSON ํŒŒ์‹ฑ ์˜ค๋ฅ˜: {e}")
1126
+ print(f" ์›๋ณธ ์‘๋‹ต: {result[:200]}...")
1127
+
1128
+ except Exception as e:
1129
+ print(f" โš ๏ธ LLM API ํ˜ธ์ถœ ์˜ค๋ฅ˜: {e}")
1130
+
1131
+ # Fallback: ํ…œํ”Œ๋ฆฟ ๊ธฐ๋ฐ˜ ๋ถ„์„ (LLM ์‹คํŒจ ์‹œ์—๋งŒ)
1132
+ print(f" โ„น๏ธ ํ…œํ”Œ๋ฆฟ ๋ชจ๋“œ๋กœ ์ „ํ™˜")
1133
+
1134
  analysis_templates = {
1135
  "์ฑ—GPT": {
1136
  "summary": """๋งˆ์ดํฌ๋กœ์†Œํ”„ํŠธ(MS)๋Š” ์ฑ—GPT์˜ ํญ๋ฐœ์ ์ธ ์‚ฌ์šฉ๋Ÿ‰ ์ฆ๊ฐ€๋กœ ์ธํ•ด ๋ฐ์ดํ„ฐ์„ผํ„ฐ ์šฉ๋Ÿ‰์ด ๋ถ€์กฑํ•œ ์‹ฌ๊ฐํ•œ ์ƒํ™ฉ์— ์ง๋ฉดํ–ˆ์Šต๋‹ˆ๋‹ค.
 
1140
  MS๋Š” ๋ฐ์ดํ„ฐ์„ผํ„ฐ ํ™•์žฅ์„ ์œ„ํ•ด ๋ง‰๋Œ€ํ•œ ํˆฌ์ž๋ฅผ ํ•˜๊ณ  ์žˆ์ง€๋งŒ, ์‹ค์ œ ์ธํ”„๋ผ ๊ตฌ์ถ•์—๋Š” ์ตœ์†Œ 2-3๋…„์ด ์†Œ์š”๋ฉ๋‹ˆ๋‹ค.
1141
  ์ด๋Ÿฌํ•œ ๊ณต๊ธ‰ ๋ถ€์กฑ ํ˜„์ƒ์€ AI ์„œ๋น„์Šค ๊ฐ€๊ฒฉ ์ƒ์Šน๊ณผ ์ ‘๊ทผ์„ฑ ์ œํ•œ์œผ๋กœ ์ด์–ด์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ,
1142
  ๊ฒฝ์Ÿ์‚ฌ๋“ค๋„ ์œ ์‚ฌํ•œ ๋ฌธ์ œ์— ์ง๋ฉดํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์Šต๋‹ˆ๋‹ค.
1143
+ ์ „๋ฌธ๊ฐ€๋“ค์€ ์ด ์ƒํ™ฉ์ด AI ์‚ฐ์—…์˜ ์„ฑ์žฅ ์†๋„๋ฅผ ์ผ์‹œ์ ์œผ๋กœ ๋Šฆ์ถœ ์ˆ˜ ์žˆ๋‹ค๊ณ  ๋ถ„์„ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.""",
 
 
1144
  "significance": "์ด ๋‰ด์Šค๋Š” AI ๊ธฐ์ˆ ์˜ ๋Œ€์ค‘ํ™” ์†๋„๊ฐ€ ๊ธฐ์—…๋“ค์˜ ์˜ˆ์ƒ์„ ํ›จ์”ฌ ๋›ฐ์–ด๋„˜๊ณ  ์žˆ์Œ์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. MS ๊ฐ™์€ ๊ธ€๋กœ๋ฒŒ IT ๊ธฐ์—…๋„ AI ์ˆ˜์š”๋ฅผ ๋”ฐ๋ผ์žก๊ธฐ ์œ„ํ•ด ๊ณ ๊ตฐ๋ถ„ํˆฌํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ์ด๋Š” AI๊ฐ€ ๋‹จ์ˆœํ•œ ์œ ํ–‰์ด ์•„๋‹Œ ์‚ฐ์—… ์ „๋ฐ˜์„ ๋ณ€ํ™”์‹œํ‚ค๋Š” ํ•ต์‹ฌ ๊ธฐ์ˆ ์ž„์„ ์ฆ๋ช…ํ•ฉ๋‹ˆ๋‹ค.",
1145
  "impact_level": "high",
1146
  "impact_text": "๋†’์Œ",
 
1154
  ํ˜„์žฌ GPU ์‹œ์žฅ์€ ์—”๋น„๋””์•„๊ฐ€ ์•ฝ 80% ์ด์ƒ์„ ์žฅ์•…ํ•˜๊ณ  ์žˆ์œผ๋ฉฐ, ํŠนํžˆ AI ์ „์šฉ H100, H200 ์นฉ์€ ๊ณต๊ธ‰ ๋ถ€์กฑ ํ˜„์ƒ์ด ์‹ฌ๊ฐํ•ฉ๋‹ˆ๋‹ค.
1155
  ์ด๋ฒˆ ๊ฒฐ์ •์œผ๋กœ ์—”๏ฟฝ๏ฟฝ๏ฟฝ๋””์•„์˜ ์‹œ๊ฐ€์ด์•ก์ด 5์กฐ ๋‹ฌ๋Ÿฌ์— ๊ทผ์ ‘ํ•  ๊ฒƒ์œผ๋กœ ์›”์ŠคํŠธ๋ฆฌํŠธ๋Š” ์ „๋งํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
1156
  ํ•œํŽธ, ์ด๋Š” ๋ฏธ๊ตญ์˜ ์ „๋žต์  ๊ธฐ์ˆ  ์ˆ˜์ถœ ์ •์ฑ… ๋ณ€ํ™”๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์ค‘์š”ํ•œ ์‚ฌ๋ก€์ž…๋‹ˆ๋‹ค.
1157
+ ์ค‘๊ตญ์— ๋Œ€ํ•ด์„œ๋Š” ์—„๊ฒฉํ•œ ์ˆ˜์ถœ ํ†ต์ œ๋ฅผ ์œ ์ง€ํ•˜๋ฉด์„œ๋„, ์ค‘๋™์˜ ์ฃผ์š” ๋™๋งน๊ตญ์—๋Š” ์„ ๋ณ„์ ์œผ๋กœ ํ—ˆ์šฉํ•˜๋Š” '๊ธฐ์ˆ  ๋™๋งน' ์ „๋žต์„ ๊ตฌ์‚ฌํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.""",
 
 
1158
  "significance": "์ด๋Š” ๋ฏธ๊ตญ์˜ AI ๊ธฐ์ˆ  ์ˆ˜์ถœ ์ •์ฑ… ๋ณ€ํ™”๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์ค‘์š”ํ•œ ์‹ ํ˜ธ์ž…๋‹ˆ๋‹ค. ๊ธฐ์ˆ  ํŒจ๊ถŒ ๊ฒฝ์Ÿ ์†์—์„œ๋„ ์ „๋žต์  ๋™๋งน๊ตญ๊ณผ์˜ ํ˜‘๋ ฅ์„ ํ†ตํ•ด AI ์ƒํƒœ๊ณ„๋ฅผ ํ™•์žฅํ•˜๋ ค๋Š” ๋ฏธ๊ตญ์˜ ์˜๋„๋ฅผ ์—ฟ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.",
1159
  "impact_level": "medium",
1160
  "impact_text": "์ค‘๊ฐ„",
 
1168
  ํ˜„์žฌ ๋ฏธ๊ตญ๊ณผ ์บ๋‚˜๋‹ค์—์„œ iOS ์ „์šฉ์œผ๋กœ ๋จผ์ € ์ถœ์‹œ๋˜์—ˆ์œผ๋ฉฐ, ์•ˆ๋“œ๋กœ์ด๋“œ ๋ฒ„์ „๊ณผ ๊ธ€๋กœ๋ฒŒ ํ™•์žฅ์ด ๊ณ„ํš๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
1169
  ์†Œ๋ผ๋Š” ๊ธฐ์กด์˜ ์ด๋ฏธ์ง€ ์ƒ์„ฑ AI(๋ฏธ๋“œ์ €๋‹ˆ, ์Šคํ…Œ์ด๋ธ” ๋””ํ“จ์ „ ๋“ฑ)๋ฅผ ๋›ฐ์–ด๋„˜์–ด, ์‹œ๊ฐ„์˜ ํ๋ฆ„๊ณผ ๋ฌผ๋ฆฌ ๋ฒ•์น™์„ ์ดํ•ดํ•˜๋Š” ์ˆ˜์ค€์œผ๋กœ ๋ฐœ์ „ํ–ˆ์Šต๋‹ˆ๋‹ค.
1170
  ์˜ˆ๋ฅผ ๋“ค์–ด, ํŒŒ๋„๊ฐ€ ์น˜๋Š” ์žฅ๋ฉด์„ ์ƒ์„ฑํ•  ๋•Œ ๋ฌผ์˜ ์›€์ง์ž„, ๋น›์˜ ๋ฐ˜์‚ฌ, ์†Œ๋ฆฌ๊นŒ์ง€ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
1171
+ ์ด๋Š” ์˜ํ™”, ๊ด‘๊ณ , ๊ต์œก ์ฝ˜ํ…์ธ , ๊ฒŒ์ž„ ๋“ฑ ๋ชจ๋“  ์˜์ƒ ์‚ฐ์—…์— ํ˜๋ช…์  ๋ณ€ํ™”๋ฅผ ์˜ˆ๊ณ ํ•ฉ๋‹ˆ๋‹ค.""",
 
 
1172
  "significance": "ํ…์ŠคํŠธ๋ฅผ ์ด๋ฏธ์ง€๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ๊ธฐ์ˆ ์—์„œ ๋” ๋‚˜์•„๊ฐ€ ๋™์˜์ƒ ์ƒ์„ฑ๊นŒ์ง€ ๊ฐ€๋Šฅํ•ด์ง„ ๊ฒƒ์€ AI ๊ธฐ์ˆ ์˜ ์ง„ํ™”๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ฝ˜ํ…์ธ  ์ œ์ž‘์˜ ๋ฏผ์ฃผํ™”๊ฐ€ ๊ฐ€์†ํ™”๋˜๊ณ  ์žˆ์œผ๋ฉฐ, ๋ˆ„๊ตฌ๋‚˜ ์‰ฝ๊ฒŒ ๊ณ ํ’ˆ์งˆ ์˜์ƒ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ์‹œ๋Œ€๊ฐ€ ์—ด๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.",
1173
  "impact_level": "high",
1174
  "impact_text": "๋†’์Œ",
 
1190
  ํŠนํžˆ ๋Œ€๊ทœ๋ชจ ์–ธ์–ด ๋ชจ๋ธ(LLM)๊ณผ ์ƒ์„ฑํ˜• AI์˜ ๋ฐœ์ „์€ ์‚ฐ์—… ์ „๋ฐ˜์— ๊ฑธ์ณ ํ˜์‹ ์„ ๊ฐ€์ ธ์˜ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
1191
  ์ด๋Ÿฌํ•œ ๊ธฐ์ˆ  ๋ณ€ํ™”๋Š” ์ƒˆ๋กœ์šด ์ผ์ž๋ฆฌ๋ฅผ ์ฐฝ์ถœํ•˜๋Š” ๋™์‹œ์—, ๊ธฐ์กด ์ง์—…์˜ ์„ฑ๊ฒฉ์„ ๋ณ€ํ™”์‹œํ‚ค๊ณ  ์žˆ์–ด ์šฐ๋ฆฌ ๋ชจ๋‘๊ฐ€ ์ฃผ๋ชฉํ•ด์•ผ ํ•  ํŠธ๋ Œ๋“œ์ž…๋‹ˆ๋‹ค.
1192
  ์ „๋ฌธ๊ฐ€๋“ค์€ ํ–ฅํ›„ 5-10๋…„ ๋‚ด์— AI๊ฐ€ ๊ฑฐ์˜ ๋ชจ๋“  ์‚ฐ์—… ๋ถ„์•ผ์— ํ†ตํ•ฉ๋  ๊ฒƒ์œผ๋กœ ์ „๋งํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
1193
+ ๋”ฐ๋ผ์„œ ๊ด€๋ จ ๊ธฐ์ˆ ์˜ ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๊ณ , ์‚ฌํšŒ์  ํŒŒ๊ธ‰ํšจ๊ณผ๋ฅผ ํ•จ๊ป˜ ๊ณ ๋ฏผํ•˜๋Š” ๊ฒƒ์ด ๋ฏธ๋ž˜ ์„ธ๋Œ€์—๊ฒŒ ๋งค์šฐ ์ค‘์š”ํ•œ ์—ญ๋Ÿ‰์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.""",
 
1194
  "significance": "AI ๊ธฐ์ˆ ์˜ ๋ฐœ์ „์€ ๋‹จ์ˆœํ•œ ๊ธฐ์ˆ  ํ˜์‹ ์„ ๋„˜์–ด ์‚ฌํšŒ, ๊ฒฝ์ œ, ์œค๋ฆฌ์  ์ธก๋ฉด์—์„œ ๋‹ค์–‘ํ•œ ๋…ผ์˜๋ฅผ ๋ถˆ๋Ÿฌ์ผ์œผํ‚ค๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๋ณ€ํ™”๋ฅผ ์ดํ•ดํ•˜๊ณ  ๋Œ€๋น„ํ•˜๋Š” ๊ฒƒ์ด ๋ฏธ๋ž˜ ์„ธ๋Œ€์—๊ฒŒ ์ค‘์š”ํ•œ ์—ญ๋Ÿ‰์ž…๋‹ˆ๋‹ค.",
1195
  "impact_level": "medium",
1196
  "impact_text": "์ค‘๊ฐ„",