AgentCPM深度研报助手Python入门实战:3步实现自动化研报数据采集

张开发
2026/4/8 12:35:41 15 分钟阅读

分享文章

AgentCPM深度研报助手Python入门实战:3步实现自动化研报数据采集
AgentCPM深度研报助手Python入门实战3步实现自动化研报数据采集你是不是也对那些动辄几十页、数据繁杂的行业研报感到头疼手动从PDF里复制粘贴数据不仅效率低下还容易出错。今天我们就来聊聊如何用Python和AgentCPM模型让电脑帮你自动完成这份枯燥的工作。想象一下你只需要运行一个脚本它就能自动从网上抓取最新的研报数据清洗整理成规整的表格甚至还能让AI帮你提炼出核心观点和数据摘要。整个过程从零开始只需要三步。即使你之前没怎么写过Python代码跟着这篇指南也能轻松上手打造你的第一个自动化研报分析工具。1. 准备工作搭建你的Python数据分析环境工欲善其事必先利其器。在开始写代码之前我们需要一个顺手的环境。对于新手来说我强烈推荐使用Anaconda它就像一个“全家桶”把Python解释器、常用的数据科学库以及一个方便的管理工具都打包好了能避免很多环境配置的麻烦。1.1 安装Anaconda首先去Anaconda官网下载对应你电脑系统Windows、macOS或Linux的安装包。选择Python 3.x版本的安装程序下载后双击安装。安装过程中记得勾选“Add Anaconda to my PATH environment variable”这个选项如果安装程序有提示的话这样以后在命令行里使用会更方便。安装完成后你可以打开“Anaconda Navigator”这个图形化界面但我们更常用的是“Anaconda Prompt”Windows或终端macOS/Linux。打开它输入python --version并回车如果能看到Python的版本号比如Python 3.9.13说明安装成功了。1.2 创建专属的项目环境为了避免不同项目之间的库版本冲突一个好习惯是为每个新项目创建一个独立的环境。在Anaconda Prompt里执行下面的命令来创建一个名为report_agent的新环境conda create -n report_agent python3.9创建完成后激活这个环境conda activate report_agent你会看到命令行提示符前面变成了(report_agent)这表示你已经在这个独立的环境里了接下来安装的所有库都只在这里生效。1.3 安装必要的Python库我们这个项目需要用到几个核心库requests: 用于向网站发送请求抓取数据。pandas: 数据处理和分析的神器能轻松处理表格数据。openai(或对应AgentCPM的SDK): 用于调用AI模型的API。在激活的report_agent环境下运行以下命令来安装它们pip install requests pandas openai如果AgentCPM提供了专属的Python SDK包请将上述命令中的openai替换为对应的包名例如pip install agentcpm。安装过程可能需要一点时间完成后我们的工具箱就准备妥当了。2. 三步走实战从数据采集到AI摘要环境搭好了我们正式开始编码。整个过程我把它拆解成三个清晰的步骤每一步你都能立刻看到效果很有成就感。2.1 第一步用Requests库抓取网络数据很多金融数据网站或研报平台会提供结构化的数据接口或者我们可以从一些公开的API获取数据。这里我们以一个假设的、用于演示的公开API端点为例。在实际操作中你需要替换成真实的数据源地址并注意遵守相关网站的使用条款。我们在项目文件夹里新建一个Python文件比如叫auto_report.py。用任何文本编辑器推荐VS Code、PyCharm打开它开始写代码。# auto_report.py - 第一步数据采集 import requests import pandas as pd # 1. 定义目标数据源的URL此处为示例需替换为真实地址 # 假设这是一个返回JSON格式行业数据的API data_url https://api.example.com/industry/report_data # 示例URL # 2. 设置请求头模拟浏览器访问有些网站需要这个 headers { User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 } try: # 3. 发送GET请求获取数据 response requests.get(data_url, headersheaders, timeout10) # 检查请求是否成功状态码200表示成功 response.raise_for_status() # 4. 解析返回的JSON数据 raw_data response.json() print(数据抓取成功) print(f获取到数据条目数{len(raw_data.get(data, []))}) except requests.exceptions.RequestException as e: print(f数据请求失败{e}) # 这里我们可以先使用本地保存的示例数据来继续演示 print(将使用本地示例数据进行后续演示...) # 假设我们有一个本地的示例数据文件 ‘sample_data.json‘ # 实际项目中你可能需要准备一个这样的文件用于测试 # raw_data {data: [...]} # 示例数据结构运行这段代码如果网络请求成功你会看到成功的提示。如果失败比如示例URL不可用代码会捕获异常并提示使用本地数据保证教程能继续下去。这就是我们自动化流程的起点——获取原始数据。2.2 第二步用Pandas清洗和整理数据抓取到的原始数据往往比较杂乱包含我们不需要的字段或者格式不统一。Pandas库能帮我们高效地完成数据清洗。我们接着在auto_report.py文件中添加下面的代码# auto_report.py - 第二步数据清洗与整理 # 假设raw_data[data]是一个列表里面包含多个字典每个字典是一条记录 # 例如[{“company“: “A“, “revenue“: 1000, “growth“: “0.15“}, ...] # 5. 将数据转换为Pandas DataFrame这是pandas处理表格的核心数据结构 df pd.DataFrame(raw_data.get(data, [])) print(\n原始数据预览前5行) print(df.head()) # 6. 数据清洗常见操作 # a. 查看数据基本信息 print(\n数据基本信息) print(df.info()) # b. 处理缺失值这里简单地将数值型缺失值填充为0字符串填充为‘未知‘ df.fillna({revenue: 0, growth: 0, company: 未知}, inplaceTrue) # c. 转换数据类型例如将字符串格式的增长率转换为浮点数 # 假设growth字段是像“0.15“表示15%这样的字符串 if growth in df.columns: df[growth] pd.to_numeric(df[growth], errorscoerce).fillna(0) # d. 筛选和排序例如只保留增长率大于10%的公司并按营收降序排列 if revenue in df.columns and growth in df.columns: df_filtered df[df[growth] 0.10].copy() df_sorted df_filtered.sort_values(byrevenue, ascendingFalse) else: df_sorted df # 如果列不存在则用原始df print(\n清洗并排序后的数据预览) print(df_sorted.head()) # 7. 将处理好的数据保存到CSV文件方便后续查看或使用 output_filename cleaned_industry_report.csv df_sorted.to_csv(output_filename, indexFalse, encodingutf-8-sig) print(f\n处理后的数据已保存到{output_filename})运行这部分代码你会在控制台看到数据清洗前后的变化并且当前文件夹下会生成一个cleaned_industry_report.csv文件用Excel就能打开查看。至此我们已经把杂乱的数据变成了规整的表格。2.3 第三步调用AgentCPM API生成数据摘要现在我们有了干净、结构化的数据。最后一步就是让AI来帮我们快速理解这些数据的含义生成一段文字摘要。这能极大提升信息消化效率。我们需要先获取AgentCPM模型的API访问密钥API Key通常在其官方平台注册申请即可获得。请注意务必妥善保管你的API Key不要直接写在代码里提交到公开仓库。我们在代码中通过环境变量来安全地使用它# auto_report.py - 第三步AI生成数据摘要 import os # 假设使用OpenAI兼容的APIAgentCPM的调用方式可能类似 # 请根据AgentCPM官方文档调整导入和客户端初始化方式 from openai import OpenAI # 8. 安全地读取API密钥推荐从环境变量读取 # 你可以在命令行中设置export AGENTCPM_API_KEY‘your_key_here‘ (Linux/macOS) # 或者在代码中临时设置仅用于测试生产环境不要这样 # os.environ[‘AGENTCPM_API_KEY‘] ‘your_actual_api_key_here‘ api_key os.environ.get(AGENTCPM_API_KEY) if not api_key: print(警告未找到AGENTCPM_API_KEY环境变量。AI摘要功能将跳过。) ai_summary “AI摘要功能需要配置API密钥“ else: # 9. 准备要发送给AI的数据摘要提示 # 从我们处理好的数据中提取关键信息作为AI的输入 top_companies df_sorted.head(5)[[company, revenue, growth]].to_string(indexFalse) prompt_content f 你是一个金融分析助手。请根据以下行业数据生成一段简短的数据解读摘要重点突出营收最高的头部公司情况和整体增长趋势。 数据概览营收前五的公司 {top_companies} 请用中文撰写摘要语言简洁、专业。 # 10. 调用AI API示例使用OpenAI格式请根据AgentCPM文档调整 client OpenAI(api_keyapi_key, base_urlhttps://api.agentcpm.com/v1) # 假设的base_url请替换为实际地址 try: response client.chat.completions.create( modelagentcpm-model-name, # 替换为AgentCPM提供的具体模型名称 messages[ {role: user, content: prompt_content} ], max_tokens300, temperature0.7, ) ai_summary response.choices[0].message.content print(\nAI生成的数据摘要) print(- * 40) print(ai_summary) print(- * 40) except Exception as e: print(f调用AI API时出错{e}) ai_summary “AI摘要生成失败“ # 11. 将摘要保存到文件 with open(report_summary.txt, w, encodingutf-8) as f: f.write(f数据报告摘要\n生成时间{pd.Timestamp.now()}\n\n) f.write(ai_summary) print(f\n摘要已保存到report_summary.txt)运行完整的脚本。如果正确配置了API密钥你将看到AI模型对前五名公司数据生成的文字摘要并保存到report_summary.txt文件中。如果没有配置密钥脚本会跳过这一步但前两步的数据采集和清洗依然会成功执行。3. 整合与优化让你的脚本更实用把前三步的代码按顺序组合在一起就是一个完整的、可运行的auto_report.py脚本了。但为了让这个工具更实用我们还可以做一些简单的优化。3.1 处理常见的错误与异常网络请求可能会失败数据格式可能意外变化API调用可能有额度限制。一个健壮的脚本应该能妥善处理这些问题。# 可以在第一步的请求和第三步的API调用外添加更细致的异常捕获 # 例如在数据清洗部分增加列名存在的判断 required_columns [‘company‘, ‘revenue‘] for col in required_columns: if col not in df.columns: print(f“警告数据中缺少必要列 ‘{col}‘可能影响后续分析。“)3.2 添加简单的命令行参数让脚本可以通过命令行参数指定数据源URL或输出文件名会更灵活。# 在文件开头导入sys模块 import sys # 简单的参数解析 if len(sys.argv) 1: data_url sys.argv[1] # 第一个参数作为数据源URL if len(sys.argv) 2: output_filename sys.argv[2] # 第二个参数作为输出CSV文件名然后你就可以这样运行脚本了python auto_report.py https://real-data-source.com/data my_report.csv。3.3 尝试扩展功能当这个基础脚本跑通后你可以尝试挑战更多功能多数据源合并从多个API抓取数据用Pandas的pd.concat()进行合并。简单可视化使用matplotlib或seaborn库将df_sorted中的数据生成柱状图或趋势图。定时任务结合系统的定时任务如Linux的cronWindows的任务计划程序让脚本每天自动运行实现真正的自动化。4. 总结回顾与下一步走完这三步你应该已经成功运行了一个能自动抓取、清洗数据并能调用AI进行摘要的Python脚本了。整个过程我们并没有涉及特别复杂的算法核心就是几个库的基本应用requests负责获取、pandas负责整理、AgentCPM API负责解读。对于初学者来说理解这个“获取-处理-分析”的流水线思维比死记硬背语法更重要。我建议你多动手修改代码里的参数比如换一个真实可用的公开数据API比如一些提供免费经济数据的网站调整提示词prompt让AI生成不同风格的摘要或者尝试清洗更复杂一些的数据。遇到报错不要慌仔细阅读错误信息大部分问题搜索引擎都能帮你找到答案。这个脚本只是一个起点。金融数据分析的领域很深你可以在此基础上加入更复杂的数据分析模型、更美观的自动化报告生成比如用Jupyter Notebook或者将其集成到更大的分析平台中去。关键是迈出了这从零到一的第一步后面的事情就都是在这条路上不断添加新的工具和技能了。获取更多AI镜像想探索更多AI镜像和应用场景访问 CSDN星图镜像广场提供丰富的预置镜像覆盖大模型推理、图像生成、视频生成、模型微调等多个领域支持一键部署。

更多文章