Commit
cc76dd8
ยท
verified ยท
1 Parent(s): 687d3dc

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +2 -57
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()