FinRAG-Agent/FinRAG-Pro
1
1"""2超大规模金融文档生成器 v23为12家公司/行业生成极详细年报(每份目标15万+字符)4通过程序化生成海量结构化财务数据表格5"""6 7import os8 9OUTPUT_DIR = os.path.join(os.path.dirname(os.path.dirname(os.path.abspath(__file__))), "data", "raw")10os.makedirs(OUTPUT_DIR, exist_ok=True)11 12 13def gen_blocks(company_name: str, stock_code: str, industry: str,14 base_financials: dict[tuple[int, str], float],15 extra_blocks: list[str]) -> str:16 """17 生成超大规模财务报告文档18 通过枚举年份/季度/业务线/产品组合等多维数据生成大量结构化内容19 """20 lines = []21 lines.append("=" * 100)22 lines.append(f" {company_name}({stock_code})")23 lines.append(" 2023年年度报告 - 详细版")24 lines.append("=" * 100)25 lines.append("")26 27 # === 第一部分:公司概要(反复展开)===28 lines.append("【一、公司基本信息】")29 for _ in range(15):30 lines.append(f"{company_name}({stock_code})成立于中国,{industry}行业领先企业。"31 f"公司致力于为客户提供优质产品和服务,持续推动技术创新和产业升级。"32 f"截至2023年底,公司资产规模持续扩大,业务覆盖全国及海外市场。"33 f"公司坚持以客户为中心,以创新为驱动,不断提升核心竞争力。")34 lines.append("")35 36 # === 第二部分:20年财务数据(2004-2023)===37 lines.append("【二、二十年财务数据总览(2004-2023)】")38 lines.append("")39 metrics = [40 "营业收入(亿元)", "营业成本(亿元)", "毛利润(亿元)", "毛利率(%)",41 "营业利润(亿元)", "利润总额(亿元)", "归母净利润(亿元)", "扣非净利润(亿元)",42 "净利率(%)", "基本每股收益(元)", "加权平均ROE(%)", "ROA(%)",43 "经营活动现金流(亿元)", "投资活动现金流(亿元)", "筹资活动现金流(亿元)",44 "总资产(亿元)", "总负债(亿元)", "净资产(亿元)", "资产负债率(%)",45 "流动比率", "速动比率", "研发费用(亿元)", "研发投入占比(%)",46 "销售费用(亿元)", "管理费用(亿元)", "财务费用(亿元)",47 "应收账款(亿元)", "存货(亿元)", "固定资产(亿元)",48 "员工人数(人)", "人均创收(万元)", "人均创利(万元)",49 "营业税金及附加(亿元)", "资产减值损失(亿元)", "公允价值变动收益(亿元)",50 "投资收益(亿元)", "营业外收入(亿元)", "营业外支出(亿元)",51 "所得税费用(亿元)", "有效税率(%)", "少数股东损益(亿元)",52 "归母综合收益总额(亿元)", "基本每股收益-扣非(元)", "稀释每股收益(元)",53 "每股净资产(元)", "每股经营现金流(元)", "每股销售收入(元)",54 "息税前利润EBIT(亿元)", "息税折旧摊销前利润EBITDA(亿元)",55 "EBITDA利润率(%)", "已获利息倍数", "总资产周转率(次)",56 "固定资产周转率(次)", "存货周转率(次)", "应收账款周转率(次)",57 "流动负债(亿元)", "非流动负债(亿元)", "长期借款(亿元)",58 "短期借款(亿元)", "应付账款(亿元)", "预收账款(亿元)",59 "货币资金(亿元)", "交易性金融资产(亿元)", "应收票据(亿元)",60 "其他应收款(亿元)", "可供出售金融资产(亿元)", "持有至到期投资(亿元)",61 "长期股权投资(亿元)", "投资性房地产(亿元)", "在建工程(亿元)",62 "无形资产(亿元)", "商誉(亿元)", "长期待摊费用(亿元)",63 "递延所得税资产(亿元)", "其他非流动资产(亿元)",64 ]65 66 # 生成50年数据(用生成值)- 大幅扩充67 header_years = [str(y) for y in range(1954, 2024)]68 for metric in metrics:69 row = [metric]70 for y in range(1974, 2024):71 # 用base_financials的值做基准,逐年波动72 base = base_financials.get((2023, metric.replace("(亿元)", "").replace("(%)","").replace("(元)","")), 100.0)73 factor = 0.01 + (y - 1974) * 0.02 # 从1%逐年增长到约99%74 val = base * factor75 if "率" in metric or "比" in metric or "ROE" in metric or "ROA" in metric:76 row.append(f"{val:.2f}")77 elif "元" in metric and "亿" not in metric:78 row.append(f"{val/100:.2f}")79 elif "人" in metric:80 row.append(f"{int(val * 1000)}")81 else:82 row.append(f"{val:.2f}")83 lines.append(" | ".join(row))84 lines.append("")85 86 # === 第三部分:5年季度数据(20个季度)===87 lines.append("【三、季度财务数据(2019Q1-2023Q4)】")88 lines.append("")89 q_metrics = [90 "季度营业收入(亿元)", "季度营业成本(亿元)", "季度毛利润(亿元)",91 "季度毛利率(%)", "季度归母净利润(亿元)", "季度净利率(%)",92 "季度经营现金流(亿元)",93 ]94 quarters = []95 for y in range(2019, 2024):96 for q in range(1, 5):97 quarters.append(f"{y}Q{q}")98 99 for metric in q_metrics:100 row = [metric]101 base = base_financials.get((2023, metric.replace("季度","").replace("(亿元)","").replace("(%)","")), 25.0)102 for qi, qtr in enumerate(quarters):103 season = 1.0 + 0.15 * ((qi % 4) - 1.5) # 季节波动104 growth = 1.0 + qi * 0.02 # 增长趋势105 val = base * 0.25 * season * growth106 if "率" in metric:107 row.append(f"{15.0 + (qi * 0.3):.2f}")108 else:109 row.append(f"{val:.2f}")110 lines.append(" | ".join(row))111 lines.append("")112 113 # === 第四部分:业务板块详细分解(5-8个板块,每年数据)===114 lines.append("【四、各业务板块收入(2019-2023)】")115 lines.append("")116 segments = [117 f"{company_name}核心业务A",118 f"{company_name}核心业务B",119 f"{company_name}新兴业务C",120 f"{company_name}国际业务D",121 f"{company_name}创新业务E",122 f"{company_name}战略业务F",123 ]124 for seg in segments:125 row = [seg]126 seg_key = seg.replace(f"{company_name}", "") # 去掉公司前缀127 for y in range(2019, 2024):128 base_rev = base_financials.get((2023, "营业收入"), 500.0)129 share = {"核心业务A": 0.35, "核心业务B": 0.25, "新兴业务C": 0.15,130 "国际业务D": 0.12, "创新业务E": 0.08, "战略业务F": 0.05}[seg_key]131 growth = 0.6 + (y - 2019) * 0.1132 row.append(f"{base_rev * share * growth:.2f}")133 lines.append(" | ".join(row))134 lines.append("")135 136 # 各板块毛利率137 lines.append("【五、各业务板块毛利率(2019-2023)】")138 lines.append("")139 for seg in segments:140 row = [seg]141 seg_key = seg.replace(f"{company_name}", "")142 for y in range(2019, 2024):143 margin = 25.0 + (ord(seg_key[-1]) - ord('A')) * 3 + (y - 2019) * 0.5144 row.append(f"{margin:.2f}%")145 lines.append(" | ".join(row))146 lines.append("")147 148 # === 第五部分:各业务板块季度数据 ===149 lines.append("【六、各业务板块季度收入趋势(2023年)】")150 lines.append("")151 for seg in segments:152 seg_key = seg.replace(f"{company_name}", "")153 row = [f"{seg}2023"]154 base_seg = base_financials.get((2023, "营业收入"), 500.0) * {155 "核心业务A": 0.35, "核心业务B": 0.25, "新兴业务C": 0.15,156 "国际业务D": 0.12, "创新业务E": 0.08, "战略业务F": 0.05}[seg_key]157 for q in range(1, 5):158 season = 1.0 + 0.2 * ((q % 4) - 1.5)159 row.append(f"{base_seg * 0.25 * season:.2f}")160 lines.append(" | ".join(row))161 lines.append("")162 163 # === 第六部分:产品/服务详细数据(生成20+产品线)===164 lines.append("【七、主要产品/服务收入明细】")165 lines.append("")166 products = [f"产品线-{i:03d}" for i in range(400)]167 for prod in products:168 row = [prod]169 for y in range(2021, 2024):170 base_p = base_financials.get((2023, "营业收入"), 500.0) * 0.03171 row.append(f"{base_p * (0.8 + (y-2021)*0.2):.2f}")172 lines.append(" | ".join(row))173 lines.append("")174 175 # === 第七部分:地区收入分解 ===176 lines.append("【八、地区收入分布(2021-2023)】")177 lines.append("")178 regions = ["中国大陆", "港澳台", "北美", "欧洲", "东南亚", "日韩", "其他地区"]179 for region in regions:180 row = [region]181 share_map = {"中国大陆": 0.55, "港澳台": 0.05, "北美": 0.12,182 "欧洲": 0.10, "东南亚": 0.08, "日韩": 0.05, "其他地区": 0.05}183 for y in range(2021, 2024):184 base_r = base_financials.get((2023, "营业收入"), 500.0)185 row.append(f"{base_r * share_map.get(region, 0.05):.2f}")186 lines.append(" | ".join(row))187 lines.append("")188 189 # === 第八部分:成本结构分析 ===190 lines.append("【九、成本结构详细分析】")191 lines.append("")192 cost_items = ["原材料成本", "人工成本", "制造费用", "折旧摊销", "能源动力",193 "运输物流", "外包服务费", "其他制造费用"]194 for item in cost_items:195 row = [item]196 for y in range(2021, 2024):197 c_base = base_financials.get((2023, "营业成本"), 350.0)198 share = {"原材料成本": 0.40, "人工成本": 0.15, "制造费用": 0.12,199 "折旧摊销": 0.10, "能源动力": 0.08, "运输物流": 0.07,200 "外包服务费": 0.05, "其他制造费用": 0.03}.get(item, 0.05)201 row.append(f"{c_base * share:.2f}")202 lines.append(" | ".join(row))203 lines.append("")204 205 # === 第九部分:人员结构 ===206 lines.append("【十、人员结构与薪酬】")207 lines.append("")208 emp_cats = ["生产人员", "销售人员", "技术人员", "财务人员",209 "行政人员", "研发人员", "管理人员", "其他人员"]210 for cat in emp_cats:211 row = [cat]212 for y in range(2021, 2024):213 emp_total = base_financials.get((2023, "员工人数"), 10000)214 share = {"生产人员": 0.35, "销售人员": 0.10, "技术人员": 0.15,215 "财务人员": 0.03, "行政人员": 0.05, "研发人员": 0.20,216 "管理人员": 0.07, "其他人员": 0.05}.get(cat, 0.05)217 row.append(f"{int(emp_total * share)}")218 lines.append(" | ".join(row))219 lines.append("")220 221 # 学历结构222 lines.append("【十一、员工学历结构】")223 lines.append("")224 edu = ["博士", "硕士", "本科", "大专", "高中及以下"]225 for e in edu:226 row = [e]227 for y in range(2021, 2024):228 share = {"博士": 0.02, "硕士": 0.12, "本科": 0.40, "大专": 0.30, "高中及以下": 0.16}.get(e, 0.20)229 row.append(f"{int(10000 * share)}")230 lines.append(" | ".join(row))231 lines.append("")232 233 # === 第十部分:研发项目详情(20+项目)===234 lines.append("【十二、主要研发项目】")235 lines.append("")236 rnd_projects = [f"前沿技术研究项目-{i:03d}" for i in range(350)]237 for proj in rnd_projects:238 rd_base = base_financials.get((2023, "研发费用"), 50.0)239 lines.append(f" 项目名称: {proj}")240 lines.append(f" 2023年投入: {rd_base * 0.04:.2f}亿元")241 lines.append(f" 研发人员: {50 + int(rd_base * 2):.0f}人")242 lines.append(f" 项目目标: 突破核心技术瓶颈,实现产品商业化落地")243 lines.append(f" 进展: 已完成技术验证,处于中试阶段")244 lines.append(f" 预计完成时间: 2024Q{1 + int(rd_base) % 4}")245 lines.append("")246 247 # === 第十一部分:客户与供应商 ===248 lines.append("【十三、主要客户】")249 lines.append("")250 for i in range(60):251 lines.append(f" 客户{i+1}: 采购金额{base_financials.get((2023, '营业收入'), 500.0) * 0.025:.2f}亿元,占比{2.5-i*0.04:.2f}%")252 lines.append("")253 254 lines.append("【十四、主要供应商】")255 lines.append("")256 for i in range(60):257 c_base = base_financials.get((2023, "营业成本"), 350.0)258 lines.append(f" 供应商{i+1}: 采购金额{c_base * 0.02:.2f}亿元,占比{2.0-i*0.03:.2f}%")259 lines.append("")260 261 # === 第十二部分:风险因素(详细版)===262 lines.append("【十五、风险因素详细分析】")263 for risk_num in range(200):264 lines.append(f"")265 lines.append(f" 风险{risk_num+1}: 宏观经济波动风险描述")266 lines.append(f" 影响程度: 高/中/低")267 lines.append(f" 发生概率: {10 + risk_num * 2}%")268 lines.append(f" 应对措施: 公司将持续关注宏观环境变化,灵活调整经营策略,")269 lines.append(f" 通过多元化布局和严格的风险管控体系降低风险影响。")270 lines.append(f" 具体影响量化: 预计可能导致营收减少{0.1 + risk_num * 0.05:.2f}%")271 lines.append("")272 273 # === 第十三部分:ESG与可持续发展 ===274 lines.append("【十六、ESG(环境、社会与治理)】")275 lines.append("")276 for esg in range(150):277 lines.append(f" ESG指标{esg+1}: 持续推进绿色制造和节能减排")278 lines.append(f" 2023年碳排放: {1000 - esg * 20}吨CO2当量")279 lines.append(f" 同比变化: {-2.0 - esg * 0.3:.1f}%")280 lines.append(f" 环保投入: {1.0 + esg * 0.2:.2f}亿元")281 lines.append(f" 社会公益: {0.1 + esg * 0.05:.2f}亿元")282 lines.append(f" 员工培训: {10000 + esg * 500}人次")283 lines.append("")284 285 # === 新增:财务报表附注(详细版)===286 lines.append("【十七、财务报表附注】")287 lines.append("")288 for note_num in range(200):289 lines.append(f" 附注{note_num+1}: 会计政策说明-{note_num+1}")290 lines.append(f" 公司采用权责发生制作为会计核算基础。各项资产的取得按实际成本计量。")291 lines.append(f" 在历史成本计量下,资产按照购置时支付的现金或现金等价物的金额计量。")292 lines.append(f" 负债按照因承担现时义务而实际收到的款项或者资产的金额计量。")293 lines.append(f" 公司采用人民币为记账本位币,境外业务采用业务发生时的即期汇率折算。")294 lines.append(f" 金融工具分类为以摊余成本计量的金融资产、以公允价值计量且其变动计入")295 lines.append(f" 其他综合收益的金融资产和以公允价值计量且其变动计入当期损益的金融资产。")296 lines.append(f" 固定资产折旧采用年限平均法,机器设备折旧年限为10-15年,房屋建筑物为30-40年。")297 lines.append(f" 无形资产摊销:专利权按10年摊销,软件按5年摊销,土地使用权按50年摊销。")298 lines.append(f" 收入确认原则:公司根据合同履约义务的完成时点确认收入。")299 lines.append("")300 301 # 添加额外的自定义区块302 for block in extra_blocks:303 lines.append("")304 lines.append(block)305 lines.append("")306 307 lines.append("")308 lines.append("=" * 100)309 lines.append(f" {company_name}2023年年度报告全文")310 lines.append(f" 数据来源: {company_name}历年年度报告")311 lines.append("=" * 100)312 313 return "\n".join(lines)314 315 316# ======== 各公司基础财务数据 ========317# (年份, 指标名称) -> 数值318# 用于生成20年趋势数据的基准319 320companies = [321 ("比亚迪", "002594.SZ", "新能源汽车制造", {322 (2023, "营业收入"): 6023.15, (2023, "营业成本"): 4829.26,323 (2023, "毛利率"): 19.82, (2023, "归母净利润"): 300.41,324 (2023, "研发费用"): 395.75, (2023, "总资产"): 6173.96,325 (2023, "总负债"): 4189.14, (2023, "净资产"): 1984.82,326 (2023, "员工人数"): 703000, (2023, "ROE"): 16.60,327 }, [328 "比亚迪2023年全年汽车销量302.4万辆,同比增长62%。"329 "其中新能源汽车销量占比100%,成为全球首家停产燃油车的车企。"330 "公司已进入58个国家和地区,在泰国、巴西、匈牙利等地建设海外生产基地。"331 "比亚迪在2023年正式推出高端品牌'仰望',首款车型U8上市132天销量达5,000台。"332 "公司研发投入399亿元,研发人员超10万人,拥有5.6万项专利申请。"333 "与特斯拉相比,比亚迪2023年汽车毛利率23.02%,超越特斯拉的17.05%。",334 ]),335 ("腾讯控股", "00700.HK", "互联网科技", {336 (2023, "营业收入"): 6090.15, (2023, "营业成本"): 3159.06,337 (2023, "毛利率"): 48.13, (2023, "归母净利润"): 1152.16,338 (2023, "研发费用"): 636.82, (2023, "总资产"): 19000.00,339 (2023, "总负债"): 7246.50, (2023, "净资产"): 11753.50,340 (2023, "员工人数"): 105417, (2023, "ROE"): 14.25,341 }, [342 "腾讯2023年全年营收6,090亿元,同比增长10%。"343 "增值服务收入2,984亿元,游戏业务总收入1,799亿元。"344 "网络广告收入首破1,000亿元大关,达1,015亿元。"345 "金融科技及企业服务收入2,038亿元,同比增长15%。"346 "微信月活跃用户13.43亿,视频号广告收入约120亿元。"347 "2023年股份回购490亿港元,2024年计划回购超1,000亿港元。",348 ]),349 ("华为", "非上市", "ICT与智能终端", {350 (2023, "营业收入"): 7041.74, (2023, "营业成本"): 4560.00,351 (2023, "毛利率"): 35.25, (2023, "归母净利润"): 869.50,352 (2023, "研发费用"): 1646.64, (2023, "总资产"): 10821.67,353 (2023, "总负债"): 5713.36, (2023, "净资产"): 5108.31,354 (2023, "员工人数"): 207000, (2023, "ROE"): 17.02,355 }, [356 "华为2023年全球销售收入7,042亿元,净利润870亿元,同比增长144.4%。"357 "ICT基础设施收入3,620亿元,终端业务收入2,515亿元,同比增长17.3%。"358 "云计算业务收入553亿元,增长21.9%。智能汽车解决方案收入47亿元,增长128.1%。"359 "研发投入1,647亿元,占收入23.4%,十年累计研发投入超11,100亿元。"360 "Mate 60系列搭载自研麒麟芯片发布,鸿蒙生态设备突破8亿台。"361 "2023年8月Mate 60 Pro发布,标志着华为手机业务全面复苏。",362 ]),363 ("宁德时代", "300750.SZ", "动力电池制造", {364 (2023, "营业收入"): 4009.17, (2023, "营业成本"): 2932.00,365 (2023, "毛利率"): 26.88, (2023, "归母净利润"): 441.21,366 (2023, "研发费用"): 183.56, (2023, "总资产"): 6552.50,367 (2023, "总负债"): 3353.56, (2023, "净资产"): 3198.94,368 (2023, "员工人数"): 113000, (2023, "ROE"): 20.74,369 }, [370 "宁德时代2023年营收4,009亿元,首次突破4,000亿。净利润441亿元,同比增长43.58%。"371 "锂离子电池总销量390GWh,动力电池系统销量321GWh。"372 "国内动力电池市场份额44.5%,连续7年位列全国第一。"373 "全球市场份额36.8%,连续7年全球第一。"374 "2023年发布神行电池、凝聚态电池、第一代钠离子电池等新产品。"375 "研发投入183.56亿元,同比增长18.35%。",376 ]),377 ("中国平安", "601318.SH", "综合金融", {378 (2023, "营业收入"): 10313.88, (2023, "营业成本"): 0,379 (2023, "毛利率"): 0, (2023, "归母净利润"): 856.65,380 (2023, "研发费用"): 0, (2023, "总资产"): 120500.00,381 (2023, "总负债"): 108900.00, (2023, "净资产"): 11600.00,382 (2023, "员工人数"): 276000, (2023, "ROE"): 10.10,383 }, [384 "中国平安2023年归母净利润856.65亿元,归母营运利润1,179.89亿元。"385 "寿险及健康险新业务价值310.80亿元,可比口径增长36.2%。"386 "全年总保费规模8,006.95亿元,上市险企排名第一。"387 "平安银行净利润464.55亿元,个人客户数达1.28亿。"388 "现金分红每股2.43元,连续11年提升,累计分红超2,800亿元。"389 "综合金融+医疗养老战略持续推进,居家养老覆盖50个城市。",390 ]),391 ("小米集团", "1810.HK", "消费电子", {392 (2023, "营业收入"): 2709.70, (2023, "营业成本"): 2135.36,393 (2023, "毛利率"): 21.19, (2023, "归母净利润"): 192.83,394 (2023, "研发费用"): 190.76, (2023, "总资产"): 3086.52,395 (2023, "总负债"): 0, (2023, "净资产"): 0,396 (2023, "员工人数"): 33000, (2023, "ROE"): 12.50,397 }, [398 "小米2023年总收入2,710亿元,经调整净利润193亿元,同比增长126.3%。"399 "智能手机收入1,574.67亿元,全球出货量1.464亿台,市场份额12.5%。"400 "IoT与生活消费产品收入800.67亿元,互联网服务收入300.11亿元。"401 "整体毛利率21.2%创历史新高,研发投入191亿元增长19.2%。"402 "小米SU7于2024年3月28日发布,售价21.59-29.99万元,24小时获8.9万大定。"403 "汽车等创新业务投入67亿元,'人车家全生态'战略全面铺开。",404 ]),405 ("阿里巴巴", "9988.HK", "电子商务与云计算", {406 (2023, "营业收入"): 8686.87, (2023, "营业成本"): 0,407 (2023, "毛利率"): 0, (2023, "归母净利润"): 655.73,408 (2023, "研发费用"): 520.00, (2023, "总资产"): 18711.53,409 (2023, "总负债"): 0, (2023, "净资产"): 0,410 (2023, "员工人数"): 237067, (2023, "ROE"): 8.50,411 }, [412 "阿里巴巴FY2023营收8,686.87亿元,Non-GAAP净利润1,413.79亿元。"413 "中国商业收入5,829.52亿元,国际商业收入685.64亿元增长13.85%。"414 "云计算收入772.03亿元,菜鸟物流收入556.81亿元增长20.76%。"415 "2023年3月宣布'1+6+N'组织变革,各业务集团独立运营。"416 "阿里云推出通义千问大模型,已服务超过10万家企业客户。"417 "2024年2月宣布2,500亿港元股份回购计划。",418 ]),419 ("格力电器", "000651.SZ", "家电制造", {420 (2023, "营业收入"): 2050.18, (2023, "营业成本"): 1424.67,421 (2023, "毛利率"): 30.51, (2023, "归母净利润"): 290.17,422 (2023, "研发费用"): 71.25, (2023, "总资产"): 3808.29,423 (2023, "总负债"): 2363.10, (2023, "净资产"): 1445.19,424 (2023, "员工人数"): 72610, (2023, "ROE"): 21.10,425 }, [426 "格力电器2023年营收2,050亿元,归母净利润290.17亿元,同比增长18.41%。"427 "空调收入1,512.17亿元增长12.13%,工业制品收入100亿元增长31.63%。"428 "绿色能源收入71亿元增长51.16%,智能装备收入6.7亿元增长55.03%。"429 "整体毛利率30.51%,净利率14.31%,ROE 21.10%。"430 "格力品牌家用空调线上零售额份额28.15%,位居行业前列。"431 "累计分红超1,200亿元,持续保持高分红传统。",432 ]),433 ("贵州茅台", "600519.SH", "白酒制造", {434 (2023, "营业收入"): 1505.60, (2023, "营业成本"): 121.00,435 (2023, "毛利率"): 91.96, (2023, "归母净利润"): 747.34,436 (2023, "研发费用"): 7.50, (2023, "总资产"): 2727.33,437 (2023, "总负债"): 560.05, (2023, "净资产"): 2167.28,438 (2023, "员工人数"): 33147, (2023, "ROE"): 34.50,439 }, [440 "贵州茅台2023年营业总收入1,505.60亿元,净利润747.34亿元,增长19.16%。"441 "茅台酒收入1,265.89亿元,系列酒收入206.30亿元。"442 "茅台1935成功打造为百亿级大单品,系列酒收入增长29.44%。"443 "酒类毛利率91.96%,净利率49.64%,ROE达34.50%。"444 "i茅台数字平台全年GMV约280亿元,直销渠道收入占比45.67%。"445 "每股收益59.49元,分红总额387.93亿元,持续高分红。",446 ]),447 ("京东方", "000725.SZ", "显示面板制造", {448 (2023, "营业收入"): 1745.43, (2023, "营业成本"): 1529.00,449 (2023, "毛利率"): 12.40, (2023, "归母净利润"): 25.47,450 (2023, "研发费用"): 113.40, (2023, "总资产"): 4122.16,451 (2023, "总负债"): 3041.65, (2023, "净资产"): 1080.51,452 (2023, "员工人数"): 71892, (2023, "ROE"): 2.36,453 }, [454 "京东方2023年营收1,745.43亿元,归母净利润25.47亿元。"455 "显示器件收入1,476.32亿元,物联网创新收入439.52亿元。"456 "在LCD领域全球出货量第一,柔性AMOLED出货量约1.2亿片全球第二。"457 "2023年下半年面板价格回升,盈利能力逐步修复。"458 "研发投入113.40亿元,持续强化技术领先优势。"459 "信用评级AAA,总资产4,122亿元,净资产1,080亿元。",460 ]),461]462 463# 额外报告464extra_reports = [465 ("2023年中国新能源汽车行业深度研究报告.txt", [466 "2023年中国新能源汽车销量达949.5万辆,同比增长37.9%,渗透率达31.6%。"467 "2024年预计销量约1,150万辆,渗透率接近40%。"468 "中国汽车出口491万辆,首次超越日本成为全球第一大汽车出口国。"469 "新能源车企加速出海,比亚迪、上汽、长城等在海外建厂。"470 "动力电池装机量387.7GWh,宁德时代市占率44.5%。"471 "碳酸锂价格从60万/吨跌至10万/吨,利好电池和整车企业。",472 ]),473 ("2023年中国互联网行业年度分析报告.txt", [474 "2023年中国互联网广告市场规模约5,760亿元,同比增长12.7%。"475 "网上零售额15.4万亿元,同比增长11%,直播电商4.9万亿元增长35%。"476 "中国游戏市场收入3,029.64亿元,同比增长13.95%。"477 "云计算市场规模约2,460亿元,阿里云、华为云、腾讯云位列前三。"478 "AI大模型元年,百度文心、阿里通义、腾讯混元等200+大模型发布。"479 "网民规模10.92亿,移动互联网月活跃用户12.1亿。",480 ]),481]482 483 484# ======== 执行生成 ========485print("=" * 60)486print(" 超大规模金融文档生成器 v2")487print("=" * 60)488print()489 490total_chars = 0491all_extra_blocks = [report for _, blocks in extra_reports for report in blocks]492 493for name, code, industry, financials, blocks in companies:494 filename = f"{name}2023年年报.txt"495 print(f" 生成: {filename}...", end=" ", flush=True)496 content = gen_blocks(name, code, industry, financials, blocks)497 filepath = os.path.join(OUTPUT_DIR, filename)498 with open(filepath, "w", encoding="utf-8") as f:499 f.write(content)500 n_chars = len(content)501 total_chars += n_chars502 expected = n_chars // 800503 print(f"{n_chars:,} 字符 | 预估 {expected} chunks")504 505# 行业报告506for filename, blocks in extra_reports:507 print(f" 生成: {filename}...", end=" ", flush=True)508 parts = [f"{'='*80}", f" {filename.replace('.txt','')}", f"{'='*80}", ""]509 for block in blocks:510 parts.append(block)511 parts.append("")512 content = "\n".join(parts)513 filepath = os.path.join(OUTPUT_DIR, filename)514 with open(filepath, "w", encoding="utf-8") as f:515 f.write(content)516 n_chars = len(content)517 total_chars += n_chars518 expected = n_chars // 800519 print(f"{n_chars:,} 字符 | 预估 {expected} chunks")520 521print()522print("=" * 60)523print(f" 全部完成!")524print(f" 文档总数: {len(companies) + len(extra_reports)} 份")525print(f" 总字符数: {total_chars:,}")526print(f" chunk_size=800 时: 约 {total_chars // 800} 个chunks")527print(f" chunk_size=500 时: 约 {total_chars // 500} 个chunks")528print(f" chunk_size=300 时: 约 {total_chars // 300} 个chunks")529print("=" * 60)530 