From 476568f328f404c9173a0fb32b1f1986df1f94d8 Mon Sep 17 00:00:00 2001 From: Cassianvale Date: Tue, 4 Mar 2025 12:01:58 +0800 Subject: [PATCH] Update stock_analyzer.py --- stock_analyzer.py | 49 +++++++++++++++++++++++++++++++---------------- 1 file changed, 32 insertions(+), 17 deletions(-) diff --git a/stock_analyzer.py b/stock_analyzer.py index 5e86cb9..a88139f 100644 --- a/stock_analyzer.py +++ b/stock_analyzer.py @@ -237,25 +237,40 @@ class StockAnalyzer: """ # OpenAI API 调用 - response = requests.post( + api_urls = [ f"{self.API_URL}/chat/completions", - headers={ - "Authorization": f"Bearer {self.API_KEY}", - "Content-Type": "application/json" - }, - json={ - "model": os.getenv('API_MODEL', 'gpt-3.5-turbo'), - "messages": [{"role": "user", "content": prompt}] - }, - timeout=30 - ) + f"{self.API_URL}/v1/chat/completions" + ] + + last_error = None + for api_url in api_urls: + try: + response = requests.post( + api_url, + headers={ + "Authorization": f"Bearer {self.API_KEY}", + "Content-Type": "application/json" + }, + json={ + "model": os.getenv('API_MODEL', 'gpt-3.5-turbo'), + "messages": [{"role": "user", "content": prompt}] + }, + timeout=30 + ) + + if response.status_code == 200: + return response.json()['choices'][0]['message']['content'] + else: + last_error = f"API 错误: {response.status_code} - {response.text}" + continue + + except Exception as e: + last_error = str(e) + continue + + print(f"AI 分析暂时无法使用: {last_error}") + return f"AI 分析暂时无法使用: {last_error}" - if response.status_code == 200: - return response.json()['choices'][0]['message']['content'] - else: - print(f"API 错误: {response.status_code} - {response.text}") - return f"AI 分析暂时无法使用 (HTTP {response.status_code})" - except Exception as e: print(f"AI 分析发生错误: {str(e)}") return f"AI 分析过程中发生错误: {str(e)}"