Update app.py
Browse files
app.py
CHANGED
@@ -1,60 +1,4 @@
|
|
1 |
import subprocess
|
2 |
-
import os
|
3 |
-
import matplotlib.font_manager as fm
|
4 |
-
import matplotlib.pyplot as plt
|
5 |
-
import yfinance as yf
|
6 |
-
import numpy as np
|
7 |
-
|
8 |
-
# 1. ๋๋๊ณ ๋ ํฐํธ ์ค์น ๋ฐ ์ ์ฉ
|
9 |
-
def install_nanum_font():
|
10 |
-
try:
|
11 |
-
subprocess.run(["apt-get", "update"], check=True)
|
12 |
-
subprocess.run(["apt-get", "install", "-y", "fonts-nanum"], check=True)
|
13 |
-
subprocess.run(["fc-cache", "-fv"], check=True)
|
14 |
-
except Exception as e:
|
15 |
-
print(f"ํฐํธ ์ค์น ์ค ์ค๋ฅ๊ฐ ๋ฐ์ํ์ต๋๋ค: {e}")
|
16 |
-
|
17 |
-
install_nanum_font()
|
18 |
-
|
19 |
-
# ๋๋๊ณ ๋ ํฐํธ ๊ฒฝ๋ก ์ค์ ๋ฐ ๊ฐ์ ์ ์ฉ
|
20 |
-
font_path = '/usr/share/fonts/truetype/nanum/NanumGothic.ttf'
|
21 |
-
|
22 |
-
if os.path.exists(font_path):
|
23 |
-
fm.fontManager.addfont(font_path)
|
24 |
-
else:
|
25 |
-
print("ํฐํธ๋ฅผ ์ฐพ์ ์ ์์ต๋๋ค.")
|
26 |
-
|
27 |
-
# ๋๋๊ณ ๋ ํฐํธ ๊ฐ์ ์ ์ฉ
|
28 |
-
font_prop = fm.FontProperties(fname=font_path)
|
29 |
-
plt.rcParams['font.family'] = font_prop.get_name()
|
30 |
-
plt.rcParams['axes.unicode_minus'] = False # ๋ง์ด๋์ค ๋ถํธ ๊นจ์ง ๋ฐฉ์ง
|
31 |
-
|
32 |
-
# 2. yfinance๋ก ์ฃผ๊ฐ ๋ฐ์ดํฐ ๊ฐ์ ธ์ค๊ธฐ (์ผ์ฑ์ ์ ์์)
|
33 |
-
ticker = '005930.KS' # ์ผ์ฑ์ ์ ํฐ์ปค
|
34 |
-
stock = yf.Ticker(ticker)
|
35 |
-
stock_data = stock.history(period="max")
|
36 |
-
|
37 |
-
# ์ฃผ๊ฐ ๋ฐ์ดํฐ ์ถ๋ ฅ ํ์ธ
|
38 |
-
print(stock_data.head()) # ์ฃผ๊ฐ ๋ฐ์ดํฐ ์ผ๋ถ ํ์ธ
|
39 |
-
|
40 |
-
# 3. ์ฃผ๊ฐ ๋ฐ์ดํฐ ์๊ฐํ (pandas ๋ฐ์ดํฐํ๋ ์์ numpy ๋ฐฐ์ด๋ก ๋ณํํ์ฌ ์ฒ๋ฆฌ)
|
41 |
-
plt.figure(figsize=(10, 6))
|
42 |
-
|
43 |
-
# ์ธ๋ฑ์ค์ ์ข
๊ฐ ๋ฐ์ดํฐ๋ฅผ numpy ๋ฐฐ์ด๋ก ๋ณํ
|
44 |
-
dates = stock_data.index.to_numpy()
|
45 |
-
closing_prices = stock_data['Close'].to_numpy()
|
46 |
-
|
47 |
-
# ์ฃผ๊ฐ ๋ฐ์ดํฐ ์๊ฐํ
|
48 |
-
plt.plot(dates, closing_prices, label='์ผ์ฑ์ ์ ์ข
๊ฐ')
|
49 |
-
|
50 |
-
# ๊ทธ๋ํ ์ ๋ชฉ, ์ถ ๋ผ๋ฒจ์ ํ๊ธ๋ก ์ค์
|
51 |
-
plt.title('์ผ์ฑ์ ์ ์ฃผ๊ฐ ์ถ์ด', fontproperties=font_prop)
|
52 |
-
plt.xlabel('๋ ์ง', fontproperties=font_prop)
|
53 |
-
plt.ylabel('์ข
๊ฐ', fontproperties=font_prop)
|
54 |
-
plt.legend(prop=font_prop)
|
55 |
-
|
56 |
-
# B ์ฝ๋
|
57 |
-
import subprocess
|
58 |
|
59 |
# ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น ๋ฐ ์
๋ฐ์ดํธ
|
60 |
subprocess.run(["pip", "install", "--upgrade", "pip"])
|
@@ -69,6 +13,7 @@ import io
|
|
69 |
from PIL import Image
|
70 |
from datetime import datetime, timedelta
|
71 |
from openai import OpenAI
|
|
|
72 |
|
73 |
# Perplexity AI API ์ค์
|
74 |
API_KEY = "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" # ์ฌ๊ธฐ์ Perplexity AI API ํค๋ฅผ ์
๋ ฅํ์ธ์.
|
@@ -209,4 +154,4 @@ with gr.Blocks() as demo:
|
|
209 |
)
|
210 |
|
211 |
# Gradio ์คํ
|
212 |
-
demo.launch()
|
|
|
1 |
import subprocess
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
2 |
|
3 |
# ํ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ค์น ๋ฐ ์
๋ฐ์ดํธ
|
4 |
subprocess.run(["pip", "install", "--upgrade", "pip"])
|
|
|
13 |
from PIL import Image
|
14 |
from datetime import datetime, timedelta
|
15 |
from openai import OpenAI
|
16 |
+
import os
|
17 |
|
18 |
# Perplexity AI API ์ค์
|
19 |
API_KEY = "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" # ์ฌ๊ธฐ์ Perplexity AI API ํค๋ฅผ ์
๋ ฅํ์ธ์.
|
|
|
154 |
)
|
155 |
|
156 |
# Gradio ์คํ
|
157 |
+
demo.launch()
|