seawolf2357 commited on
Commit
1841879
ยท
verified ยท
1 Parent(s): 5bf964a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +31 -11
app.py CHANGED
@@ -4,6 +4,8 @@ from transformers import GPT2Tokenizer
4
  import yfinance as yf
5
  import time
6
  import logging
 
 
7
 
8
  logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
9
 
@@ -62,6 +64,7 @@ def generate(prompt, history=[], temperature=0.1, max_new_tokens=10000, top_p=0.
62
  input_tokens = len(tokenizer.encode(prompt))
63
  total_tokens_used += input_tokens
64
  available_tokens = 32768 - total_tokens_used
 
65
  if available_tokens <= 0:
66
  yield f"Error: ์ž…๋ ฅ์ด ์ตœ๋Œ€ ํ—ˆ์šฉ ํ† ํฐ ์ˆ˜๋ฅผ ์ดˆ๊ณผํ•ฉ๋‹ˆ๋‹ค. Total tokens used: {total_tokens_used}"
67
  return
@@ -69,23 +72,40 @@ def generate(prompt, history=[], temperature=0.1, max_new_tokens=10000, top_p=0.
69
  formatted_prompt = format_prompt(prompt, history)
70
  output_accumulated = ""
71
  try:
72
- stream = client.text_generation(
73
- formatted_prompt,
74
- temperature=temperature,
75
- max_new_tokens=min(max_new_tokens, available_tokens),
76
- top_p=top_p,
77
- repetition_penalty=repetition_penalty,
78
- do_sample=True,
79
- seed=42,
80
- stream=True
81
- )
82
  for response in stream:
83
  output_part = response['generated_text'] if 'generated_text' in response else str(response)
84
  output_accumulated += output_part
85
- yield process_financial_data(output_part) + f"\n\n---\nTotal tokens used: {total_tokens_used}"
 
 
 
 
 
 
 
86
  except Exception as e:
87
  yield f"Error: {str(e)}\nTotal tokens used: {total_tokens_used}"
88
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
89
  def validate_ticker(ticker):
90
  logging.debug(f"Validating ticker: {ticker}")
91
  stock = yf.Ticker(ticker)
 
4
  import yfinance as yf
5
  import time
6
  import logging
7
+ from datetime import datetime
8
+
9
 
10
  logging.basicConfig(level=logging.DEBUG, format='%(asctime)s - %(levelname)s - %(message)s')
11
 
 
64
  input_tokens = len(tokenizer.encode(prompt))
65
  total_tokens_used += input_tokens
66
  available_tokens = 32768 - total_tokens_used
67
+
68
  if available_tokens <= 0:
69
  yield f"Error: ์ž…๋ ฅ์ด ์ตœ๋Œ€ ํ—ˆ์šฉ ํ† ํฐ ์ˆ˜๋ฅผ ์ดˆ๊ณผํ•ฉ๋‹ˆ๋‹ค. Total tokens used: {total_tokens_used}"
70
  return
 
72
  formatted_prompt = format_prompt(prompt, history)
73
  output_accumulated = ""
74
  try:
75
+ stream = client.text_generation(formatted_prompt, temperature=temperature, max_new_tokens=min(max_new_tokens, available_tokens),
76
+ top_p=top_p, repetition_penalty=repetition_penalty, do_sample=True, seed=42, stream=True)
 
 
 
 
 
 
 
 
77
  for response in stream:
78
  output_part = response['generated_text'] if 'generated_text' in response else str(response)
79
  output_accumulated += output_part
80
+
81
+ # ๋ฐ์ดํ„ฐ ๋‹ค์šด๋กœ๋“œ ๋ฐ ๊ฒฐ๊ณผ ์ถœ๋ ฅ
82
+ if "ํ‹ฐ์ปค" in output_part:
83
+ ticker = extract_ticker(output_part) # ํ‹ฐ์ปค ์ถ”์ถœํ•˜๋Š” ๋”๋ฏธ ํ•จ์ˆ˜, ์‹ค์ œ๋กœ๋Š” ํ‹ฐ์ปค๋ฅผ ์ถ”์ถœํ•˜๋Š” ๋กœ์ง ํ•„์š”
84
+ download_result = download_stock_data(ticker)
85
+ output_accumulated += download_result
86
+
87
+ yield output_accumulated + f"\n\n---\nTotal tokens used: {total_tokens_used}"
88
  except Exception as e:
89
  yield f"Error: {str(e)}\nTotal tokens used: {total_tokens_used}"
90
 
91
+ def download_stock_data(ticker):
92
+ try:
93
+ today = datetime.now()
94
+ start_date = today.replace(year=today.year - 10).strftime('%Y-%m-%d')
95
+ end_date = today.strftime('%Y-%m-%d')
96
+ data = yf.download(ticker, start=start_date, end=end_date)
97
+ if data.empty:
98
+ return f"Error: ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ํ‹ฐ์ปค {ticker}๋ฅผ ํ™•์ธํ•˜์„ธ์š”."
99
+ else:
100
+ return f"Success: {ticker} ๋ฐ์ดํ„ฐ ๋‹ค์šด๋กœ๋“œ ์„ฑ๊ณต."
101
+ except Exception as e:
102
+ return f"Error: ๋ฐ์ดํ„ฐ ๋‹ค์šด๋กœ๋“œ ์ค‘ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. {str(e)}"
103
+
104
+ def extract_ticker(output_part):
105
+ # ์ด ํ•จ์ˆ˜๋Š” ์‚ฌ์šฉ์ž ์ถœ๋ ฅ์—์„œ ํ‹ฐ์ปค๋ฅผ ์ถ”์ถœํ•˜๋Š” ๋กœ์ง์„ ๊ตฌํ˜„ํ•ด์•ผ ํ•จ
106
+ # ์—ฌ๊ธฐ์„œ๋Š” ์˜ˆ์‹œ๋กœ 'AAPL'์„ ๋ฐ˜ํ™˜ํ•˜๋„๋ก ์„ค์ •
107
+ return "AAPL"
108
+
109
  def validate_ticker(ticker):
110
  logging.debug(f"Validating ticker: {ticker}")
111
  stock = yf.Ticker(ticker)