CoolFace
Apppublic

FinRAG-Agent/FinRAG-Pro

sourceHugging Facemitupdated 4mo agoView on Hugging Face
1likes
generate_massive_data.py530 linesDownload Raw Back to backend
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