多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

ai_quant_trade Vibe Trading Skill 解析:doc-reader 通用文档读取工具 `read_document` 全指南

ai_quant_trade Vibe Trading Skill 解析:doc-reader 通用文档读取工具 `read_document` 全指南 金融科技示例工程【免费下载链接】ai_quant_tradeStock AI Trader: 1-stop platform for learning, sim live trading. Covers: stock basics, strategies, LLMs, factor mining, ML/DL/RL, graph nets, HFT, C deploy JoinQuant code. 股票AI操盘手一站式学习、模拟、实盘平台。涵盖股票基础、策略、大模型、因子挖掘、机器学习/深度学习/强化学习、图网络、高频交易、C部署及聚宽代码。项目地址https://gitcode.com/gh_mirrors/ai/ai_quant_trade点击查看免费下载导读本文深度解析 ai_quant_trade 仓库中 Vibe Trading 技能包vibe_trading_skills内的doc-reader技能一个面向 LLM Agent 的通用文档读取工具Universal Document Reader。它通过统一的read_document工具入口按文件扩展名自动分发解析逻辑覆盖 PDF、Word、Excel、PowerPoint、图片 OCR、CSV/TSV、纯文本、配置文件、标记语言与绝大多数源码文件并以统一的 JSON 信封结构返回抽取结果。读完本文你将掌握该工具的完整格式支持矩阵、调用规范、返回结构、编码回退与 OCR 原理以及它在研报摘要、合同审查、表格快速预览、扫描件 OCR 等真实量化研究场景中的工作流并了解它与trade-journal交易日志分析、web-reader网页读取等兄弟技能的分工协作关系。一、doc-reader 在技能包中的定位doc-reader是 Vibe Trading 技能包中category: tool类别的工具型技能其完整定义位于 doc-reader/SKILL.md元信息如下--- name: doc-reader description: Read any common document/data file — PDF, Word (.docx), Excel (.xlsx/.xls), PowerPoint (.pptx), images (OCR), CSV/TSV, plain text, JSON/YAML/TOML, HTML/XML, and most source-code files. Use the read_document tool. category: tool ---技能包整体来自 HKUDS 的 Vibe-Trading 项目见 vibe_trading_skills/README.md其中既有面向投研分析的分析型技能如行为金融、宏观分析、多因子也有大量工具型技能。doc-reader属于后者它不产出任何投资结论职责是把各种格式的本地文件翻译成 LLM 可以直接阅读的文本是其他分析型技能的输入前端。它的核心设计理念是单一入口 扩展名分发dispatch by file extension无论用户上传的是 PDF 研报、Excel 交割单还是扫描截图Agent 都只调用同一个read_document工具由工具内部按文件扩展名路由到对应解析器最终返回一个统一结构的 JSON 信封。这让 LLM 无需记忆多套解析 API也避免了用 Python 脚本临时解析这种容易出错的做法。二、支持的格式矩阵doc-reader的格式支持覆盖日常办公与投研场景中的绝大多数文件类型完整矩阵如下类别扩展名处理说明PDF.pdf文本页毫秒级抽取扫描/图片页自动回退到 OCRWord.docx抽取段落 表格单元格Excel.xlsx,.xls读取全部工作表每表默认预览前 100 行PowerPoint.pptx抽取幻灯片文本内容图片.png/.jpg/.jpeg/.gif/.bmp/.webp/.tiff仅做 OCRCSV / TSV.csv,.tsv原文文本带编码回退纯文本.txt/.md/.log/.rst原文文本带编码回退配置文件.json/.yaml/.yml/.toml/.ini/.cfg/.env原文文本标记语言.html/.htm/.xml原文文本不做 HTML 剥离源码文件.py/.js/.ts/.tsx/.go/.rs/.java/.cpp/.c/.sql/.sh/...原文文本未知扩展名其他一切尽力按 UTF-8/GBK 文本读取值得注意的边界行为HTML/XML 不做剥离no HTML stripping返回的是原始标记文本而非净化后的纯文本因此该技能不适合提取网页正文的任务——网页正文抽取应交给web-reader技能的read_url工具见 web-reader/SKILL.md后者会把 URL 转成去除广告与导航的 Markdown。源码文件原样返回不重排、不重新缩进Source-code files are returned raw; do not re-format or re-indent以保证代码可被原样引用。被拦截的文件类型以下类型在上传/upload阶段即被拒绝Blocked(rejected at/upload): executables (.exe/.dll/.so/...) and archives (.zip/.tar/...). Ask the user to unpack archives locally first.即可执行文件.exe、.dll、.so等与压缩包.zip、.tar等不可直接读取。文档明确要求若用户上传的是压缩包应请用户先在本地解压再上传解压后的文件。这是从安全与实用性两方面考虑的设计——可执行文件存在安全风险压缩包则需要解压后才能定位目标文件。三、调用规范直接调用工具不要在 bash 里跑 Pythondoc-reader有一条最高优先级的使用铁律Always call the tool directly — do not run Python from bash.即Agent 必须直接调用read_document工具而不是通过bash启动 Python 脚本自行解析。这是为了让解析逻辑保持统一、可控、可审计也避免临时脚本在编码、依赖、异常处理上出现偏差。标准调用示例摘自 doc-reader/SKILL.mdread_document(file_pathuploads/paper.pdf) read_document(file_pathuploads/annual_report.pdf, pages1-10) read_document(file_pathuploads/contract.docx) read_document(file_pathuploads/sales.xlsx) read_document(file_pathuploads/deck.pptx) read_document(file_pathuploads/chart.png) # image → OCR read_document(file_pathuploads/config.yaml) read_document(file_pathuploads/notes.md)参数说明file_path必填指向已上传文件的路径示例中统一放在uploads/目录下。pages仅对 PDF 生效用于按页区间切片读取如1-10表示第 110 页其他格式会忽略该参数。pages参数的价值在于 PDF 是文档中最常见的长文本载体配合下文15000 字符截断机制可以逐段读取长篇研报避免一次性返回被截断丢失内容。四、统一返回信封Return envelope无论什么格式read_document的返回值都遵循同一个 JSON 结构{ status: ok, file: paper.pdf, format: pdf, char_count: 52000, truncated: true, text: ... }各字段含义字段含义status处理状态ok表示成功file原文件名format识别出的格式标识如pdf、docxchar_count抽取文本的字符数truncated是否发生截断true表示内容超出上限被截断text抽取出的文本内容格式专属附加字段在统一信封之上不同格式会追加各自的附加键格式附加键pdftotal_pages、pages_read、ocr_pagesdocxparagraphs、tablesexcelsheets数组每项为{name, rows, cols}pptxslidestextencoding、size这些附加字段为 Agent 提供了重要的上下文元数据PDF 的total_pages/pages_read让 Agent 能判断这次只读了一部分是否需要用pages继续切片ocr_pages则标明其中有多少页走了 OCR 路径帮助判断文本质量。Excel 的sheets数组给出每张表的名字与行列规模即使内容被 100 行预览截断Agent 也能知道表的整体结构。文本类的encoding记录最终采用的编码出现乱码时可据此判断是编码识别错误还是内容本身问题。截断机制Content longer than 15000 chars is truncated; for PDFs use thepagesparameter to read slices.单次返回的文本内容超过 15000 字符即被截断并在信封中标记truncated: true。对于长 PDF正确做法是用pages参数分段读取例如先读pages1-20再读pages21-40而不是期望一次拿到全文。这一设计是为了控制单次上下文占用token budget对 LLM Agent 而言是友好的。五、典型工作流Workflowsdoc-reader文档给出了四类高频场景的推荐工作流覆盖了量化研究与投顾场景中绝大多数文件输入1. 论文 / 研报摘要Paper / report summary1. read_document(file_pathpaper.pdf) → full text 2. Extract abstract, methodology, conclusion → summarize先整篇读取 PDF 获取全文再抽取摘要、方法、结论进行总结。若 PDF 过长被截断应结合pages参数分片读取或用total_pages判断总页数后按章节分批处理。2. 合同审查Contract review1. read_document(file_pathcontract.docx) → paragraphs tables 2. Flag key clauses (termination, liability, payment, IP)读取 Word 文档获得段落与表格然后聚焦标记关键条款终止条款、责任条款、付款条款、知识产权条款。3. 表格快速预览Spreadsheet quick-look1. read_document(file_pathsales.xlsx) → all sheet previews 2. If user wants trade journal analysis specifically, pivot to analyze_trade_journal tool instead (see trade-journal skill).用read_document拿到所有工作表的预览每表前 100 行用于瞄一眼但如果用户的目标是交易日志交割单分析应切换到analyze_trade_journal工具见 trade-journal/SKILL.md而不是用通用读取硬啃。这是技能包内通用读取器与专用分析器的典型分工通用工具负责兜底读取专用工具负责深度分析。4. 图表 / 截图 / 扫描 PDFChart / screenshot / scanned PDF1. read_document(file_pathscan.png) → OCR text 2. If OCR returns empty, tell the user; dont fabricate.图片与扫描版 PDF 走 OCR 提取文字。若 OCR 返回空文本必须如实告知用户不得编造内容——这是文档强调的诚实性红线。六、关键实现细节与使用注意事项Notes1. 编码回退顺序Encoding fallbackorder for text: utf-8 → utf-8-sig → gbk → gb2312 → big5 → latin-1.纯文本类文件含未知扩展名按文本读取时的编码识别依次尝试utf-8utf-8-sig带 BOM 的 UTF-8gbk简体中文常用编码gb2312GBK 的前身big5繁体中文常用编码latin-1兜底永不失败这一设计对中国 A 股投研场景非常关键券商的交割单、行情导出、公告文本大量使用 GBK/GB2312 编码如 trade-journal/SKILL.md 中明确提到同花顺、东方财富的 A 股 CSV 通常为 GBK 编码而富途的港美股 CSV 为 UTF-8编码回退保证了这类文件无需用户手动转码即可读取。文本类返回信封中的encoding字段会标明最终命中的编码。2. OCR 引擎与依赖OCRuses RapidOCR; if the package is missing, image/scanned files return emptytextwith anotefield — tell the user to installrapidocr-onnxruntime.图片与扫描件的 OCR 由RapidOCR基于 ONNX Runtime 的 OCR 引擎完成。依赖缺失时的降级行为是返回空的text并在响应中附带note字段说明原因此时应提示用户安装rapidocr-onnxruntime换言之OCR 能力不是内置的硬依赖而是可选增强装了 RapidOCR 才有 OCR 能力没装则如实返回空并给出提示而不是硬编造识别结果。这也再次呼应了该工具不编造、如实反馈的行为准则。3. Excel 预览行数限制Excel previewsare limited to 100 rows per sheet to stay in budget. If the user needs full data (e.g. trade journals), callanalyze_trade_journalinstead.每个工作表最多返回前100 行作为预览目的是控制 token 预算stay in budget。当用户需要全量数据例如完整交割单做交易行为分析时应转向analyze_trade_journal专用工具而非依赖通用读取。结合前面表格快速预览工作流可以看出Excel 的 100 行预览是看结构用的深度分析要交给专业工具。4. 源码文件原样返回Source-code filesare returned raw; do not re-format or re-indent.源码类文件按原样返回文本不做格式化或重排。这对代码审查、策略代码理解场景很重要——Agent 拿到的必须是用户文件中的真实代码任何美化都可能引入偏差。七、与技能包内其他技能的协作关系doc-reader不是孤立存在的它在 Vibe Trading 技能包中处于文件输入枢纽位置与trade-journal的分工doc-reader提供通用 Excel/CSV 预览100 行截断而 trade-journal/SKILL.md 中的analyze_trade_journal工具负责对同花顺/东方财富/富途/通用格式交割单做专业解析输出交易画像与四大行为偏差诊断处置效应、过度交易、追涨、锚定并支持analysis_typefull/profile/behavior/strategy与filter_expr日期区间、标的、市场筛选。当用户目标是分析我的交割单时应直接调用后者。与shadow-account的衔接shadow-account/SKILL.md 明确要求其前提是用户已上传交割单且analyze_trade_journal已跑过——即交割单先经专用工具解析而不是通用读取再进入影子账户策略提炼与多市场回测流程。与web-reader的互补web-reader/SKILL.md 的read_url负责把 URL 转成干净 Markdown读取在线 API 文档、研报网页、GitHub README 等而doc-reader负责本地上传文件。二者一个管线上 URL一个管本地文件共同构成技能包完整的内容摄取能力。从技能包的整体目录结构vibe_trading_skills看doc-reader与web-reader、data-routing等工具型技能并列为数十个分析型技能如研报复现、财报分析、形态识别、情绪分析提供文件读取底座。它不产出观点、不触发交易只做一件事把任意格式的文件变成 LLM 可读的、结构化的文本——这正是 Agent 化量化工作台最基础也最关键的环节。八、小结何时用、怎么用、注意什么维度要点何时用用户上传了 PDF/Word/Excel/PPT/图片/文本/配置文件/源码需要 Agent 读取内容时怎么调直接调用read_document(file_path...)严禁从 bash 跑 Python 自建解析长 PDF用pages1-10分片读取注意 15000 字符截断与truncated标记Excel 全量数据100 行预览不够时转向analyze_trade_journal等专用工具扫描件/图片依赖 RapidOCRrapidocr-onnxruntimeOCR 为空时如实告知不编造编码问题按 utf-8 → utf-8-sig → gbk → gb2312 → big5 → latin-1 自动回退中文文件通常无需手动转码红线可执行文件与压缩包被拒源码原样返回不改写doc-reader的价值在于一个工具、一个信封、覆盖所有格式对 LLM Agent 而言读取任何文件都只需记住一个入口和一套返回结构对技能包而言它为下游所有需要文件输入的投研分析流程提供了统一的、诚实可靠的文本抽取层。理解它的格式矩阵、截断机制、编码回退与 OCR 降级行为是正确使用 Vibe Trading 技能包处理研报、交割单、财报等真实文件的第一步。赞分享金融科技示例工程【免费下载链接】ai_quant_tradeStock AI Trader: 1-stop platform for learning, sim live trading. Covers: stock basics, strategies, LLMs, factor mining, ML/DL/RL, graph nets, HFT, C deploy JoinQuant code. 股票AI操盘手一站式学习、模拟、实盘平台。涵盖股票基础、策略、大模型、因子挖掘、机器学习/深度学习/强化学习、图网络、高频交易、C部署及聚宽代码。项目地址https://gitcode.com/gh_mirrors/ai/ai_quant_trade点击查看免费下载相关推荐Vibe-Trading 通用文档阅读器 read_document 技能全解析多格式文本提取、OCR 引擎切换与安全边界Vibe Trading 通用文档阅读器 read_document 技能全解析多格式文本提取、OCR 引擎切换与安全边界 Vibe Trading 的 do人工智能AI Agent金融科技MCP 服务DLSS Swapper 快速上手指南三步完成游戏内 DLSS 版本替换DLSS Swapper 快速上手指南三步完成游戏内 DLSS 版本替换 DLSS Swapper 是一款 Windows 桌面工具用来下载、管理并互换游戏桌面应用从0.1.0到0.1.3仓颉multipart版本演进全记录与Cangjie生态贡献入门指南从0.1.0到0.1.3仓颉multipart版本演进全记录与Cangjie生态贡献入门指南 想搞清楚仓颉 multipart 到底经历了什么、以及怎么上手金融科技示例工程上一篇ZeroTierOne国产化适配龙芯架构编译指南下一篇cryptography 项目补丁提交指南从分支规范、代码风格到安全 API 设计的完整贡献流程创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表