企业研报智能体V2.0是一个面向企业研究报告分析场景的智能体系统,旨在帮助用户高效完成研报解析、信息抽取、企业分析、行业对比、企业评分与问答检索等任务。系统结合大语言模型、检索增强生成(RAG)、LangChain、LangGraph、文档解析、结构化信息抽取与联网调研能力,能够从企业年报、行业研报、财务报告、公告文件等非结构化文档中提取关键信息,并生成可解释、可追溯的分析结果。 2.0版本在上一版本基础上进一步增强了企业研究能力。系统支持多知识库管理、PDF 上传/替换/预览、文本切分、Embedding 向量化、Milvus/内存向量检索、多轮问答、自动报告生成和 Markdown/PDF 导出。用户可以通过自然语言提出问题,例如“这家公司近三年的营收变化如何?”、“主要风险有哪些?”、“与同行相比竞争优势在哪里?”,系统会基于上传资料进行检索、推理和回答,并尽可能给出引用来源,提升分析结果的可信度。 相比上一版本,2.0版本重点升级了结构化分析与智能体编排能力:新增表格抽取和财务指标识别,可从年报中自动提取营业收入、净利润、毛利率等关键指标;新增企业能力评分 Agent,综合知识库证据、结构化财务数据和公开网络信息,输出综合得分、维度评分、评级、置信度和证据说明;同时引入多轮会话机制,支持围绕同一企业连续追问,提升研究过程的连贯性和可用性。 项目适用于金融研究、投资分析、企业尽调、行业研究、知识库问答和智能办公等场景。通过模块化设计,开发者可以灵活扩展文档解析器、向量数据库、检索策略、分析工具和智能体工作流,构建适合自身业务需求的企业研究分析系统。
  • Python 72.3%
  • JavaScript 21.9%
  • CSS 5.7%
  • HTML 0.1%
Find a file
2026-05-14 20:39:14 +08:00
backend Submit competition project 2026-05-14 20:35:44 +08:00
data Initial competition submission 2026-05-07 18:03:16 +08:00
frontend Submit competition project 2026-05-14 20:35:44 +08:00
prompts Initial competition submission 2026-05-07 18:03:16 +08:00
skills/frontend-design Submit competition project 2026-05-14 20:35:44 +08:00
tests Submit competition project 2026-05-14 20:35:44 +08:00
.env.example Initial competition submission 2026-05-07 18:03:16 +08:00
.gitignore Initial competition submission 2026-05-07 18:03:16 +08:00
docker-compose.yml Initial competition submission 2026-05-07 18:03:16 +08:00
environment.yml Submit competition project 2026-05-14 20:35:44 +08:00
pytest.ini Initial competition submission 2026-05-07 18:03:16 +08:00
README.md 更新 README.md 2026-05-14 20:39:14 +08:00
requirements.txt Submit competition project 2026-05-14 20:35:44 +08:00
企业研报智能体项目说明.md Submit competition project 2026-05-14 20:35:44 +08:00

企业研报智能体 V2.0

基于 React + FastAPI + SQLite + Milvus + LangChain + LangGraph 的企业研报智能体原型。系统支持多知识库管理、PDF 文件生命周期、向量检索、联网调研、多轮问答、自动报告生成、表格结构化抽取、财务指标入表、企业能力评分、在线预览和 Markdown / PDF 导出。

当前版本默认使用 DeepSeek 的 OpenAI-compatible 接口。没有 API Key 时会自动走 mock 路径,仍可完成上传、解析、检索、问答和报告生成演示。

当前功能

  • 多知识库管理:新建、重命名、删除知识库。
  • 文件管理:按知识库上传 PDF、替换文件、删除文件、批量删除、页面内 PDF 预览。
  • 本地 RAG 检索PDF 解析、LangChain 文本切分、Embedding、Milvus / Memory 向量检索、证据页码与章节引用。
  • 智能问答:按当前知识库检索,也支持限定到单个文件;使用多会话消息流支持上下文追问。
  • 报告生成:按主题从当前知识库自动检索证据,生成更丰富的投研长报告 Markdown。
  • 表格与指标:上传 PDF 时抽取表格,并自动识别营业收入、净利润、毛利率等常用财务指标。
  • 企业能力评分LangGraph 评分 Agent 综合知识库证据、结构化财务指标和联网搜索资料,输出总分、维度分、说明和证据。
  • 报告预览与导出:页面内预览报告 PDF支持下载 Markdown 和 PDF。
  • 联网调研智能体问答、报告和评分时LangGraph 会通过 LangChain tool 调用 DuckDuckGo / DDGS 搜索,补充公司公开信息、新闻和行业背景。
  • 专业控制台前端:左侧知识库,中间文档/问答/报告工作区,右侧历史记录栏。

工作流

问答、报告和评分均由 LangGraph 编排。问答与报告主链路:

validate_scope
  -> retrieve_evidence
  -> web_research
  -> generate
  -> persist_result
  • validate_scope:校验知识库或单文档范围。
  • retrieve_evidence:通过 LangChain Embeddings / retriever 从 Milvus / Memory 向量库检索 PDF 与表格片段。
  • web_research:通过 LangChain tool 联网搜索公司公开信息,失败时自动降级为空结果。
  • generate:调用 DeepSeek 或 mock 生成回答 / 报告。
  • persist_result:写入 SQLite保留历史记录和证据引用。

内部知识库证据使用 [1][2] 引用;联网资料使用 [W1][W2] 引用。生成策略是内部文档证据优先,联网资料只作为补充背景。

技术栈

  • 后端FastAPI、SQLite、PyMuPDF、LangChain、LangGraph
  • 向量库Milvus测试和离线演示可用 Memory Vector Store
  • Embeddingsentence-transformers,默认模型 BAAI/bge-small-zh-v1.5;网络不可达时可降级 hash embedding
  • LLMDeepSeek OpenAI-compatible API支持 mock 模式
  • 前端React、Vite、Ant Design
  • 报告导出Markdown 直接导出PDF 由 Markdown 渲染生成
  • 前端设计 Skill项目内 skills/frontend-design 来自 anthropics/skills

环境准备

推荐使用 conda不要使用 pip install -r requirements.txt 作为主要安装方式,以免包安装到非当前 conda 环境。

conda env create -f environment.yml
conda activate enterprise-report-agent

如果需要手动安装依赖,请使用 conda

conda install -c conda-forge fastapi uvicorn python-multipart python-dotenv pydantic pymupdf sentence-transformers pymilvus httpx numpy pytest pytest-cov langgraph
python -m pip install --no-user langchain langchain-openai langchain-community langchain-text-splitters langchain-huggingface langchain-milvus langgraph-checkpoint-sqlite ddgs

requirements.txt 仅作兼容和依赖查阅。

前端依赖:

cd frontend
npm install

如果项目路径包含空格,例如 Enterprise Research Report AgentPowerShell 中进入目录时需要加引号:

cd "D:\...\Enterprise Research Report Agent\enterprise-report-agent"

配置

复制 .env.example.env

Copy-Item .env.example .env

DeepSeek 配置:

LLM_MODE=openai
LLM_BASE_URL=https://api.deepseek.com
DEEPSEEK_API_KEY=your-deepseek-key
LLM_MODEL=deepseek-v4-flash

也可以使用通用变量 LLM_API_KEY。当 DEEPSEEK_API_KEY 为空时,后端会读取 LLM_API_KEY

Embedding 配置:

EMBEDDING_BACKEND=sentence_transformers
EMBEDDING_MODEL=BAAI/bge-small-zh-v1.5
EMBEDDING_ALLOW_HASH_FALLBACK=true
HASH_EMBEDDING_DIM=384

如果无法访问 HuggingFace可以直接使用离线 hash embedding

EMBEDDING_BACKEND=hash

联网调研配置:

WEB_RESEARCH_ENABLED=true
WEB_RESEARCH_PROVIDER=duckduckgo
WEB_RESEARCH_MAX_RESULTS=4
WEB_RESEARCH_TIMEOUT_SECONDS=6

mock 模式默认不联网,方便离线演示和测试。如需 mock 模式也验证联网节点:

WEB_RESEARCH_IN_MOCK=true

运行

启动 Milvus

docker compose up -d

启动后端。推荐使用 python -m uvicorn,避免当前 PATH 找不到 uvicorn

python -m uvicorn backend.main:app --reload

注意:必须在项目根目录运行,也就是包含 backendfrontendREADME.md 的目录。如果不在项目根目录,会出现 ModuleNotFoundError: No module named 'backend'

启动前端:

cd frontend
npm run dev

默认访问:

常见问题

PowerShell cd 路径报错

路径中有空格时需要加引号:

cd "...\Enterprise Research Report Agent\enterprise-report-agent"

找不到 uvicorn

先确认已经激活项目 conda 环境:

conda activate enterprise-report-agent
python -m uvicorn backend.main:app --reload

也可以直接使用环境中的 Python

& "D:\Anaconda_envs\envs\enterprise-report-agent\python.exe" -m uvicorn backend.main:app --reload

启动时报 No module named backend

请先进入项目根目录:

cd "D:\...\Enterprise Research Report Agent\enterprise-report-agent"
python -m uvicorn backend.main:app --reload

HuggingFace 模型下载超时

可改用 hash embedding

EMBEDDING_BACKEND=hash

测试

默认测试使用 hash embedding、内存向量库和 mock LLM不依赖 Milvus 或模型下载。

pytest

运行 Milvus 集成测试前需先启动 Milvus

docker compose up -d
$env:RUN_MILVUS_TESTS="1"
pytest tests/test_milvus_store.py