import os from openai import OpenAI from .config import get_config def get_stock_news_openai(query, start_date, end_date): """ 使用 OpenAI 模型搜索社交媒體上的股票新聞。 Args: query (str): 搜索查詢。 start_date (str): 開始日期。 end_date (str): 結束日期。 Returns: str: 模型的文字回應。 """ config = get_config() # Get the OpenAI API key from environment variable openai_api_key = os.getenv("OPENAI_API_KEY") client = OpenAI(base_url=config["backend_url"], api_key=openai_api_key) response = client.responses.create( model=config["quick_think_llm"], input=[ { "role": "system", "content": [ { "type": "input_text", "text": f"您能從 {start_date} 到 {end_date} 在社交媒體上搜索關於 {query} 的資訊嗎?請確保您只獲取在該期間內發布的數據。", } ], } ], text={"format": {"type": "text"}}, reasoning={}, tools=[ { "type": "web_search_preview", "user_location": {"type": "approximate"}, "search_context_size": "low", } ], temperature=1, max_output_tokens=4096, top_p=1, store=True, ) return response.output[1].content[0].text def get_global_news_openai(curr_date, look_back_days=7, limit=5): """ 使用 OpenAI 模型搜索全球宏觀經濟新聞。 Args: curr_date (str): 當前日期。 look_back_days (int): 回溯天數。 limit (int): 結果數量限制。 Returns: str: 模型的文字回應。 """ config = get_config() # Get the OpenAI API key from environment variable openai_api_key = os.getenv("OPENAI_API_KEY") client = OpenAI(base_url=config["backend_url"], api_key=openai_api_key) response = client.responses.create( model=config["quick_think_llm"], input=[ { "role": "system", "content": [ { "type": "input_text", "text": f"您能從 {curr_date} 前回溯 {look_back_days} 天到 {curr_date} 期間,搜索對交易有參考價值的全球或宏觀經濟新聞嗎?請確保您只獲取在該期間內發布的數據。將結果限制在 {limit} 篇文章。", } ], } ], text={"format": {"type": "text"}}, reasoning={}, tools=[ { "type": "web_search_preview", "user_location": {"type": "approximate"}, "search_context_size": "low", } ], temperature=1, max_output_tokens=4096, top_p=1, store=True, ) return response.output[1].content[0].text def get_fundamentals_openai(ticker, curr_date): """ 使用 OpenAI 模型搜索公司的基本面數據。 Args: ticker (str): 股票代碼。 curr_date (str): 當前日期。 Returns: str: 模型的文字回應。 """ config = get_config() # Get the OpenAI API key from environment variable openai_api_key = os.getenv("OPENAI_API_KEY") client = OpenAI(base_url=config["backend_url"], api_key=openai_api_key) response = client.responses.create( model=config["quick_think_llm"], input=[ { "role": "system", "content": [ { "type": "input_text", "text": f"您能搜索關於 {ticker} 在 {curr_date} 前一個月到 {curr_date} 當月的討論中的基本面數據嗎?請確保您只獲取在該期間內發布的數據。以表格形式列出,包含本益比/市銷率/現金流等資訊。", } ], } ], text={"format": {"type": "text"}}, reasoning={}, tools=[ { "type": "web_search_preview", "user_location": {"type": "approximate"}, "search_context_size": "low", } ], temperature=1, max_output_tokens=4096, top_p=1, store=True, ) return response.output[1].content[0].text