|
import subprocess |
|
|
|
|
|
subprocess.run(["pip", "install", "--upgrade", "pip"]) |
|
subprocess.run(["pip", "install", "--upgrade", "openai", "yfinance", "gradio", "matplotlib", "Pillow"]) |
|
|
|
import os |
|
import matplotlib.font_manager as fm |
|
import matplotlib.pyplot as plt |
|
import yfinance as yf |
|
import numpy as np |
|
import re |
|
import gradio as gr |
|
import io |
|
from PIL import Image |
|
from datetime import datetime, timedelta |
|
from openai import OpenAI |
|
|
|
|
|
|
|
|
|
with gr.Blocks() as demo: |
|
gr.Markdown("## ์ฃผ๊ฐ ๊ทธ๋ํ์ ๋ด์ค ์์ฝ") |
|
|
|
|
|
demo.css("#news_output_box { background-color: #f0f0f0; padding: 20px; }") |
|
|
|
with gr.Row(): |
|
with gr.Column(): |
|
input_value = gr.Textbox(label="์ข
๋ชฉ๋ช
๋๋ ํฐ์ปค ์
๋ ฅ", placeholder="์: SK๋ฐ์ด์คํ, AAPL") |
|
change_type = gr.Dropdown(choices=["์์น", "ํ๋ฝ"], label="์์น ๋๋ ํ๋ฝ ์ ํ", value="์์น") |
|
percent_change = gr.Textbox(label="๋ณ๋ ํผ์ผํธ (%)", placeholder="์: 10", value="10") |
|
|
|
submit_btn = gr.Button("Submit") |
|
|
|
|
|
examples = [["SK๋ฐ์ด์คํ"], |
|
["๋์ค๋ฅ ์์ด 1์"], |
|
["๋์ค๋ฅ ํฌ์ค์ผ์ด ์์ด 1์"], |
|
["๋์ค๋ฅ ๋ฐ์ด์คํ
์์ด 1์"], |
|
["์ฝ์คํผ ์์ด 1์"], |
|
["์ฝ์ค๋ฅ ์์ด 1์"]] |
|
gr.Examples(examples=examples, inputs=[input_value]) |
|
|
|
with gr.Column(): |
|
plot = gr.Image(label="์ฃผ๊ฐ ๊ทธ๋ํ") |
|
date_dropdown = gr.Dropdown(label="์กฐ๊ฑด์ ํด๋นํ๋ ๋ ์ง ์ ํ", choices=[]) |
|
|
|
with gr.Column(): |
|
|
|
news_output = gr.Markdown(label="๋ด์ค ์์ฝ", value="", elem_id="news_output_box") |
|
|
|
|
|
submit_btn.click( |
|
fn=display_stock_with_highlight, |
|
inputs=[input_value, change_type, percent_change], |
|
outputs=[plot, date_dropdown] |
|
) |
|
|
|
|
|
date_dropdown.change( |
|
fn=update_news, |
|
inputs=[input_value, date_dropdown], |
|
outputs=[news_output] |
|
) |
|
|
|
|
|
demo.launch() |
|
|