交叉评测_企业研报智能体 #2
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
交叉评测意见
评测项目: Z2wen1tao_31/S1W2-Enterprise-Research-Report-Agent — 企业研报智能体 V2.0
仓库地址: https://www.synnovator.com/Z2wen1tao_31/S1W2-Enterprise-Research-Report-Agent
评测日期: 2026-05-15
复赛阶段评测标准:Skills 需完整、有效、可运行,原型跑通核心业务闭环。
1. 项目理解
面向金融研究员和投资分析师的企业研报智能体,核心能力:PDF 解析 → RAG 检索 → 联网调研 → 多轮问答 → 自动报告 → 表格抽取 → 财务指标 → 企业评分 → 导出。React + FastAPI + SQLite + Milvus + LangChain + LangGraph。
2. Skills 完整性与可运行性评估
pdf_parser.py(1.4KB)text_splitter.py(3.8KB)embedding_service.py(3.5KB)vector_store.py(12.2KB) +rag_service.py(1.6KB)llm_client.py(12.5KB)agent_graph.py(16.8KB)web_research.py(6.5KB)knowledge_base_service.py(1.4KB)report_service.py(1.7KB) +report_exporter.py(8.8KB)table_extractor.py(7.7KB)text_cleanup.py(5.6KB)score_service.py(18.5KB)sqlite_store.py(53.9KB)测试覆盖:9 个测试文件(API、Embedding、知识库、Milvus、PDF 解析、报告、评分、文本清洗、Web 调研)
3. 核心业务闭环验证
完整闭环跑通:
4. 优点
5. 不足与建议
5.1 SQLite 在多用户场景下的并发风险(中优先级)
问题:
sqlite_store.py(53.9KB)是最大的单文件,承担了几乎全部数据持久化。SQLite 的全局写锁意味着:当一个用户正在上传 PDF 触发文本切分和 Embedding 写入时,另一个用户的问答请求会被阻塞直到写入完成。在高并发场景下(如评审同时多人测试),会出现database is locked错误。具体风险点:
store_document()方法在解析大 PDF 时持有写锁时间较长add_message()和save_report()是高频写入操作,与读操作(search_documents())冲突sqlite_store.py中未见 WAL 模式配置或 busy_timeout 设置建议:
sqlite_store.py的连接初始化中添加:docs/中说明 PostgreSQL 迁移路线图,包括何时迁移、如何迁移(SQLAlchemy ORM 替代手写 SQL)5.2 缺少示例数据,评审门槛高(高优先级,易修复)
问题:仓库中没有预置的示例 PDF 文件。评审要验证核心功能(PDF 解析→RAG 问答→报告生成→企业评分),必须自己寻找、上传企业年报/研报。对于不熟悉金融领域的评审,可能不知道什么样的 PDF 适合测试(需要包含财务报表、业务描述、风险提示等结构化内容)。
影响:评审可能因找不到合适的测试 PDF 而无法体验完整功能链路,特别是表格抽取和企业评分这两个核心卖点。
建议:
data/examples/目录中放入 1-2 份公开的上市公司年报节选(如从巨潮资讯网下载的、已公开披露的年报,注意脱敏)5.3 联网调研在国内网络环境可能不稳定(中优先级)
问题:
web_research.py(6.5KB)依赖duckduckgo_search(DDGS)进行联网搜索。DDGS 在中国大陆网络环境下经常不可用(被墙或限流),而本项目的目标用户是国内金融研究员。虽然代码中有降级处理(搜索失败返回空结果),但降级后企业评分的"联网搜索"维度将无数据,评分结果不完整。影响:国内评审和用户可能经常遇到联网调研功能不可用的情况,企业评分缺少"联网搜索"维度数据。
建议:
.env.example中添加SEARCH_ENGINE=duckduckgo|bing|tavily配置项5.4 评分权重和置信度缺乏可解释性(中优先级)
问题:
score_service.py(18.5KB)实现了三维度评分(知识库证据 + 结构化财务 + 联网搜索),但:影响:金融领域的用户对评分的可解释性要求很高。一个没有置信度说明的评分数字,在专业场景下可信度存疑。
建议:
confidence字段,基于各维度的数据充分性计算(如:知识库文档数量、财务指标覆盖率、联网搜索结果数量)5.5 向量检索质量未验证(低优先级但影响核心体验)
问题:RAG 是本项目的核心能力,但
vector_store.py(12.2KB)和rag_service.py(1.6KB)中没有检索质量评估逻辑。用户无法知道:建议:
relevance_score(余弦相似度),低于阈值(如 0.5)的片段标记为"低相关性"text_splitter.py中尝试不同的切分策略(按段落 vs 固定 token 数 vs 语义切分),对比检索质量6. 复赛阶段评价
13/13 Skills 全部可运行,核心业务闭环完整跑通,LangGraph 编排正确,双来源引用机制设计好,降级链路全面(零门槛评审),有测试。按复赛标准"Skills 需完整、有效、可运行,原型跑通核心业务闭环"。