From b43afe4b4a43c24503486106360989fc54d6b633 Mon Sep 17 00:00:00 2001 From: lzybetter Date: Fri, 7 Aug 2026 17:13:43 +0800 Subject: [PATCH] =?UTF-8?q?=E5=BC=95=E5=85=A5rag?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env_sample | 10 + .gitignore | 2 + README.md | 3 + adata_test.py | 92 +++- build_rag.py | 147 ++++++ knowledge/company_cases/nanda_optical.md | 288 ++++++++++++ knowledge/industry/semiconductor_material.md | 137 ++++++ knowledge/rules/pandas_chinese_field_rules.md | 90 ++++ .../rules/semiconductor_material_rules.md | 168 +++++++ main.py | 445 ++++++++++++++++-- .../data_level0.bin | Bin 0 -> 218800 bytes .../header.bin | Bin 0 -> 100 bytes .../length.bin | Bin 0 -> 400 bytes .../link_lists.bin | 0 rag_db/chroma.sqlite3 | Bin 0 -> 385024 bytes 15 files changed, 1330 insertions(+), 52 deletions(-) create mode 100644 .env_sample create mode 100644 build_rag.py create mode 100644 knowledge/company_cases/nanda_optical.md create mode 100644 knowledge/industry/semiconductor_material.md create mode 100644 knowledge/rules/pandas_chinese_field_rules.md create mode 100644 knowledge/rules/semiconductor_material_rules.md create mode 100644 rag_db/372f688c-7ce6-4638-b51f-32e4c9b8a6ca/data_level0.bin create mode 100644 rag_db/372f688c-7ce6-4638-b51f-32e4c9b8a6ca/header.bin create mode 100644 rag_db/372f688c-7ce6-4638-b51f-32e4c9b8a6ca/length.bin create mode 100644 rag_db/372f688c-7ce6-4638-b51f-32e4c9b8a6ca/link_lists.bin create mode 100644 rag_db/chroma.sqlite3 diff --git a/.env_sample b/.env_sample new file mode 100644 index 0000000..65c0333 --- /dev/null +++ b/.env_sample @@ -0,0 +1,10 @@ +# 大模型接口地址 +OPENAI_BASE_URL= +# 大模型 API 密钥 +OPENAI_API_KEY= +# bot token +TELEGRAM_BOT_TOKEN= +# http代理 +HTTP_PROXY= +HTTPS_PROXY= +TELEGRAM_PROXY= \ No newline at end of file diff --git a/.gitignore b/.gitignore index f5d312f..6688ccd 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,6 @@ +# 剔除环境文件 .env +# 剔除不需要的文件夹 .venv/ .idea/ __pycache__/ \ No newline at end of file diff --git a/README.md b/README.md index e69de29..153e15b 100644 --- a/README.md +++ b/README.md @@ -0,0 +1,3 @@ +main -- 主程序,所有逻辑都在这 +build_rag -- 构建rag库 +adata_test -- 用来才是adata库的 \ No newline at end of file diff --git a/adata_test.py b/adata_test.py index f51754b..36f0456 100644 --- a/adata_test.py +++ b/adata_test.py @@ -15,34 +15,82 @@ def get_fina_info(stock_code="600699"): df = stock.finance.get_core_index(stock_code=stock_code) - data = df[['report_date', 'report_type', 'total_rev', 'total_rev_yoy_gr','net_profit_attr_sh', 'net_profit_yoy_gr', - 'non_gaap_net_profit', 'non_gaap_net_profit_yoy_gr', 'roe_wtd', 'gross_margin', 'net_margin', 'quick_ratio', - 'inv_turn_rate', 'acct_recv_turn_rate']] + print(df.columns) - last_type = data['report_type'].to_list()[0] + last_type = df['report_type'].to_list()[0] - recent_df = data[data.report_type == last_type].iloc[:2,:].reset_index(drop=True) + last_data = df[df.report_type == last_type].iloc[:2,:] - recent_df.rename(columns={"report_date": "报告日期", - "report_type": "报告类型", - "total_rev":"营业总收入", - "total_rev_yoy_gr":"营业总收入同比增长率", - "net_profit_attr_sh":"归母净利润", - "net_profit_yoy_gr":"归母净利润同比增长率", - "non_gaap_net_profit":"扣非净利润", - "non_gaap_net_profit_yoy_gr":"扣非净利润同比增长率", - "roe_wtd":"加权净资产收益率", - "gross_margin":"销售毛利率", - "net_margin":"销售净利率", - "quick_ratio":"速动比率", - "inv_turn_rate":"存货周转率", - "acct_recv_turn_rate":"应收账款周转率" - }, inplace=True) + # 字典定义:英文指标名 -> 中文财务指标名 + column_mapping = { + # 基础与披露信息 + 'stock_code': '股票代码', + 'short_name': '股票简称', + 'report_date': '报告期', + 'report_type': '报表类型', + 'notice_date': '公告日期', + + # 每股指标 + 'basic_eps': '基本每股收益', + 'diluted_eps': '稀释每股收益', + 'non_gaap_eps': '扣非每股收益', + 'net_asset_ps': '每股净资产', + 'cap_reserve_ps': '每股公积金', + 'undist_profit_ps': '每股未分配利润', + 'oper_cf_ps': '每股经营现金流', + + # 规模与利润指标 (元) + 'total_rev': '营业总收入', + 'gross_profit': '毛利润', + 'net_profit_attr_sh': '归母净利润', + 'non_gaap_net_profit': '扣非归母净利润', + + # 增长率指标 (同比 YoY / 环比 QoQ) + 'total_rev_yoy_gr': '营业总收入同比增长率', + 'net_profit_yoy_gr': '归母净利润同比增长率', + 'non_gaap_net_profit_yoy_gr': '扣非归母净利润同比增长率', + 'total_rev_qoq_gr': '营业总收入环比增长率', + 'net_profit_qoq_gr': '归母净利润环比增长率', + 'non_gaap_net_profit_qoq_gr': '扣非归母净利润环比增长率', + + # 盈利能力与收益率 + 'roe_wtd': '加权净资产收益率(ROE)', + 'roe_non_gaap_wtd': '扣非加权净资产收益率(ROE)', + 'roa_wtd': '加权总资产收益率(ROA)', + 'gross_margin': '销售毛利率', + 'net_margin': '销售净利率', + + # 现金流与收入质量比率 + 'adv_receipts_to_rev': '预收款及合同负债占营收比', + 'net_cf_sales_to_rev': '销售收现率(销售现金流/营收)', + 'oper_cf_to_rev': '经营现金净流量占营收比', + 'eff_tax_rate': '实际有效税率', + + # 偿债能力与财务杠杆 + 'curr_ratio': '流动比率', + 'quick_ratio': '速动比率', + 'cash_flow_ratio': '现金流量比率', + 'asset_liab_ratio': '资产负债率', + 'equity_multiplier': '权益乘数', + 'equity_ratio': '产权比率', + + # 运营效率与周转率/天数 + 'total_asset_turn_days': '总资产周转天数', + 'inv_turn_days': '存货周转天数', + 'acct_recv_turn_days': '应收账款周转天数', + 'total_asset_turn_rate': '总资产周转率', + 'inv_turn_rate': '存货周转率', + 'acct_recv_turn_rate': '应收账款周转率' + } + + # 假设你的原始数据存储在 df 中,使用 rename 修改列名 + # inplace=True 表示直接在原 DataFrame 上修改 + last_data.rename(columns=column_mapping, inplace=True) formatted_lines = [] - for _, row in recent_df.iterrows(): + for _, row in last_data.iterrows(): line_items = [] - for col, val in zip(recent_df.columns, row): + for col, val in zip(last_data.columns, row): # 判断是否为数字类型 if isinstance(val, (int, float)): # 如果列名包含"率",则格式化为保留两位小数并加上 % diff --git a/build_rag.py b/build_rag.py new file mode 100644 index 0000000..222d804 --- /dev/null +++ b/build_rag.py @@ -0,0 +1,147 @@ +import os + +from dotenv import load_dotenv +from langchain_community.document_loaders import DirectoryLoader, TextLoader +from langchain_text_splitters import RecursiveCharacterTextSplitter + +from langchain_huggingface import HuggingFaceEmbeddings + +from langchain_chroma import Chroma + +# ========================== +# 配置 +# ========================== +load_dotenv() + +# ====================== +# 配置 +# ====================== + +KNOWLEDGE_PATH = "./knowledge" +VECTOR_DB_PATH = "./rag_db" +COLLECTION_NAME = "investment_knowledge" +EMBEDDING_MODEL = "BAAI/bge-small-zh-v1.5" + + +# ====================== +# Embedding +# ====================== + +print("加载Embedding模型") + +embeddings = HuggingFaceEmbeddings( + + model_name=EMBEDDING_MODEL, + model_kwargs={ + "device":"cpu" + } +) + + + +# ====================== +# 加载Markdown +# ====================== + +print("加载知识文件") + +loader = DirectoryLoader( + + KNOWLEDGE_PATH, + glob="**/*.md", + loader_cls=TextLoader, + loader_kwargs={ + "encoding":"utf-8" + } + +) + +documents = loader.load() + +print( + f"加载 {len(documents)} 个文件" +) + +# ====================== +# 自动生成metadata +# ====================== + + +def build_metadata(doc): + + path = doc.metadata["source"] + + metadata={ + "source":path + } + + + # rules + if "/rules/" in path: + metadata["category"]="rule" + metadata["knowledge_type"]="analysis_logic" + # industry + elif "/industry/" in path: + metadata["category"]="industry" + metadata["knowledge_type"]="industry_logic" + # company + elif "/company_cases/" in path: + metadata["category"]="company_case" + metadata["knowledge_type"]="company_fact" + # framework + elif "/investment_framework/" in path: + metadata["category"]="framework" + metadata["knowledge_type"]="workflow" + else: + metadata["category"]="unknown" + + return metadata + +for doc in documents: + + doc.metadata.update( + build_metadata(doc) + ) + +# ====================== +# 文本切分 +# ====================== + +splitter = RecursiveCharacterTextSplitter( + + chunk_size=500, + chunk_overlap=80, + separators=[ + "\n\n", + "\n", + "。", + "," + ] + +) + +texts = splitter.split_documents( + documents +) + +print( + f"生成 {len(texts)} 个chunk" +) + + +# ====================== +# 创建向量库 +# ====================== + +print("生成Chroma") + +vector_store = Chroma.from_documents( + + documents=texts, + embedding=embeddings, + persist_directory=VECTOR_DB_PATH, + collection_name=COLLECTION_NAME + +) + +print("完成") \ No newline at end of file diff --git a/knowledge/company_cases/nanda_optical.md b/knowledge/company_cases/nanda_optical.md new file mode 100644 index 0000000..d8d0279 --- /dev/null +++ b/knowledge/company_cases/nanda_optical.md @@ -0,0 +1,288 @@ +# 南大光电(300346.SZ)投资案例 + +## 基本信息 + +公司: +江苏南大光电材料股份有限公司 + +股票代码: +300346.SZ + +行业: +半导体材料 + +主营方向: + +- 半导体前驱体材料 +- 电子特气 +- 光刻胶及配套材料 + + +--- + +# 财务数据 + +## 2025年度 + +营业收入: + +25.85亿元 + +同比增长: + +9.93% + + +归母净利润: + +3.20亿元 + +同比增长: + +18% + + +扣非净利润: + +2.54亿元 + +同比增长: + +31.49% + + +经营现金流: + +7.33亿元 + +同比增长: + +16.76% + + + +## 2026年Q1 + +营业收入: + +6.62亿元 + +同比增长: + +5.45% + + +归母净利润: + +1.24亿元 + +同比增长: + +29.97% + + +扣非净利润: + +同比增长: + +38.61% + + + +--- + +# 业务结构 + + +## 1. 先进前驱体材料 + +2025收入: + +7.14亿元 + + +占总收入: + +27.61% + + +增长: + +23.46% + + +毛利率: + +50.88% + + +主要产品: + +- DIPAS +- BDEAS +- TDMAT +- 三甲基镓 +- 三甲基铝 + + +应用: + +- ALD薄膜沉积 +- CVD薄膜沉积 +- LED +- 5G射频芯片 +- 存储芯片 + + + +--- + +## 2. 电子特气 + +2025收入: + +15.36亿元 + + +收入占比: + +59.39% + + +毛利率: + +36.74% + + +产品: + +- 高纯磷烷 +- 砷烷 +- 安全源 +- NF3 +- SF6 + + +应用: + +- IC制造 +- LED制造 +- 刻蚀 +- 腔体清洗 + + + +--- + +## 3. 光刻胶 + +主要产品: + +ArF光刻胶 + + +技术: + +193nm + + +应用: + +90nm-14nm先进制程 + + +2025进展: + +- 三款ArF光刻胶通过客户验证 +- 获得订单 +- 光刻胶收入突破2000万元 + + +--- + +# 技术壁垒 + + +## 高纯材料能力 + +MO源纯度: + +6N以上 + + +核心能力: + +- 合成 +- 纯化 +- 分析检测 +- 安全储运 + + +--- + +## 光刻胶能力 + +覆盖: + +- 单体 +- 树脂 +- 光敏剂 +- 成品 + + +形成完整研发体系。 + + + +--- + +# 重大事件 + + +2025年: + +现金2.30亿元收购全椒南大核心团队股份 + + +2026年: + +现金7760万元收购乌兰察布南大员工合伙股份 + + +公司参与: + +- 国家863计划 +- 集成电路02专项 + + + +--- + +# 核心竞争优势 + + +1. 半导体材料国产替代受益者 + +2. 客户认证周期形成壁垒 + +3. 高纯材料工艺积累 + +4. 高端材料产品突破 + + +--- + +# 后续跟踪指标 + + +重点关注: + +1. ArF光刻胶收入是否突破亿元级 + +2. 前驱体毛利率变化 + +3. 高K三甲基铝渗透情况 + +4. 海外客户认证进展 + +5. 安全生产情况 diff --git a/knowledge/industry/semiconductor_material.md b/knowledge/industry/semiconductor_material.md new file mode 100644 index 0000000..d8b1093 --- /dev/null +++ b/knowledge/industry/semiconductor_material.md @@ -0,0 +1,137 @@ +# 半导体材料行业分析框架 + + +## 行业特点 + +半导体材料属于高技术壁垒行业。 + +核心竞争因素: + +- 纯度 +- 一致性 +- 良率 +- 客户认证 + + +--- + +# 核心商业模式 + + +半导体材料企业成长路径: + +研发 + +↓ + +客户验证 + +↓ + +小批量供应 + +↓ + +进入量产线 + +↓ + +扩大份额 + + + +--- + +# 主要材料类型 + + +## 前驱体材料 + +应用: + +ALD/CVD薄膜沉积 + + +评价指标: + +- 纯度等级 +- 金属杂质 +- 稳定性 +- 客户认证 + + + +## 电子特气 + +应用: + +- 刻蚀 +- 清洗 +- 外延 + + +关键指标: + +- 气体纯度 +- 供应稳定性 +- 安全体系 + + + +## 光刻胶 + +评价: + +- 分辨率 +- 缺陷率 +- 工艺匹配度 + + +进入先进制程需要长期验证。 + + + +--- + +# 行业护城河 + + +半导体材料不是普通化工。 + +竞争优势来自: + +1. 长期工艺积累 + +2. 客户认证周期 + +3. 高纯制造能力 + +4. 安全生产体系 + + + +--- + +# 行业风险 + + +## 技术路线变化 + +新材料可能替代旧材料。 + + +## 安全风险 + +部分材料: + +- 易燃 +- 易爆 +- 有毒 + + +事故可能导致: + +- 停产 +- 客户流失 +- 估值下降 + diff --git a/knowledge/rules/pandas_chinese_field_rules.md b/knowledge/rules/pandas_chinese_field_rules.md new file mode 100644 index 0000000..c713d88 --- /dev/null +++ b/knowledge/rules/pandas_chinese_field_rules.md @@ -0,0 +1,90 @@ +## 一、 盈利质量与现金流验证(现金流与利润质量) + +### 规则编号:RULE_P01_CFO_QUALITY + +#### 分析主题:净利润现金含量与“虚盈实亏”诊断 + +- **触发指标**:`经营现金净流量占营收比`、`销售收现率(销售现金流/营收)`、`归母净利润`、`每股经营现金流`、`每股净资产`、`归母净利润同比增长率` +- **诊断逻辑与阈值**: + 1. **警告(虚盈实亏/纸面富贵)**: + - **条件**:若 `归母净利润同比增长率 > 0`(账面净利润增长),但 `经营现金净流量占营收比 < 0.08`(低于 8%)或 `销售收现率(销售现金流/营收) < 0.8`(低于 80%)。 + - **风险判定**:公司账面利润看似增长,但实际现金回款极差,大量利润沦为“应收账款”或纸面数字,流动性变现能力低下。 + 2. **优质(现金奶牛/议价力强)**: + - **条件**:若 `销售收现率(销售现金流/营收) > 1.0` 且 `经营现金净流量占营收比 > 0.15`。 + - **判定**:公司销售回款能力极强,盈利质量高,对下游具备较强的商业话语权。 + +## 二、 运营效率与存货/应收防雷(周转率与周转天数风险) + +### 规则编号:RULE_T01_AR_RISK + +#### 分析主题:应收账款回款危机与“赊销冲业绩”风险 + +- **触发指标**:`应收账款周转天数`、`应收账款周转率`、`营业总收入同比增长率`、`归母净利润同比增长率` +- **诊断逻辑与阈值**: + 1. **周转恶化预警**: + - **条件**:若 `应收账款周转天数` 同比显著增加(如较上年同期增加 $> 30$ 天),或 `应收账款周转率` 持续下降。 + - **风险判定**:公司下游客户打款周期拉长,需密切关注未来大额坏账准备计提的爆发风险。 + 2. **赊销暴雷风险**: + - **条件**:若 `营业总收入同比增长率 > 15%`,但 `应收账款周转天数` 同比拉长 $> 40\%$。 + - **风险判定**:公司可能在通过大幅放宽信用期限(赊销)来强行刺激销量拉动营收增长,业绩含金量极低。 + +### 规则编号:RULE_T02_INV_RISK + +#### 分析主题:存货滞销与毛利率背离诊断(隐蔽成本) + +- **触发指标**:`存货周转天数`、`存货周转率`、`销售毛利率` +- **诊断逻辑与阈值**: + 1. **滞销与跌价减值风险**: + - **条件**:若 `存货周转天数` 呈连续上升趋势(或大幅高于同行业均值)。 + - **判定**:产品面临滞销或更新换代淘汰风险,后续需密切关注存货跌价准备对利润的侵蚀。 + 2. **经典财务造假背离项**: + - **条件**:若 `存货周转天数` 显著增加(周转变慢,产品滞销),但 `销售毛利率` 却逆势大幅上升。 + - **高风险预警**:严重违背商业逻辑!公司极有可能少转了生产成本(将本应计入损益表的营业成本留在存货资产中),以此虚增毛利和存货资产。 + +## 三、 偿债能力与杠杆风险(流动性与负债风险) + +### 规则编号:RULE_S01_DEBT_RISK + +#### 分析主题:资产负债率与流动性压迫风险 + +- **触发指标**:`资产负债率`、`流动比率`、`速动比率`、`权益乘数`、`现金流量比率` +- **诊断逻辑与阈值**: + 1. **流动性断裂预警**: + - **条件**:若 `流动比率 < 1.0` 且 `速动比率 < 0.7`。 + - **风险判定**:公司短期变现偿债能力极弱,若无新的融资打入,面临短期债务违约或流动性断裂风险。 + 2. **高杠杆压迫**: + - **条件**:若 `资产负债率 > 70%`(或 `权益乘数 > 3.5`)且 `现金流量比率 < 0.1`。 + - **风险判定**:公司债务负担沉重,且经营活动产生的现金流无法有效覆盖负债,抗风险能力差。 + +## 四、 ROE 杜邦分析与盈利驱动力(DuPont Analysis) + +### 规则编号:RULE_D01_ROE_DRIVERS + +#### 分析主题:ROE 质量与三要素驱动力拆解 + +- **触发指标**:`加权净资产收益率(ROE)`、`扣非加权净资产收益率(ROE)`、`销售净利率`、`总资产周转率`、`权益乘数` +- **诊断逻辑与阈值**: + 1. **扣非背离风险(依赖非经常损益)**: + - **条件**:若 `加权净资产收益率(ROE)` 较高,但 `扣非加权净资产收益率(ROE)` 极低(两者差值 $> 3\%$)。 + - **判定**:公司的 ROE 主要依赖“非经常性损益”(如卖资产、政府补贴、投资收益),核心主营业务盈利能力低下。 + 2. **高风险杠杆驱动型**: + - **条件**:若 ROE 上升,但 `销售净利率` 和 `总资产周转率` 持平或下降,仅靠 `权益乘数` 升高驱动。 + - **风险判定**:高杠杆举债驱动的 ROE 扩张,不具备可持续性,财务风险剧增。 + 3. **优质效率/议价驱动型**: + - **条件**:若 ROE 上升主要由 `总资产周转率` 或 `销售净利率` 驱动。 + - **判定**:公司通过提高运营效率或提升产品附加值/议价权来实现 ROE 增长,属于高质量增长。 + +## 五、 收入增长与合同负债(成长可持续性) + +### 规则编号:RULE_G01_REVENUE_QUALITY + +#### 分析主题:业绩增长含金量与预收款(蓄水池)检验 + +- **触发指标**:`营业总收入同比增长率`、`归母净利润同比增长率`、`扣非归母净利润同比增长率`、`预收款及合同负债占营收比` +- **诊断逻辑与阈值**: + 1. **利润增速质量校验**: + - **条件**:若 `归母净利润同比增长率 > 营业总收入同比增长率`。 + - **分析**:利润增速快于收入增速,需结合 `扣非归母净利润同比增长率` 交叉验证是“降本增效/毛利提升(优质)”还是“少计提费用/依赖非经常损益(劣质)”。 + 2. **蓄水池池水干涸预警**: + - **条件**:若 `营业总收入同比增长率` 保持增长,但 `预收款及合同负债占营收比` 同比连续下滑 $> 30\%$。 + - **预警**:公司“业绩蓄水池”(未确认的订单或预收款)正在枯竭,未来几个季度的营收增速大概率会出现失速或下滑。 \ No newline at end of file diff --git a/knowledge/rules/semiconductor_material_rules.md b/knowledge/rules/semiconductor_material_rules.md new file mode 100644 index 0000000..3de6b98 --- /dev/null +++ b/knowledge/rules/semiconductor_material_rules.md @@ -0,0 +1,168 @@ +# 半导体材料企业分析规则 + + +## 规则1:利润质量判断 + + +条件: + +如果: + +净利润增速 > 营收增速 + + +结论: + +说明企业可能存在: + +- 产品结构升级 +- 高毛利产品占比提升 +- 成本改善 + + +验证: + +检查: + +- 毛利率趋势 +- 高端产品收入占比 +- 经营现金流 + + + +--- + +# 规则2:判断国产替代真实性 + + +条件: + +企业宣称国产替代。 + + +不能直接认为成功。 + + +需要满足: + +研发 + +↓ + +客户认证 + +↓ + +订单 + +↓ + +收入贡献 + + + +验证: + +观察: + +- 客户验证情况 +- 销售收入 +- 市占率 + + + +--- + +# 规则3:判断半导体材料护城河 + + +条件: + +企业产品需要: + +- 高纯度 +- 高一致性 +- 长认证周期 + + +结论: + +具备较强竞争壁垒。 + + +验证: + +查看: + +- 产品纯度等级 +- 龙头客户 +- 认证周期 +- 良率 + + + +--- + +# 规则4:危险材料企业风险评估 + + +条件: + +产品属于: + +危险化学品。 + + +结论: + +需要给予安全风险折价。 + + +验证: + +检查: + +- 安全事故 +- 环保处罚 +- 自动化水平 +- 安全投入 + + + +--- + +# 规则5:成长空间判断 + + +条件: + +新产品收入占比较低。 + + +不能简单认为没有价值。 + + +需要判断: + +是否存在: + +- 技术突破 +- 客户验证 +- 放量可能 + + +验证: + +观察: + +收入是否: + +百万级 + +↓ + +千万级 + +↓ + +亿元级 diff --git a/main.py b/main.py index c71866e..9f8e5c5 100644 --- a/main.py +++ b/main.py @@ -8,50 +8,224 @@ from adata import stock from langchain_core.tools import tool from telegram import Update from telegram.ext import ApplicationBuilder, ContextTypes, CommandHandler, MessageHandler, filters +from langchain_community.embeddings import HuggingFaceEmbeddings +from langchain_community.vectorstores import Chroma load_dotenv() +# VectorDB 存在 ./rules_data 目录中 +# ====================== +# Embedding模型 +# ====================== + +embeddings = HuggingFaceEmbeddings( + model_name="BAAI/bge-small-zh-v1.5", + model_kwargs={ + "device":"cpu" + } +) + +# ====================== +# 加载向量库 +# ====================== + +vector_store = Chroma( + persist_directory="./rag_db", + collection_name="investment_knowledge", + embedding_function=embeddings +) + +# 公司事实 Retriever +company_retriever = vector_store.as_retriever( + search_kwargs={ + "k":5, + "filter":{ + "category":"company_case" + } + } +) + +# 行业 Retriever +industry_retriever = vector_store.as_retriever( + search_kwargs={ + "k":3, + "filter":{ + "category":"industry" + } + } +) + +# 规则 Retriever +rule_retriever = vector_store.as_retriever( + search_kwargs={ + "k":5, + "filter":{ + "category":"rule" + } + } +) + +def research_retrieve(question): + + result = {} + # 公司事实 + company_docs = company_retriever.invoke(question) + result["company"] = "\n\n".join( + [ + doc.page_content + for doc in company_docs + ] + ) + # 行业知识 + industry_docs = industry_retriever.invoke(question) + result["industry"] = "\n\n".join( + [ + doc.page_content + for doc in industry_docs + ] + ) + # 分析规则 + rule_docs = rule_retriever.invoke(question) + result["rules"] = "\n\n".join( + [ + doc.page_content + for doc in rule_docs + ] + ) + return result -# ================= 你的原有逻辑(完全保留) ================= @tool def get_fina_info(stock_code: str) -> str: """获取指定股票代码的财务数据。当需要获取财务数据的时使用此工具""" + + # 字典定义:英文指标名 -> 中文财务指标名 + column_mapping = { + # 基础与披露信息 + 'stock_code': '股票代码', + 'short_name': '股票简称', + 'report_date': '报告期', + 'report_type': '报表类型', + 'notice_date': '公告日期', + + # 每股指标 + 'basic_eps': '基本每股收益', + 'diluted_eps': '稀释每股收益', + 'non_gaap_eps': '扣非每股收益', + 'net_asset_ps': '每股净资产', + 'cap_reserve_ps': '每股公积金', + 'undist_profit_ps': '每股未分配利润', + 'oper_cf_ps': '每股经营现金流', + + # 规模与利润指标 (元) + 'total_rev': '营业总收入', + 'gross_profit': '毛利润', + 'net_profit_attr_sh': '归母净利润', + 'non_gaap_net_profit': '扣非归母净利润', + + # 增长率指标 (同比 YoY / 环比 QoQ) + 'total_rev_yoy_gr': '营业总收入同比增长率', + 'net_profit_yoy_gr': '归母净利润同比增长率', + 'non_gaap_net_profit_yoy_gr': '扣非归母净利润同比增长率', + 'total_rev_qoq_gr': '营业总收入环比增长率', + 'net_profit_qoq_gr': '归母净利润环比增长率', + 'non_gaap_net_profit_qoq_gr': '扣非归母净利润环比增长率', + + # 盈利能力与收益率 + 'roe_wtd': '加权净资产收益率(ROE)', + 'roe_non_gaap_wtd': '扣非加权净资产收益率(ROE)', + 'roa_wtd': '加权总资产收益率(ROA)', + 'gross_margin': '销售毛利率', + 'net_margin': '销售净利率', + + # 现金流与收入质量比率 + 'adv_receipts_to_rev': '预收款及合同负债占营收比', + 'net_cf_sales_to_rev': '销售收现率(销售现金流/营收)', + 'oper_cf_to_rev': '经营现金净流量占营收比', + 'eff_tax_rate': '实际有效税率', + + # 偿债能力与财务杠杆 + 'curr_ratio': '流动比率', + 'quick_ratio': '速动比率', + 'cash_flow_ratio': '现金流量比率', + 'asset_liab_ratio': '资产负债率', + 'equity_multiplier': '权益乘数', + 'equity_ratio': '产权比率', + + # 运营效率与周转率/天数 + 'total_asset_turn_days': '总资产周转天数', + 'inv_turn_days': '存货周转天数', + 'acct_recv_turn_days': '应收账款周转天数', + 'total_asset_turn_rate': '总资产周转率', + 'inv_turn_rate': '存货周转率', + 'acct_recv_turn_rate': '应收账款周转率' + } + df = stock.finance.get_core_index(stock_code=stock_code) - data = df[['report_date', 'report_type', 'total_rev', 'total_rev_yoy_gr', 'net_profit_attr_sh', 'net_profit_yoy_gr', - 'non_gaap_net_profit', 'non_gaap_net_profit_yoy_gr', 'roe_wtd', 'gross_margin', 'net_margin', - 'quick_ratio', - 'inv_turn_rate', 'acct_recv_turn_rate']] + year_data = df[df.report_type == "年报"].iloc[:5, :] # 取5年的年报数据 + year_data.rename(columns=column_mapping, inplace=True) - last_type = data['report_type'].to_list()[0] - recent_df = data[data.report_type == last_type].iloc[:2, :].reset_index(drop=True) - - recent_df.rename(columns={"report_date": "报告日期", "report_type": "报告类型", "total_rev": "营业总收入", - "total_rev_yoy_gr": "营业总收入同比增长率", "net_profit_attr_sh": "归母净利润", - "net_profit_yoy_gr": "归母净利润同比增长率", "non_gaap_net_profit": "扣非净利润", - "non_gaap_net_profit_yoy_gr": "扣非净利润同比增长率", "roe_wtd": "加权净资产收益率", - "gross_margin": "销售毛利率", "net_margin": "销售净利率", "quick_ratio": "速动比率", - "inv_turn_rate": "存货周转率", "acct_recv_turn_rate": "应收账款周转率" - }, inplace=True) - - formatted_lines = [] - for _, row in recent_df.iterrows(): + year_formatted_lines = [] + for _, row in year_data.iterrows(): line_items = [] - for col, val in zip(recent_df.columns, row): + for col, val in zip(year_data.columns, row): + # 判断是否为数字类型 if isinstance(val, (int, float)): + # 如果列名包含"率",则格式化为保留两位小数并加上 % if "率" in col: - formatted_val = f"{val:.2f}%" + # 如果原始数值本身就是小数(如 0.35 表示 35%),需要乘以 100 + val_pct = val * 100 if abs(val) <= 1.0 else val + formatted_val = f"{val_pct:.2f}%" else: formatted_val = f"{val:,.2f}" else: + # 非数字类型(如日期、文本)直接转为字符串 formatted_val = str(val) + line_items.append(f"{col}:{formatted_val}") - formatted_lines.append("\n".join(line_items)) - final_report = f"近两期{last_type}主要财务数据如下:\n" + "\n\n".join(formatted_lines) + # 将这一期的所有字段用换行符拼接 + year_formatted_lines.append("\n".join(line_items)) + + final_report = f"近五期年报主要财务数据如下:\n" + "\n\n".join(year_formatted_lines) + + last_type = df['report_type'].to_list()[0] + + if last_type != "年报": + + last_data = df[df.report_type == last_type].iloc[:2,:] + + # 假设你的原始数据存储在 df 中,使用 rename 修改列名 + # inplace=True 表示直接在原 DataFrame 上修改 + last_data.rename(columns=column_mapping, inplace=True) + + formatted_lines = [] + for _, row in last_data.iterrows(): + line_items = [] + for col, val in zip(last_data.columns, row): + # 判断是否为数字类型 + if isinstance(val, (int, float)): + # 如果列名包含"率",则格式化为保留两位小数并加上 % + if "率" in col: + # 如果原始数值本身就是小数(如 0.35 表示 35%),需要乘以 100 + val_pct = val * 100 if abs(val) <= 1.0 else val + formatted_val = f"{val_pct:.2f}%" + else: + formatted_val = f"{val:,.2f}" + else: + # 非数字类型(如日期、文本)直接转为字符串 + formatted_val = str(val) + + line_items.append(f"{col}:{formatted_val}") + + # 将这一期的所有字段用换行符拼接 + formatted_lines.append("\n".join(line_items)) + + # 3. 组装最终报告文本 + final_report = final_report + "\n\n" + f"近两期{last_type}主要财务数据如下:\n" + "\n\n".join(formatted_lines) + return final_report - class MyOutputParser(StrOutputParser): def parse(self, text) -> str: return text.strip() @@ -60,7 +234,179 @@ class MyOutputParser(StrOutputParser): llm = ChatOpenAI(model="deepseek-v4-flash") tools = [get_fina_info] template = """ -你是一个专业的股票分析助手。用户会输入一个股票代码,你可以使用工具来获取其财务数据,之后根据获取到的财务数据来分析这家公司的基本面情况。 +你是一位专业的股票基本面分析与投资研究专家。 +你的任务是结合: +1. 实时获取的数据 +2. 公司历史资料 +3. 行业商业逻辑 +4. 专业投资分析规则 +对上市公司进行客观、严谨、深度的基本面诊断。 +你的目标不是预测股价,而是分析公司的商业质量、竞争优势、成长逻辑以及潜在风险。 +============================= +【信息来源优先级】 +============================== +进行分析时,请遵循以下信息优先级: +第一优先级: +用户提供的数据、工具返回的数据、最新财务数据。 +第二优先级: +公司事实资料(company_facts)。 +第三优先级: +行业知识与商业逻辑(industry_knowledge)。 +第四优先级: +通用分析规则(analysis_rules)。 +如果不同来源之间存在冲突: +- 以最新、可验证的数据为准。 +- 明确指出信息冲突。 +- 不得自行编造缺失数据。 +============================== +【决策与工具使用原则】 +============================== +1. 按需调用工具: +根据用户问题类型,自主选择: +- 财务数据查询工具 + +不要为了调用工具而调用工具。 +2. 数据驱动: +所有涉及以下内容: +- 收入 +- 利润 +- 毛利率 +- 现金流 +- 估值 +- 市占率 +- 产品规模 +必须基于真实数据。 +禁止: +- 编造财务数字 +- 推测不存在的订单 +- 将行业趋势当作公司事实 +============================== +【知识库参考信息】 +============================== +以下为公司事实资料: +{company_facts} +说明: +- 这些内容代表已经整理的公司历史信息。 +- 可以用于理解公司的业务结构、产品、技术和历史事件。 +- 不得擅自修改其中的数据。 +------------------------------ +以下为行业背景与商业逻辑: +{industry_knowledge} +说明: +- 用于判断行业空间、竞争格局、商业模式。 +- 不代表当前公司的实际情况。 +- 必须结合公司数据进行分析。 +------------------------------ +以下为基本面分析规则: +{analysis_rules} +说明: +- 这些规则用于辅助判断公司质量。 +- 不应机械套用,需要结合行业特点分析。 +============================== +【分析方法要求】 +============================== +请按照以下逻辑进行分析: +一、数据与规则交叉验证 +将公司的实际数据与分析规则进行匹配: +例如: +- 收入增长是否符合成长标准? +- 利润增速是否超过收入增速? +- 毛利率变化是否体现产品升级? +- 现金流是否支持利润真实性? +- 资产负债结构是否存在风险? +明确指出: +- 触发的积极信号 +- 触发的风险信号 +- 尚未验证的关键因素 +------------------------------ +二、商业模式分析 +分析: +- 公司主要产品和收入来源 +- 产品竞争壁垒 +- 客户粘性 +- 行业地位 +- 上下游关系 +重点回答: +“公司为什么能够赚钱?” +以及: +“这种赚钱能力是否可持续?” +------------------------------ +三、成长逻辑分析 +不要只关注收入增长。 +需要分析: +- 新产品放量 +- 市场空间 +- 技术升级 +- 国产替代 +- 市占率变化 +- 客户拓展 +区分: +- 已经兑现的成长 +- 预期中的成长 +- 尚未验证的成长 +------------------------------ +四、风险评估 +重点关注: +- 盈利质量下降 +- 毛利率持续下滑 +- 现金流恶化 +- 资本开支压力 +- 行业竞争加剧 +- 技术路线变化 +- 客户集中风险 +- 安全生产风险 +- 政策与国际环境风险 + +================================================================================ +【 Telegram 消息专属输出排版规范 (CRITICAL FORMATTING RULES) 】 +================================================================================ + +由于本诊断报告最终将在 Telegram 移动端客户端展示,为保证最佳的阅读体验与视觉质感,你必须严格遵循以下 Telegram 专属排版规则: + +1. 禁用标准 Markdown 表格 (STRICTLY FORBIDDEN): + - 严禁使用 | 列分隔符 | 的 Markdown 表格语法!Telegram 移动端屏幕狭窄,多列表格会导致严重的强行折行与对齐错乱。 + - 所有多维财务数据、年度对比数据,必须拆解为【卡片式结构】或【树状分支结构】。 + +2. 树状分支与数据对齐 (Tree Structure): + - 涉及多项财务指标(如营收、归母、扣非)的平行对比时,使用 ├ 和 └ 字符构建清晰的树状层级: + * 2025年 + ├ 营收:`25.85亿`(+9.93%) │ 归母:`3.20亿`(+18.00%) + └ 扣非:`2.54亿`(+31.49%) + - 单指标多年趋势,采用带箭头的平铺演进线表示: + * 毛利率走势:`43.42%` (21) ➔ `41.16%` (24) ➔ `39.62%` (25) + +3. 视觉高亮与数据卡片 (Inline Code Highlighting): + - 所有具体的【财务数值】、【百分比】、【比率】以及【核心定性结论】,必须用单反引号包围(即 Inline Code 格式,例如 `22.97%`、`中性偏正面`)。 + - 这会在 Telegram 界面中形成高亮灰色背景卡片,提升视觉重点的提炼效率。 + +4. 标题与符号锚点 (Visual Anchors): + - 每一个大章节标题前必须配有明确的 Emoji 视觉锚点(如 📊、💡、🔍、⚠️、🎯)。 + - 结论与诊断部分,优先采用带色彩倾向的标识符: + * 正向/优质:✅ 或 🚀 或 `[良好]` + * 中性/提示:📌 或 💡 + * 隐忧/警报:⚠️ 或 🔴 或 🟠 + +5. 控制行宽与分段 (Mobile Readability): + - 单段分析文字切忌过长,移动端每段尽量保持在 2-4 行以内。 + - 章节之间使用全划线 `---` 或空行进行视觉隔离,避免形成“文本大山”。 + +6. Telegram 模版输出参照: + 大纲结构示例: + # 📊 [股票名称(代码)] 基本面深度诊断 + > **综合评级**:`[评级结果]` + + --- + ### 💡 一、核心结论 + * **优质面** + ├ **[维度]**:[简短分析] + └ **[维度]**:[简短分析] + + ### 🔍 二、基本面深度诊断 + #### 1️⃣ 成长性:[一句话小结] + * **[年份]** + ├ 营收:`[数据]`([增速]) │ 归母:`[数据]`([增速]) + └ 扣非:`[数据]`([增速]) + 📌 **关键判断**:[分析文字] """ chat_prompt = ChatPromptTemplate.from_messages([ ("system", template), @@ -71,13 +417,39 @@ chat_prompt = ChatPromptTemplate.from_messages([ agent = create_tool_calling_agent(llm, tools, chat_prompt) agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True) +def run_fundamental_agent(user_input: str): + + # ====================== + # 多知识源检索 + # ====================== + rag_context = research_retrieve( + user_input + ) + + # ====================== + # 注入Agent + # ====================== + + result = agent_executor.invoke( + { + "input": user_input, + "company_facts": + rag_context["company"], + "industry_knowledge": + rag_context["industry"], + "analysis_rules": + rag_context["rules"] + } + ) + + + return result["output"] # ================= 新增:Telegram 机器人交互逻辑 ================= async def start(update: Update, context: ContextTypes.DEFAULT_TYPE): """处理 /start 命令""" await update.message.reply_text("你好!我是你的股票分析助手,请直接发送类似“分析一下600699的基本面”的消息。") - async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE): """处理普通文本消息,调用你的 Agent""" user_input = update.message.text @@ -86,8 +458,7 @@ async def handle_message(update: Update, context: ContextTypes.DEFAULT_TYPE): try: # 调用你原有的 Agent 逻辑 - res = agent_executor.invoke({"input": user_input}) - output = res["output"] + output = run_fundamental_agent(user_input) except Exception as e: output = f"分析出错:{str(e)}" @@ -100,10 +471,24 @@ if __name__ == "__main__": if not token: raise ValueError("未在 .env 文件中找到 TELEGRAM_BOT_TOKEN") - proxy_url = "http://127.0.0.1:8889" + proxy_url = os.getenv( + "TELEGRAM_PROXY" + ) + + builder = ( + ApplicationBuilder() + .token(token) + ) + + if proxy_url: + builder = ( + builder + .proxy(proxy_url) + .get_updates_proxy(proxy_url) + ) + + application = builder.build() - # 启动机器人 - application = ApplicationBuilder().token(token).proxy(proxy_url).get_updates_proxy(proxy_url).build() application.add_handler(CommandHandler("start", start)) application.add_handler(MessageHandler(filters.TEXT & ~filters.COMMAND, handle_message)) diff --git a/rag_db/372f688c-7ce6-4638-b51f-32e4c9b8a6ca/data_level0.bin b/rag_db/372f688c-7ce6-4638-b51f-32e4c9b8a6ca/data_level0.bin new file mode 100644 index 0000000000000000000000000000000000000000..5fa25f5a36fb84ad463d0f56eb0c3855aecda645 GIT binary patch literal 218800 zcmeIuF#!Mo0K%a4Pwj07h(KY$fB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 zV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM z7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b* z1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd z0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwA zz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEj zFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r z3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@ z0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VK zfB^#r3>YwAz<>b*1`HT5V8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HT5 pV8DO@0|pEjFkrxd0RsjM7%*VKfB^#r3>YwAz<>b*1`HVZfdN+C00961 literal 0 HcmV?d00001 diff --git a/rag_db/372f688c-7ce6-4638-b51f-32e4c9b8a6ca/header.bin b/rag_db/372f688c-7ce6-4638-b51f-32e4c9b8a6ca/header.bin new file mode 100644 index 0000000000000000000000000000000000000000..42c216a15d4aabfcb3ecd26350e4bd033218233e GIT binary patch literal 100 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 Pp7?(f?obQ}67v3UgDASs literal 0 HcmV?d00001