[{"content":"核心项目 我构建了一系列AI驱动的自动化工具，覆盖金融内容、开发者效率、信息管理等领域。\n📝 md2wechat Markdown转微信公众号CLI工具\n用Markdown写公众号文章，像发朋友圈一样简单。支持API和AI两种转换模式，一键推送到微信草稿箱。\n技术栈： Go, CLI, WeChat API 功能： Markdown转换、AI去痕、风格写作、草稿推送 GitHub： geekjourneyx/md2wechat 🌊 Info Stream 个人信息流与AI摘要系统\n从多个RSS源获取信息，通过AI自动分析、总结和整理，生成结构化的日报和周报。\n技术栈： Python, LLM, RSS, Telegram Bot, Obsidian 功能： 多源聚合、AI分析、自动报告、Telegram推送、知识库导出 特色： 48小时内容保鲜+跨天去重 🗺️ 指数地图 基金指数数据可视化地图\n把枯燥的指数估值数据变成一张直观的可视化地图，支持飞书自动推送。\n技术栈： Python, Matplotlib, Pandas, 飞书API 功能： PE/PB/股息率/ROE一图呈现、养老金数据看板 特色： Excel数据驱动，更新方便 📊 投顾日报自动化 金融日报全流程自动化\n从数据采集、处理、生成到推送的端到端自动化系统。\n技术栈： Python, Wind API, 飞书, CRM 功能： 数据采集→审核→生成→推送→CRM发布 效率： 从2小时缩短到5分钟 🎤 MiMo语音克隆 基于小米MiMo API的语音克隆工具\n提供一段音频样本，复刻音色并用该音色说任意文本。\n技术栈： Python, 小米MiMo API 功能： 音色克隆、长文本分段、数字转换、并行生成 输出： WAV/MP3格式 📱 小红书卡片生成器 小红书爆款图文自动生成系统\n输入选题关键词，自动输出可直接发布的高质量图文卡片和配套发布文案。\n技术栈： HTML/CSS, AI生成 功能： 智能选题拓展、自动内容生成、视觉模板渲染 输出： 5-6页图文卡片 + 标题×10 + 正文 + 话题词 🤖 Hermes Agent Skills 220+个AI技能库\n覆盖金融、内容、自动化、开发者工具等23个分类的AI技能集合。\n分类： 金融数据、内容生成、自动化工作流、开发者工具、社媒运营等 特色： 可复用、可组合、持续更新 规模： 220+个技能，23个分类 更多项目 Wind数据适配器 — 从Wind终端读取和整理因子数据 CRM自动发布 — 浏览器自动化发布日报到CRM系统 螺丝钉文章管理 — 金融IP内容矩阵管理 港险IP矩阵 — 多平台内容矩阵 知识星球管理 — 知识星球完整读写管理 电商库存监控 — 多平台库存实时监控 书籍思维导图生成器 — 从书籍提取核心内容生成可视化 💡 这些项目都是我用AI工具链构建的，如果你对某个项目感兴趣，欢迎在GitHub上交流！\n","permalink":"https://dcdreamy-code.github.io/projects/","summary":"\u003ch2 id=\"核心项目\"\u003e核心项目\u003c/h2\u003e\n\u003cp\u003e我构建了一系列AI驱动的自动化工具，覆盖金融内容、开发者效率、信息管理等领域。\u003c/p\u003e\n\u003chr\u003e\n\u003ch3 id=\"-md2wechat\"\u003e📝 md2wechat\u003c/h3\u003e\n\u003cp\u003e\u003cstrong\u003eMarkdown转微信公众号CLI工具\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e用Markdown写公众号文章，像发朋友圈一样简单。支持API和AI两种转换模式，一键推送到微信草稿箱。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e技术栈：\u003c/strong\u003e Go, CLI, WeChat API\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e功能：\u003c/strong\u003e Markdown转换、AI去痕、风格写作、草稿推送\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eGitHub：\u003c/strong\u003e \u003ca href=\"https://github.com/geekjourneyx/md2wechat\"\u003egeekjourneyx/md2wechat\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003ch3 id=\"-info-stream\"\u003e🌊 Info Stream\u003c/h3\u003e\n\u003cp\u003e\u003cstrong\u003e个人信息流与AI摘要系统\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e从多个RSS源获取信息，通过AI自动分析、总结和整理，生成结构化的日报和周报。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e技术栈：\u003c/strong\u003e Python, LLM, RSS, Telegram Bot, Obsidian\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e功能：\u003c/strong\u003e 多源聚合、AI分析、自动报告、Telegram推送、知识库导出\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e特色：\u003c/strong\u003e 48小时内容保鲜+跨天去重\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003ch3 id=\"-指数地图\"\u003e🗺️ 指数地图\u003c/h3\u003e\n\u003cp\u003e\u003cstrong\u003e基金指数数据可视化地图\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e把枯燥的指数估值数据变成一张直观的可视化地图，支持飞书自动推送。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e技术栈：\u003c/strong\u003e Python, Matplotlib, Pandas, 飞书API\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e功能：\u003c/strong\u003e PE/PB/股息率/ROE一图呈现、养老金数据看板\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e特色：\u003c/strong\u003e Excel数据驱动，更新方便\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003ch3 id=\"-投顾日报自动化\"\u003e📊 投顾日报自动化\u003c/h3\u003e\n\u003cp\u003e\u003cstrong\u003e金融日报全流程自动化\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e从数据采集、处理、生成到推送的端到端自动化系统。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e技术栈：\u003c/strong\u003e Python, Wind API, 飞书, CRM\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e功能：\u003c/strong\u003e 数据采集→审核→生成→推送→CRM发布\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e效率：\u003c/strong\u003e 从2小时缩短到5分钟\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003ch3 id=\"-mimo语音克隆\"\u003e🎤 MiMo语音克隆\u003c/h3\u003e\n\u003cp\u003e\u003cstrong\u003e基于小米MiMo API的语音克隆工具\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e提供一段音频样本，复刻音色并用该音色说任意文本。\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e技术栈：\u003c/strong\u003e Python, 小米MiMo API\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e功能：\u003c/strong\u003e 音色克隆、长文本分段、数字转换、并行生成\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e输出：\u003c/strong\u003e WAV/MP3格式\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003ch3 id=\"-小红书卡片生成器\"\u003e📱 小红书卡片生成器\u003c/h3\u003e\n\u003cp\u003e\u003cstrong\u003e小红书爆款图文自动生成系统\u003c/strong\u003e\u003c/p\u003e","title":"🚀 我的项目"},{"content":"👋 Hi, I\u0026rsquo;m Charlie.D 金融从业者 × AI工具链构建者 × Developer Advocate\n我是一名金融行业从业者，同时也是一个AI工具的狂热构建者。我相信AI不是用来取代人的，而是用来放大人的能力的。\n🎯 我在做什么 我用AI把自己的工作效率提升了10倍，然后把这套方法论变成了220+个可复用的自动化工具，帮助更多中文开发者。\n核心理念： \u0026ldquo;如果你每天重复做一件事超过3次，就应该把它自动化。\u0026rdquo;\n🛠️ 我构建的工具 工具 解决的问题 md2wechat Markdown转微信公众号，告别排版烦恼 Info Stream 多源信息聚合+AI摘要，自动化信息管理 Hermes Agent Skills 220+个AI技能，覆盖金融/内容/自动化 指数地图 把枯燥的估值数据变成可视化地图 投顾日报自动化 从数据采集到推送的全流程自动化 MiMo语音克隆 5分钟复刻你的声音 💡 我的技术栈 语言： Python, Go, JavaScript/TypeScript AI/LLM： OpenAI API, LangChain, DSPy, vLLM 自动化： Cron, Launchd, GitHub Actions 数据： Pandas, OpenPyXL, Wind API 平台： 飞书, 微信, Telegram, 知识星球 工具： Hugo, Playwright, Scrapling 📫 联系我 GitHub： dcdreamy-code Twitter： @your_handle 邮箱： your@email.com \u0026ldquo;The best way to predict the future is to build it.\u0026rdquo; — Alan Kay\n","permalink":"https://dcdreamy-code.github.io/about/","summary":"\u003ch2 id=\"-hi-im-charlied\"\u003e👋 Hi, I\u0026rsquo;m Charlie.D\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003e金融从业者 × AI工具链构建者 × Developer Advocate\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003e我是一名金融行业从业者，同时也是一个AI工具的狂热构建者。我相信AI不是用来取代人的，而是用来放大人的能力的。\u003c/p\u003e\n\u003ch3 id=\"-我在做什么\"\u003e🎯 我在做什么\u003c/h3\u003e\n\u003cp\u003e我用AI把自己的工作效率提升了\u003cstrong\u003e10倍\u003c/strong\u003e，然后把这套方法论变成了\u003cstrong\u003e220+个可复用的自动化工具\u003c/strong\u003e，帮助更多中文开发者。\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e核心理念：\u003c/strong\u003e \u0026ldquo;如果你每天重复做一件事超过3次，就应该把它自动化。\u0026rdquo;\u003c/p\u003e\n\u003ch3 id=\"-我构建的工具\"\u003e🛠️ 我构建的工具\u003c/h3\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e工具\u003c/th\u003e\n          \u003cth\u003e解决的问题\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003cstrong\u003emd2wechat\u003c/strong\u003e\u003c/td\u003e\n          \u003ctd\u003eMarkdown转微信公众号，告别排版烦恼\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003cstrong\u003eInfo Stream\u003c/strong\u003e\u003c/td\u003e\n          \u003ctd\u003e多源信息聚合+AI摘要，自动化信息管理\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003cstrong\u003eHermes Agent Skills\u003c/strong\u003e\u003c/td\u003e\n          \u003ctd\u003e220+个AI技能，覆盖金融/内容/自动化\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003cstrong\u003e指数地图\u003c/strong\u003e\u003c/td\u003e\n          \u003ctd\u003e把枯燥的估值数据变成可视化地图\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003cstrong\u003e投顾日报自动化\u003c/strong\u003e\u003c/td\u003e\n          \u003ctd\u003e从数据采集到推送的全流程自动化\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e\u003cstrong\u003eMiMo语音克隆\u003c/strong\u003e\u003c/td\u003e\n          \u003ctd\u003e5分钟复刻你的声音\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch3 id=\"-我的技术栈\"\u003e💡 我的技术栈\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e语言：\u003c/strong\u003e Python, Go, JavaScript/TypeScript\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAI/LLM：\u003c/strong\u003e OpenAI API, LangChain, DSPy, vLLM\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e自动化：\u003c/strong\u003e Cron, Launchd, GitHub Actions\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e数据：\u003c/strong\u003e Pandas, OpenPyXL, Wind API\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e平台：\u003c/strong\u003e 飞书, 微信, Telegram, 知识星球\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e工具：\u003c/strong\u003e Hugo, Playwright, Scrapling\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"-联系我\"\u003e📫 联系我\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eGitHub：\u003c/strong\u003e \u003ca href=\"https://github.com/dcdreamy-code\"\u003edcdreamy-code\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eTwitter：\u003c/strong\u003e \u003ca href=\"https://x.com/your_handle\"\u003e@your_handle\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e邮箱：\u003c/strong\u003e \u003ca href=\"mailto:your@email.com\"\u003eyour@email.com\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u0026ldquo;The best way to predict the future is to build it.\u0026rdquo; — Alan Kay\u003c/p\u003e","title":"关于我"},{"content":"背景 每天早上，我需要完成一份金融日报，包含：\nA股/港股指数涨跌幅 国债收益率变动 重点基金表现 市场热点新闻 手动流程： 打开Wind → 导出数据 → Excel处理 → 写分析 → 排版 → 发送到飞书群\n耗时： 约2小时\n问题 每天重复同样的流程，而且：\n数据源分散，需要打开多个网站 Excel处理容易出错 排版格式不统一 经常忘记某个步骤 解决方案 我构建了一个端到端的自动化流水线：\n1 数据采集 → 数据处理 → 内容生成 → 格式化 → 推送 第一步：数据采集 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 # 从多个数据源自动采集 def collect_market_data(): # A股指数 a_share = fetch_a_share_indices() # 港股指数 hk = fetch_hk_indices() # 国债收益率 bond = fetch_bond_yield() # 基金净值 fund = fetch_fund_nav() return { \u0026#34;a_share\u0026#34;: a_share, \u0026#34;hk\u0026#34;: hk, \u0026#34;bond\u0026#34;: bond, \u0026#34;fund\u0026#34;: fund } 第二步：数据处理 1 2 3 4 5 6 # 自动计算涨跌幅、生成图表 def process_data(raw_data): df = pd.DataFrame(raw_data) df[\u0026#39;change_pct\u0026#39;] = (df[\u0026#39;close\u0026#39;] - df[\u0026#39;prev_close\u0026#39;]) / df[\u0026#39;prev_close\u0026#39;] df[\u0026#39;signal\u0026#39;] = df[\u0026#39;change_pct\u0026#39;].apply(generate_signal) return df 第三步：内容生成 1 2 3 4 5 6 7 8 9 10 11 12 # 用LLM生成分析文案 def generate_analysis(data): prompt = f\u0026#34;\u0026#34;\u0026#34; 基于以下市场数据，生成一份简洁的市场点评： {data.to_string()} 要求： 1. 突出重点变化 2. 语言简洁专业 3. 适合投顾阅读 \u0026#34;\u0026#34;\u0026#34; return llm.generate(prompt) 第四步：推送 1 2 3 4 5 6 7 8 # 自动推送到飞书 def push_to_feishu(content): # 生成飞书文档 doc = create_feishu_doc(content) # 发送到群聊 send_feishu_message(doc.url) # 同步到多维表格 sync_to_bitable(data) 效果 指标 手动 自动化 提升 耗时 2小时 5分钟 96% 出错率 5% 0.1% 98% 一致性 低 高 质变 技术栈 Python — 核心语言 Pandas — 数据处理 OpenAI API — 内容生成 飞书API — 文档和消息推送 Cron — 定时任务 Wind API — 金融数据源 关键收获 自动化不是偷懒，是释放创造力 — 把时间花在分析和决策上，而不是数据搬运 端到端思维 — 不是优化单个步骤，而是重新设计整个流程 AI是放大器 — 它不会替代你的判断，但会放大你的效率 下一步 我正在把这个系统开源，让更多的金融从业者受益。如果你也想自动化你的日报流程，欢迎关注我的GitHub。\n相关项目：\n投顾日报自动化 指数地图 Hermes Agent Skills 💡 如果你也有重复性的工作流程想要自动化，欢迎在评论区分享你的场景！\n","permalink":"https://dcdreamy-code.github.io/posts/ai-financial-report-automation/","summary":"\u003ch2 id=\"背景\"\u003e背景\u003c/h2\u003e\n\u003cp\u003e每天早上，我需要完成一份金融日报，包含：\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA股/港股指数涨跌幅\u003c/li\u003e\n\u003cli\u003e国债收益率变动\u003c/li\u003e\n\u003cli\u003e重点基金表现\u003c/li\u003e\n\u003cli\u003e市场热点新闻\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003e手动流程：\u003c/strong\u003e 打开Wind → 导出数据 → Excel处理 → 写分析 → 排版 → 发送到飞书群\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003e耗时：\u003c/strong\u003e 约2小时\u003c/p\u003e\n\u003ch2 id=\"问题\"\u003e问题\u003c/h2\u003e\n\u003cp\u003e每天重复同样的流程，而且：\u003c/p\u003e\n\u003col\u003e\n\u003cli\u003e数据源分散，需要打开多个网站\u003c/li\u003e\n\u003cli\u003eExcel处理容易出错\u003c/li\u003e\n\u003cli\u003e排版格式不统一\u003c/li\u003e\n\u003cli\u003e经常忘记某个步骤\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"解决方案\"\u003e解决方案\u003c/h2\u003e\n\u003cp\u003e我构建了一个\u003cstrong\u003e端到端的自动化流水线\u003c/strong\u003e：\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cdiv style=\"color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\n\u003ctable style=\"border-spacing:0;padding:0;margin:0;border:0;\"\u003e\u003ctr\u003e\u003ctd style=\"vertical-align:top;padding:0;margin:0;border:0;\"\u003e\n\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e1\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/td\u003e\n\u003ctd style=\"vertical-align:top;padding:0;margin:0;border:0;;width:100%\"\u003e\n\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-fallback\" data-lang=\"fallback\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e数据采集 → 数据处理 → 内容生成 → 格式化 → 推送\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003ch3 id=\"第一步数据采集\"\u003e第一步：数据采集\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cdiv style=\"color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\n\u003ctable style=\"border-spacing:0;padding:0;margin:0;border:0;\"\u003e\u003ctr\u003e\u003ctd style=\"vertical-align:top;padding:0;margin:0;border:0;\"\u003e\n\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e 1\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e 2\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e 3\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e 4\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e 5\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e 6\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e 7\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e 8\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e 9\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e10\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e11\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e12\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e13\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e14\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e15\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e16\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e17\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/td\u003e\n\u003ctd style=\"vertical-align:top;padding:0;margin:0;border:0;;width:100%\"\u003e\n\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-python\" data-lang=\"python\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#6272a4\"\u003e# 从多个数据源自动采集\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#ff79c6\"\u003edef\u003c/span\u003e \u003cspan style=\"color:#50fa7b\"\u003ecollect_market_data\u003c/span\u003e():\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#6272a4\"\u003e# A股指数\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    a_share \u003cspan style=\"color:#ff79c6\"\u003e=\u003c/span\u003e fetch_a_share_indices()\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#6272a4\"\u003e# 港股指数\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    hk \u003cspan style=\"color:#ff79c6\"\u003e=\u003c/span\u003e fetch_hk_indices()\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#6272a4\"\u003e# 国债收益率\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    bond \u003cspan style=\"color:#ff79c6\"\u003e=\u003c/span\u003e fetch_bond_yield()\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#6272a4\"\u003e# 基金净值\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    fund \u003cspan style=\"color:#ff79c6\"\u003e=\u003c/span\u003e fetch_fund_nav()\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#ff79c6\"\u003ereturn\u003c/span\u003e {\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#f1fa8c\"\u003e\u0026#34;a_share\u0026#34;\u003c/span\u003e: a_share,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#f1fa8c\"\u003e\u0026#34;hk\u0026#34;\u003c/span\u003e: hk,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#f1fa8c\"\u003e\u0026#34;bond\u0026#34;\u003c/span\u003e: bond,\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e        \u003cspan style=\"color:#f1fa8c\"\u003e\u0026#34;fund\u0026#34;\u003c/span\u003e: fund\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    }\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003ch3 id=\"第二步数据处理\"\u003e第二步：数据处理\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cdiv style=\"color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\n\u003ctable style=\"border-spacing:0;padding:0;margin:0;border:0;\"\u003e\u003ctr\u003e\u003ctd style=\"vertical-align:top;padding:0;margin:0;border:0;\"\u003e\n\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e1\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e2\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e3\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e4\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e5\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e6\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/td\u003e\n\u003ctd style=\"vertical-align:top;padding:0;margin:0;border:0;;width:100%\"\u003e\n\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-python\" data-lang=\"python\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#6272a4\"\u003e# 自动计算涨跌幅、生成图表\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#ff79c6\"\u003edef\u003c/span\u003e \u003cspan style=\"color:#50fa7b\"\u003eprocess_data\u003c/span\u003e(raw_data):\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    df \u003cspan style=\"color:#ff79c6\"\u003e=\u003c/span\u003e pd\u003cspan style=\"color:#ff79c6\"\u003e.\u003c/span\u003eDataFrame(raw_data)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    df[\u003cspan style=\"color:#f1fa8c\"\u003e\u0026#39;change_pct\u0026#39;\u003c/span\u003e] \u003cspan style=\"color:#ff79c6\"\u003e=\u003c/span\u003e (df[\u003cspan style=\"color:#f1fa8c\"\u003e\u0026#39;close\u0026#39;\u003c/span\u003e] \u003cspan style=\"color:#ff79c6\"\u003e-\u003c/span\u003e df[\u003cspan style=\"color:#f1fa8c\"\u003e\u0026#39;prev_close\u0026#39;\u003c/span\u003e]) \u003cspan style=\"color:#ff79c6\"\u003e/\u003c/span\u003e df[\u003cspan style=\"color:#f1fa8c\"\u003e\u0026#39;prev_close\u0026#39;\u003c/span\u003e]\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    df[\u003cspan style=\"color:#f1fa8c\"\u003e\u0026#39;signal\u0026#39;\u003c/span\u003e] \u003cspan style=\"color:#ff79c6\"\u003e=\u003c/span\u003e df[\u003cspan style=\"color:#f1fa8c\"\u003e\u0026#39;change_pct\u0026#39;\u003c/span\u003e]\u003cspan style=\"color:#ff79c6\"\u003e.\u003c/span\u003eapply(generate_signal)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#ff79c6\"\u003ereturn\u003c/span\u003e df\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003ch3 id=\"第三步内容生成\"\u003e第三步：内容生成\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cdiv style=\"color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\n\u003ctable style=\"border-spacing:0;padding:0;margin:0;border:0;\"\u003e\u003ctr\u003e\u003ctd style=\"vertical-align:top;padding:0;margin:0;border:0;\"\u003e\n\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e 1\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e 2\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e 3\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e 4\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e 5\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e 6\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e 7\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e 8\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e 9\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e10\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e11\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e12\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/td\u003e\n\u003ctd style=\"vertical-align:top;padding:0;margin:0;border:0;;width:100%\"\u003e\n\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-python\" data-lang=\"python\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#6272a4\"\u003e# 用LLM生成分析文案\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#ff79c6\"\u003edef\u003c/span\u003e \u003cspan style=\"color:#50fa7b\"\u003egenerate_analysis\u003c/span\u003e(data):\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    prompt \u003cspan style=\"color:#ff79c6\"\u003e=\u003c/span\u003e \u003cspan style=\"color:#f1fa8c\"\u003ef\u003c/span\u003e\u003cspan style=\"color:#f1fa8c\"\u003e\u0026#34;\u0026#34;\u0026#34;\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f1fa8c\"\u003e    基于以下市场数据，生成一份简洁的市场点评：\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f1fa8c\"\u003e    \u003c/span\u003e\u003cspan style=\"color:#f1fa8c\"\u003e{\u003c/span\u003edata\u003cspan style=\"color:#ff79c6\"\u003e.\u003c/span\u003eto_string()\u003cspan style=\"color:#f1fa8c\"\u003e}\u003c/span\u003e\u003cspan style=\"color:#f1fa8c\"\u003e\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f1fa8c\"\u003e    \n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f1fa8c\"\u003e    要求：\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f1fa8c\"\u003e    1. 突出重点变化\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f1fa8c\"\u003e    2. 语言简洁专业\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f1fa8c\"\u003e    3. 适合投顾阅读\n\u003c/span\u003e\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#f1fa8c\"\u003e    \u0026#34;\u0026#34;\u0026#34;\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#ff79c6\"\u003ereturn\u003c/span\u003e llm\u003cspan style=\"color:#ff79c6\"\u003e.\u003c/span\u003egenerate(prompt)\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003ch3 id=\"第四步推送\"\u003e第四步：推送\u003c/h3\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cdiv style=\"color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\n\u003ctable style=\"border-spacing:0;padding:0;margin:0;border:0;\"\u003e\u003ctr\u003e\u003ctd style=\"vertical-align:top;padding:0;margin:0;border:0;\"\u003e\n\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e1\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e2\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e3\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e4\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e5\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e6\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e7\n\u003c/span\u003e\u003cspan style=\"white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f\"\u003e8\n\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/td\u003e\n\u003ctd style=\"vertical-align:top;padding:0;margin:0;border:0;;width:100%\"\u003e\n\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-python\" data-lang=\"python\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#6272a4\"\u003e# 自动推送到飞书\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#ff79c6\"\u003edef\u003c/span\u003e \u003cspan style=\"color:#50fa7b\"\u003epush_to_feishu\u003c/span\u003e(content):\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#6272a4\"\u003e# 生成飞书文档\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    doc \u003cspan style=\"color:#ff79c6\"\u003e=\u003c/span\u003e create_feishu_doc(content)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#6272a4\"\u003e# 发送到群聊\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    send_feishu_message(doc\u003cspan style=\"color:#ff79c6\"\u003e.\u003c/span\u003eurl)\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#6272a4\"\u003e# 同步到多维表格\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    sync_to_bitable(data)\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/td\u003e\u003c/tr\u003e\u003c/table\u003e\n\u003c/div\u003e\n\u003c/div\u003e\u003ch2 id=\"效果\"\u003e效果\u003c/h2\u003e\n\u003ctable\u003e\n  \u003cthead\u003e\n      \u003ctr\u003e\n          \u003cth\u003e指标\u003c/th\u003e\n          \u003cth\u003e手动\u003c/th\u003e\n          \u003cth\u003e自动化\u003c/th\u003e\n          \u003cth\u003e提升\u003c/th\u003e\n      \u003c/tr\u003e\n  \u003c/thead\u003e\n  \u003ctbody\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e耗时\u003c/td\u003e\n          \u003ctd\u003e2小时\u003c/td\u003e\n          \u003ctd\u003e5分钟\u003c/td\u003e\n          \u003ctd\u003e\u003cstrong\u003e96%\u003c/strong\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e出错率\u003c/td\u003e\n          \u003ctd\u003e5%\u003c/td\u003e\n          \u003ctd\u003e0.1%\u003c/td\u003e\n          \u003ctd\u003e\u003cstrong\u003e98%\u003c/strong\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n      \u003ctr\u003e\n          \u003ctd\u003e一致性\u003c/td\u003e\n          \u003ctd\u003e低\u003c/td\u003e\n          \u003ctd\u003e高\u003c/td\u003e\n          \u003ctd\u003e\u003cstrong\u003e质变\u003c/strong\u003e\u003c/td\u003e\n      \u003c/tr\u003e\n  \u003c/tbody\u003e\n\u003c/table\u003e\n\u003ch2 id=\"技术栈\"\u003e技术栈\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003ePython\u003c/strong\u003e — 核心语言\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ePandas\u003c/strong\u003e — 数据处理\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eOpenAI API\u003c/strong\u003e — 内容生成\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e飞书API\u003c/strong\u003e — 文档和消息推送\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eCron\u003c/strong\u003e — 定时任务\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eWind API\u003c/strong\u003e — 金融数据源\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2 id=\"关键收获\"\u003e关键收获\u003c/h2\u003e\n\u003col\u003e\n\u003cli\u003e\u003cstrong\u003e自动化不是偷懒，是释放创造力\u003c/strong\u003e — 把时间花在分析和决策上，而不是数据搬运\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e端到端思维\u003c/strong\u003e — 不是优化单个步骤，而是重新设计整个流程\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eAI是放大器\u003c/strong\u003e — 它不会替代你的判断，但会放大你的效率\u003c/li\u003e\n\u003c/ol\u003e\n\u003ch2 id=\"下一步\"\u003e下一步\u003c/h2\u003e\n\u003cp\u003e我正在把这个系统开源，让更多的金融从业者受益。如果你也想自动化你的日报流程，欢迎关注我的GitHub。\u003c/p\u003e","title":"我如何用AI把金融日报从2小时缩短到5分钟"}]