在 macOS 中无法运行
作者: Ch2robben创建于 2026年5月27日更新于 2026年5月27日
标签bug
- Bug:
SSLError(UNEXPECTED_EOF_WHILE_READING) on macOS 描述: 当后端尝试使用requests库从api.financialdatasets.ai获取数据时,在某些 macOS 环境(特别是使用 Homebrew Python 3.11/3.14)上会发生崩溃,出现以下错误:
requests.exceptions.SSLError: HTTPSConnectionPool(host='api.financialdatasets.ai', port=443): Max retries exceeded ... (Caused by SSLError(SSLEOFError(8, '[SSL: UNEXPECTED_EOF_WHILE_READING] EOF occurred in violation of protocol (_ssl.c:1016)'))
原因:
这是一个已知问题,requests 默认使用 macOS 系统的 SSL 证书,这可能与 Homebrew 的 OpenSSL 3. 发生冲突。
建议的修复:
在 src/tools/api.py 中,使用 certifi 包明确提供 requests.get 和 requests.post 的 CA 组件。
import certifi
def _make_api_request(url, headers, method="GET", json_data=None, max_retries=3):
ssl_verify = certifi.where()
# ...
response = requests.get(url, headers=headers, verify=ssl_verify)
- Bug: 图形执行失败,出现"未知节点"错误
描述:
通过 Web UI(Frontend React Flow)运行分析时,后端
/hedge-fund/run端点会出现以下错误:
{"detail": "An error occurred while processing the request: Found edge starting at unknown node 'stock-analyzer-node_t4jxmp'"}
原因:
前端在发送给后端的负载中包含了一个通用的 stock-analyzer 节点。但是,在 app/backend/services/graph.py 中,ANALYST_CONFIG 仅映射了特定的分析师节点(例如 warren_buffett、fundamentals_analyst)。create_graph 函数跳过添加 stock-analyzer 节点,因为它不在配置中,但它不会过滤连接到它的边,导致 graph.add_edge() 在引用不存在的节点时崩溃。
建议的修复:
更新前端负载,在发送给后端之前排除可视化 stock-analyzer 节点及其边,或者更新后端 create_graph 逻辑,以优雅地忽略不在最终 StateGraph 中的节点引用的边。
3. 功能请求: 非美国股票(例如香港股票)的回退
描述:
Financial Datasets API 目前仅支持美国股票。如果用户输入一个香港股票代码(例如 0700.HK 或 02637),API 会返回 404 或空数据,导致代理程序失败。
建议的修复:
实现一个回退机制,使用 yfinance 处理不像标准美国代码(例如包含 .HK 或纯数字)的代码。yfinance 可以
内容来源: virattt/ai-hedge-fund