当前位置:首页>行情>我花两周,从零搭了个能读年报、查实时行情的 AI 金融研究员

我花两周,从零搭了个能读年报、查实时行情的 AI 金融研究员

  • 2026-02-19 05:36:07
我花两周,从零搭了个能读年报、查实时行情的 AI 金融研究员

hi,我是南哥。最近花了两周时间,从零搭了一个 AI 金融研究 Agent。

最终效果是这样的——我问它"对比微软 2024 年 Q2 的财报数据和当前的股价表现",它先自己列了一个 3 步执行计划,然后从公司年报 PDF 里翻出微软的收入数据,又自动跑到 Yahoo Finance 拉了最新股价和分析师评级,最后整合成了一份完整的分析报告。

全自动,跑了大概 10 分钟。报告里有各业务线收入明细、同比增长、当前市盈率、分析师目标价,我去 Yahoo Finance 上核了一遍,数据完全对得上。

从第一天连 PDF 都读不了,到最后能做出这种综合分析,中间踩了不少坑。这篇把整个系统的架构和关键设计思路梳理一下,算一个完整的技术复盘。

它能干什么

三个核心能力。

第一,读年报。把苹果、亚马逊这类公司的 10-K 年报 PDF 喂进去,它能从里面检索出任何你想要的财务数据——收入表、资产负债表、各业务线的数字,连图表里的趋势信息也能理解。

你问它"苹果 2024 年 Services 收入是多少",它不是从网上随便搜的,是真的从 PDF 原文里检索出来的。

第二,查实时行情。通过 MCP 协议连接 Yahoo Finance,拿到的是当天的股价、市值、涨跌幅、分析师评级。不是 ChatGPT 那种"我的数据截止到 xxxx 年",是真的实时。

第三,综合分析。面对复杂问题,它会自己拆任务、制定执行计划、分步调用不同数据源,最后汇总输出。不是那种"想到什么工具调什么工具"的随机模式,是有计划地工作。

整体架构长什么样

从底到顶,一共 8 个模块:

实时数据层:  MCP + Yahoo Finance(实时行情)数据处理层:  Docling PDF 提取 → Gemini 图片描述存储层:      Qdrant 向量数据库(混合搜索)检索层:      Dense + Sparse 混合搜索 + Cross Encoder 重排序Agent 层:    多模态 Agent(RAG + MCP 双数据源)规划层:      TODO Planner + Summarization 中间件

每一层解决一个具体的问题。下面一个个说说我为什么这么选型,以及踩过哪些坑。

MCP + Yahoo Finance:让 Agent 有了"实时眼睛"

先说实时数据这一块。

以前用 ChatGPT 问股票信息,它要么说数据过期了,要么直接编个看似合理但完全错误的数字。根本原因是 LLM 本身不联网,训练数据有截止日期。

MCP(Model Context Protocol)解决了这个问题。它是一个让 AI Agent 调用外部工具的标准协议,Yahoo Finance 已经有现成的 MCP Server 发布在 PyPI 上了,LangChain 也有 MCP 适配器,连接起来不复杂。

连上之后,Agent 手里直接多了 9 个工具——查股价、查财务指标、查新闻、查分析师评级,全是 Yahoo Finance 的实时数据。

不过有个坑:MCP 是异步的,在 Jupyter Notebook 里跑不起来。我折腾了半天 nest_asyncio 之类的方案,最后发现用 subprocess 开一个新进程来执行最简单粗暴。这个方案看着不优雅,但真的好使。

年报 PDF 处理:比你想的难得多

实时数据搞定了,但金融 Agent 不能只看实时行情。公司年报里才有最详细的财务数据——收入结构、成本明细、风险披露,这些东西 Yahoo Finance 上没有。

问题是年报 PDF 处理起来特别麻烦。

一份苹果的 10-K 年报,少说七八十页,里面有大段文字、有表格(资产负债表、利润表)、有各种图表(收入趋势图、市场份额饼图)。这三种数据格式完全不同,不能一刀切。

我前后试了 5 种多模态 RAG 方案:分 Collection 存储、统一多模态 Embedding、图片转文字、多模态 LLM 直接检索、CLIP 图文对齐... 最后选了"图片转文字"这条路。

核心思路是把所有数据都统一成文本:PDF 正文转 Markdown,表格提取成 Markdown 表格,图表用 Gemini 生成详细的文字描述。最后全部用文本 Embedding 存进向量数据库。

为什么不用多模态 Embedding?两个原因。一是精度不够,多模态 embedding 比专门的文本 embedding 差一截。二是不支持混合搜索和 BM25 关键词匹配——金融场景下你搜 "revenue growth",必须精确匹配到这个关键词,不能给我模糊匹配到别的东西。

PDF 提取用的 Docling

具体提取 PDF 数据,我用的是 IBM 开源的 Docling。

一开始试的是 PyPDF2,提取出来的表格简直没法看,格式全乱了。换 Docling 之后效果好太多——表格结构能完整保留,Markdown 导出质量很高,图片提取也支持。

不过图片提取有个细节要注意:PDF 里有大量的 logo、图标之类的小图,对 RAG 完全没用。我设了 500x500 最小尺寸过滤,一开始没加这个,提取出来好几百张图,打开一看全是装饰性图标... 加了过滤后每份年报就十几张有价值的图表,合理多了。

表格提取也有讲究。我不是直接存表格内容,而是把表格上方的标题也带上。比如"Table 1: Consolidated Statements of Income"这种上下文信息,对后面检索非常关键。

图表转文字:Prompt 写得好不好差距巨大

提取出来的图表是图片格式,没法直接存向量数据库做检索。所以要用 Gemini 把每张图"翻译"成文字描述。

这一步的关键完全在 Prompt 上。

一开始我用了个很随意的 prompt:"描述这张图片"。Gemini 回了一句"这是一张柱状图,显示了一些数据"。等于没说。

后来我改成了一个结构化的 prompt,要求它必须输出:图表类型、标题、所有具体数字、趋势分析、标签和图例、时间范围、计量单位,并且特别强调"数字要精确,能看到具体数值的不要说约"。

改完之后效果直接起飞。同一张苹果营收图,它会输出"iPhone 收入分别为 2052 亿、2006 亿、2012 亿美元"这种精确到个位数的描述。这才是金融场景需要的。

向量数据库:为什么选 Qdrant

数据处理完,全都是文本了,要存进向量数据库做检索。

我对比了 Chroma、FAISS、Weaviate、Pinecone 几个方案,最后选了 Qdrant。核心原因就一个:它原生支持混合搜索(Dense + Sparse),不用自己实现 RRF 融合算法。

Chroma 太轻量,生产不够用。FAISS 不支持 metadata 过滤。Pinecone 纯云端不能本地部署。Qdrant 用 Docker 跑在本地,还有个 Dashboard 能可视化看数据,开发阶段特别方便。

Embedding 模型用的是 Gemini Embedding(3072 维)做 Dense,加上 BM25 做 Sparse。Chunk 大小定在 500-800 tokens,这个是试出来的——太小上下文不够,太大语义不聚焦。

入库的时候还有个容易被忽略的点:Metadata。每个 chunk 都带上了公司名、文档类型、年份、页码这些元信息。检索的时候如果用户问"苹果的收入",系统会先用 LLM 从问题里提取出 company=apple 这个过滤条件,只在苹果相关的数据里搜索。不然数据库里存了苹果、微软、亚马逊的年报,全混在一起搜效果就差了。

检索精度:三招拉满

RAG 系统里,检索精度比 LLM 能力更重要。检索出来的内容不对,LLM 再强也白搭。

我用了三个手段:

一是混合搜索。Dense Search 理解语义("revenue growth"和"sales increase"是同一个意思),Sparse Search(BM25)精确匹配关键词。两个结果用 RRF 算法合并。

二是动态 metadata 过滤。用 LLM + Pydantic Schema 从用户问题里自动提取出公司名、年份、文档类型这些过滤条件,缩小搜索范围。

三是 Cross Encoder 重排序。混合搜索拿到 Top-20 之后,用 Cross Encoder 把 query 和每个 document 拼在一起,让模型直接打分排序。精度比普通的 embedding 相似度高很多,但速度慢,所以只用在 Top-K 重排这一步。

实测下来,纯语义搜索、混合搜索、混合搜索+重排序,三个方案的 Top-1 准确率差距非常明显。加了 Cross Encoder 之后,排第一的基本就是最相关的那个 chunk。

Agent:RAG + MCP 双线作战

检索搞定之后,就是把所有东西拼成一个完整的 Agent 了。

这个 Agent 手里有两个工具:

  • deep_rag_search:从向量数据库检索年报数据
  • live_finance_researcher:通过 MCP 查 Yahoo Finance 实时数据

System Prompt 里写清楚了分工——问历史数据用 RAG,问实时行情用 MCP,做综合分析两个都用。

还加了 Memory(SqliteSaver 做持久化),这样 Agent 能记住之前聊过什么,可以连续对话。你先问"苹果的收入结构是什么",再问"和去年比怎么样",它知道你还在说苹果。

TODO Planner:从"走一步看一步"到"先计划再执行"

到这一步其实已经能用了。但有个问题——面对复杂问题,Agent 是想到什么工具就调什么工具,没有章法。

加了 LangChain 的 TodoListMiddleware 之后,完全不一样了。

我问它"对比微软 Q2 财报和当前股价",它先调用 write_todos 生成了一个 3 步计划:

  • 步骤1:从年报数据中检索微软 Q2 收入(进行中)
  • 步骤2:从 Yahoo Finance 获取微软当前股票表现(待处理)
  • 步骤3:综合分析,输出报告(待处理)

然后按步骤一步步执行。执行过程中还会根据实际情况调整计划——比如本地没有微软的年报数据,它会把步骤 1 标记为"失败,切换到 live researcher",然后改从 Yahoo Finance 拿数据。

这种自适应能力挺让人惊喜的。

简单问题它不会触发计划,直接回答。只有多步骤的复杂问题才会走 TODO 流程。这个区分是通过 write_todos 工具的 docstring 实现的,不需要额外配置。

Summarization:防止上下文爆掉

复杂查询过程中,Agent 来回调了很多次工具,消息数量很快就能到几十条。直接超出 LLM 的上下文窗口怎么办?

加了 SummarizationMiddleware,设一个阈值(我设的 25 条),超过之后自动把前面的消息压缩成一条摘要,保留最近的消息继续工作。

在 LangSmith 里能看到,一开始 Summarization 的执行时间是 0 秒(没触发),跑到中间某个节点突然变成了 14 秒——这就是摘要在工作了。

技术栈一览

模块
技术选型
实时数据
MCP + Yahoo Finance
PDF 处理
Docling(IBM 开源)
图片描述
Gemini 2.5 Flash
向量数据库
Qdrant(Docker 本地部署)
Dense Embedding
Gemini Embedding
Sparse Embedding
BM25(FastEmbedSparse)
重排序
HuggingFace Cross Encoder
Agent 框架
LangChain + LangGraph
LLM
Gemini 2.5 Flash

除了 Gemini API 有少量费用(处理几百张图大概不到 1 美元),其他全是开源或免费方案。

哪些坑值得注意

搞下来两周,踩的坑不少,挑几个印象深的说:

Yahoo Finance 的 MCP 底层用的 yfinance 库,短时间调用太频繁会被限流。我有一次连续跑了好几个复杂查询,直接被 ban 了一阵子。

Docling 对加密的和扫描版 PDF 不太行,最好用原生数字 PDF。另外表格跨页的话可能被拆成两个,要注意检查。

Chunk 大小真的需要试。我一开始用的 200 tokens,检索出来的内容碎片化严重。后来加到 500-800,效果才稳定下来。

Cross Encoder 精度高但速度慢,千万别用来做全库搜索,只适合做 Top-K 重排序。

完整教程

这篇算是把整个系统的架构和设计思路走了一遍。如果你想跟着动手实现,我把具体的代码实现写成了 8 篇教程:

  1. 用 MCP + Yahoo Finance 打造实时股票研究 Agent
  2. 金融场景多模态 RAG 系统设计(5 种方案对比)
  3. 用 Docling 从金融 PDF 提取数据
  4. 用 Gemini 给图表自动生成文字描述
  5. Qdrant 向量数据库搭建与数据入库
  6. 混合搜索 + Cross Encoder 重排序
  7. 搭建多模态金融研究 Agent(RAG + MCP)
  8. 加入 TODO 规划器和消息摘要

每篇都有完整代码、踩坑记录和效果对比,从第一篇跟到最后一篇就能搭出一个完整的金融研究 Agent。放在付费合集里了,感兴趣的可以去看看。

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-02-19 10:45:08 HTTP/2.0 GET : https://mffb.com.cn/a/482572.html
  2. 运行时间 : 0.139166s [ 吞吐率:7.19req/s ] 内存消耗:4,675.06kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=70b87fb5aeb7485a0190adf3568e6af9
  1. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/runtime/temp/49e0cd3e0528281c5c5fae705243dc37.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000467s ] mysql:host=127.0.0.1;port=3306;dbname=no_mfffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000644s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.002017s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.002646s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000548s ]
  6. SELECT * FROM `set` [ RunTime:0.002125s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000581s ]
  8. SELECT * FROM `article` WHERE `id` = 482572 LIMIT 1 [ RunTime:0.013238s ]
  9. UPDATE `article` SET `lasttime` = 1771469108 WHERE `id` = 482572 [ RunTime:0.006443s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 65 LIMIT 1 [ RunTime:0.001122s ]
  11. SELECT * FROM `article` WHERE `id` < 482572 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000485s ]
  12. SELECT * FROM `article` WHERE `id` > 482572 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.004047s ]
  13. SELECT * FROM `article` WHERE `id` < 482572 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.012301s ]
  14. SELECT * FROM `article` WHERE `id` < 482572 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.015727s ]
  15. SELECT * FROM `article` WHERE `id` < 482572 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.009422s ]
0.140875s