cormort commited on
Commit
e541209
·
verified ·
1 Parent(s): a76b8c0

Update src/llm.py

Browse files
Files changed (1) hide show
  1. src/llm.py +5 -12
src/llm.py CHANGED
@@ -4,26 +4,22 @@ import google.generativeai as genai
4
 
5
  class LLMService:
6
  def __init__(self):
7
- # 1. 讀取 API Key
8
- self.api_key = os.getenv("GOOGLE_API_KEY")
9
  self.model = None
10
 
11
  if self.api_key:
12
  try:
13
- # 2. 設定 Gemini
14
  genai.configure(api_key=self.api_key)
15
-
16
- # 使用 Gemini 1.5 Flash (速度快、便宜、適合分析數據)
17
- # 如果追求更深度的推論,可改用 "gemini-1.5-pro"
18
  self.model = genai.GenerativeModel('gemini-1.5-flash')
19
  except Exception as e:
20
- print(f"Gemini 初始化失敗: {e}")
21
-
 
22
  def generate_report(self, ticker, name, price, scores, details, backtest_res, news):
23
  if not self.model:
24
  return "⚠️ 未設定 Google API Key,無法進行 AI 分析。請在環境變數中設定 GOOGLE_API_KEY。"
25
 
26
- # 3. 整理數據 (這部分跟原本一樣)
27
  score_summary = "\n".join([f"- {k}: {v}分 ({', '.join(details[k])})" for k, v in scores.items()])
28
 
29
  bt_info = "無回測資料"
@@ -34,7 +30,6 @@ class LLMService:
34
  if news:
35
  news_text = "\n".join([f"- {n['title']} ({n['date']})" for n in news[:3]])
36
 
37
- # 4. 構建 Prompt (針對 Gemini 優化)
38
  prompt = f"""
39
  你是一位專業的台股投資分析師。請根據以下數據,分析個股:{name} ({ticker})。
40
  目前股價:{price}
@@ -60,11 +55,9 @@ class LLMService:
60
  """
61
 
62
  try:
63
- # 5. 呼叫 Gemini 生成
64
  response = self.model.generate_content(prompt)
65
  return response.text
66
  except Exception as e:
67
  return f"❌ AI 分析生成失敗: {str(e)}"
68
 
69
- # 建立實例供外部呼叫
70
  llm_service = LLMService()
 
4
 
5
  class LLMService:
6
  def __init__(self):
7
+ # 建議使用 os.getenv,或在此處暫時填入您的 Key: "AIza..."
8
+ self.api_key = os.getenv("GOOGLE_API_KEY")
9
  self.model = None
10
 
11
  if self.api_key:
12
  try:
 
13
  genai.configure(api_key=self.api_key)
 
 
 
14
  self.model = genai.GenerativeModel('gemini-1.5-flash')
15
  except Exception as e:
16
+ print(f"Gemini Init Error: {e}")
17
+
18
+ # ... (其餘 generate_report 方法保持與您提供的一致) ...
19
  def generate_report(self, ticker, name, price, scores, details, backtest_res, news):
20
  if not self.model:
21
  return "⚠️ 未設定 Google API Key,無法進行 AI 分析。請在環境變數中設定 GOOGLE_API_KEY。"
22
 
 
23
  score_summary = "\n".join([f"- {k}: {v}分 ({', '.join(details[k])})" for k, v in scores.items()])
24
 
25
  bt_info = "無回測資料"
 
30
  if news:
31
  news_text = "\n".join([f"- {n['title']} ({n['date']})" for n in news[:3]])
32
 
 
33
  prompt = f"""
34
  你是一位專業的台股投資分析師。請根據以下數據,分析個股:{name} ({ticker})。
35
  目前股價:{price}
 
55
  """
56
 
57
  try:
 
58
  response = self.model.generate_content(prompt)
59
  return response.text
60
  except Exception as e:
61
  return f"❌ AI 分析生成失敗: {str(e)}"
62
 
 
63
  llm_service = LLMService()