Bonsai-demo yfinance金融数据实战:让Agent实时查询股市行情
2026/9/17 3:01:29 网站建设 项目流程

Bonsai-demo yfinance金融数据实战:让Agent实时查询股市行情

【免费下载链接】Bonsai-demoBonsai Demo项目地址: https://gitcode.com/GitHub_Trending/bo/Bonsai-demo

Bonsai-demo 是一个可完全本地运行的 Bonsai 大模型演示项目,内置基于 yfinance 的服务端代码解释器:用自然语言向 Agent 提问,它就能实时拉取股市行情、计算技术指标并直接画出图表,全程无需申请任何付费 API Key,数据不出本机。

为什么 Bonsai-demo 适合做金融数据演示

这个项目把"本地大模型 + 工具调用 + 真实金融数据"三件事一次性配齐了:

  • 跑得动:Bonsai 27B 是 ~1.7–2.2 bit 超低精度量化模型,Ternary-Bonsai-27B 权重仅约 6.7 GiB,消费级显卡甚至手机都能运行
  • 会动手:27B 原生支持 OpenAI 风格 tool calling,Agent 能自主决定"查什么、算什么、画什么"
  • 带金融工具:演示默认挂载天气、网页抓取、SQL 数据库,以及最重要的——服务端代码解释器(Jupyter 内核,预装 yfinance、pandas、matplotlib),详见 OPENWEBUI.md

一键部署:三步启动本地行情Agent

在 macOS / Linux 上只需三步(Windows 请用setup.ps1):

git clone https://gitcode.com/GitHub_Trending/bo/Bonsai-demo cd Bonsai-demo ./setup.sh # 安装依赖 + 下载模型 + 构建代码解释器环境 ./scripts/start_openwebui.sh

setup.sh 第 8 步会自动构建独立的.venv-jupyter虚拟环境(Jupyter + matplotlib / pandas / numpy / scipy / sympy /yfinance)。随后 scripts/start_openwebui.sh 会拉起 llama-server、Jupyter 内核(绑定127.0.0.1:8888,自带随机 token)并打开http://localhost:9090,工具全部自动播种,无需手动配置。

实战:直接问 Agent 的 5 个行情问题

启动后在聊天框里直接输入即可,例如:

  1. "NVDA 现在的股价是多少?今天涨了多少?"
  2. "画一下 AAPL 最近 60 天的收盘价走势"
  3. "对比 TSLA 和 NVDA 过去 3 个月的收益,谁更强?"
  4. "算一下 BTC-USD 的 20 日均线,现在是在均线上方吗?"
  5. "取 MSFT 最近 30 天数据,计算日收益率的波动率" 💹

背后发生了什么:模型调用 scripts/openwebui/tool_code_interpreter.py 中的execute_code工具,在本地 Jupyter 内核执行 Python(import yfinance as yf拉数 → pandas 计算 → matplotlib 出图),生成的图表会自动作为附件贴回聊天窗口,你看到的就是一张即时的行情分析图。

两个省心设计:模型的系统提示里注入了当前日期({{CURRENT_DATE}}),所以"最近一周""今年"这类相对时间问法无需额外工具就能算准;单次工具调用超时上限 120 秒,慢查询不会卡死会话。

如何调整或关闭代码解释器

需求做法
关闭代码解释器BONSAI_CODE_INTERPRETER=0 ./scripts/start_openwebui.sh(回退到浏览器内 Pyodide:仍能画图,但没有 yfinance 和联网能力)
修改 Jupyter 端口设置BONSAI_JUPYTER_PORT
查看完整变量参考environment_variables.md

安全说明:内核运行在独立空工作目录中,脚本会清除BRAVE_API_KEYHF_TOKEN等敏感环境变量,防止模型生成的代码顺手读到密钥——这是加固而非完全隔离,若需强隔离建议将整个 demo 放进容器运行。工具调用机制的更多细节见 TOOLS.md。

常见问题

Q:数据源是什么?免费吗?yfinance 通过 Yahoo Finance 的公开接口获取行情,免费。美股报价通常有约 15 分钟延迟,适合学习与演示,不构成投资建议。

Q:执行报错 "unsupported format string passed to Series.format"?这是 yfinance 单标的yf.download()返回 Series 的经典坑。工具内置了自动诊断,会直接给出修复建议(改用multi_level_index=False),Agent 会自动重试。

Q:为什么 Agent 说没有 yfinance?多半是setup.sh没跑完.venv-jupyter构建。重新执行一次./setup.sh(可安全重跑,已完成步骤会跳过),再启动即可。

写在最后

Bonsai-demo 用一条命令把"本地大模型 + yfinance 实时行情 + 自动画图"串成了完整闭环:部署后你只需提问,Agent 自己写代码、拉数据、做分析。想继续深挖,可以从 scripts/openwebui/ 目录下的工具源码入手,替换成你自己的金融数据工具。

【免费下载链接】Bonsai-demoBonsai Demo项目地址: https://gitcode.com/GitHub_Trending/bo/Bonsai-demo

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询