- ✅ 实时股价查询和历史数据分析
- ✅ 涨跌幅排行和成交量统计
- ✅ 多股票对比和趋势分析
- ✅ 财务指标查询和计算
- ✅ 完整的中文自然语言支持
- ✅ 95,662+份公告文档的语义搜索
- ✅ 财务报告深度内容分析
- ✅ 支持上下文理解的智能问答
- ✅ 多公司横向对比分析
- ✅ BGE-M3模型提供精准语义理解
- ✅ 智能判断查询意图并自动路由
- ✅ SQL和RAG结果智能整合
- ✅ 提供综合性的分析报告
- ✅ 支持复杂的多维度查询
- ✅ 三阶段智能PDF下载策略(解决巨潮网特殊问题)
- ✅ 100%的PDF下载成功率
- ✅ 智能文本提取和分块
- ✅ 批量处理和进度管理
- 🔥 LangChain框架:构建强大的AI应用
- 🔥 向量数据库:Milvus实现高效语义搜索
- 🔥 双数据库架构:MySQL结构化数据 + Milvus非结构化数据
- 🔥 GPU加速:支持CUDA加速的向量计算
- 🔥 生产级稳定性:完整的错误处理和日志系统
┌─────────────────────────────────────────────────────────┐
│ 用户界面层 │
│ (API / CLI / Web) │
├─────────────────────────────────────────────────────────┤
│ API服务层 │
│ (FastAPI) │
├─────────────────────────────────────────────────────────┤
│ 智能代理层 │
│ ┌──────────┬───────────┬──────────────┐ │
│ │ SQL Agent│ RAG Agent │ Hybrid Agent │ │
│ └──────────┴───────────┴──────────────┘ │
├─────────────────────────────────────────────────────────┤
│ 模型层 │
│ ┌─────────────┬──────────────────────┐ │
│ │ LLM (DeepSeek)│ Embedding (BGE-M3) │ │
│ └─────────────┴──────────────────────┘ │
├─────────────────────────────────────────────────────────┤
│ 数据存储层 │
│ ┌──────────────┬────────────────────┐ │
│ │ MySQL │ Milvus │ │
│ │ (结构化数据) │ (向量数据) │ │
│ └──────────────┴────────────────────┘ │
└─────────────────────────────────────────────────────────┘
- Python 3.8+
- MySQL 5.7+
- Milvus 2.0+
- CUDA 11.0+ (可选,用于GPU加速)
- 16GB+ RAM
- 50GB+ 存储空间
git clone https://github.com/YOUR_USERNAME/stock-analysis-system.git
cd stock-analysis-systempython -m venv stock_analysis_env
# Windows
stock_analysis_env\Scripts\activate
# Linux/Mac
source stock_analysis_env/bin/activatepip install -r requirements.txtcp .env.example .env
# 编辑.env文件,配置数据库连接和API密钥# 确保MySQL和Milvus服务已启动
python scripts/setup/init_database.pypython -m uvicorn api.main:app --reload --host 0.0.0.0 --port 8000访问 http://localhost:8000/docs 查看API文档
# 查询实时股价
POST /api/query
{
"question": "贵州茅台最新股价",
"query_type": "sql"
}
# 查询涨跌幅排行
{
"question": "今天涨幅最大的10只股票",
"query_type": "sql"
}
# 历史数据分析
{
"question": "贵州茅台最近一个月的平均成交量",
"query_type": "sql"
}# 查询财务数据
POST /api/query
{
"question": "贵州茅台2024年第一季度的营收情况",
"query_type": "rag"
}
# 分析公司战略
{
"question": "分析茅台的高端化战略",
"query_type": "rag"
}
# 行业对比
{
"question": "比较茅台和五粮液的毛利率",
"query_type": "rag"
}# 综合分析
POST /api/query
{
"question": "分析贵州茅台的财务状况和股价表现",
"query_type": "hybrid"
}
# 投资建议
{
"question": "基于财务数据和市场表现,评估茅台的投资价值",
"query_type": "hybrid"
}# RAG交互查询
python rag_query_interface.py
# 批量处理公告
python batch_process_manager.py
# 系统健康检查
python scripts/utils/system_check.py
# 数据库分析
python scripts/analysis/db_analyzer.py| 端点 | 方法 | 描述 |
|---|---|---|
/ |
GET | 欢迎页面 |
/health |
GET | 健康检查 |
/api/query |
POST | 执行查询 |
/api/status |
GET | 系统状态 |
/docs |
GET | Swagger文档 |
/redoc |
GET | ReDoc文档 |
{
"question": "查询问题",
"query_type": "sql|rag|hybrid",
"filters": {
"stock_code": "600519.SH",
"date_range": {
"start": "2024-01-01",
"end": "2024-12-31"
}
}
}{
"status": "success",
"query_type": "sql",
"question": "原始问题",
"answer": "查询结果",
"metadata": {
"processing_time": 1.23,
"data_sources": ["MySQL"],
"confidence": 0.95
}
}stock_analysis_system/
├── config/ # 系统配置
├── database/ # 数据库连接器
├── rag/ # RAG系统实现
├── agents/ # 智能代理
├── models/ # 模型配置
├── api/ # API服务
├── utils/ # 工具函数
├── scripts/ # 独立脚本工具
│ ├── analysis/ # 数据分析工具
│ ├── maintenance/ # 系统维护脚本
│ ├── tools/ # 通用工具
│ ├── tests/ # 测试脚本
│ └── debugging/ # 调试工具
├── docs/ # 项目文档
├── tests/ # 单元测试
└── data/ # 数据存储(Git忽略)
详细的目录结构说明请查看 DIRECTORY_STRUCTURE.md
- SQL查询: 5-30秒(视复杂度而定)
- RAG查询: 3-15秒(向量搜索优化)
- 混合查询: 10-45秒(并行处理)
- PDF处理速度: 30秒/文档
- 向量化速度: 100文档/分钟
- 并发支持: 50+用户
- MySQL记录: 2800万+条
- 向量文档: 95,662+个
- 处理公司: 500+家
- PDF文档: 5000+份
- 安装开发依赖
pip install -r requirements-dev.txt- 配置pre-commit
pre-commit install- 运行测试
pytest tests/- 使用Black进行代码格式化
- 遵循PEP 8编码规范
- 编写docstring文档
- 添加类型注解
- 在相应模块目录创建新文件
- 编写单元测试
- 更新文档
- 提交Pull Request
A: 系统已实现三阶段下载策略,会自动处理大小写和session问题。如仍有问题,检查document_processor.log。
A: 确保Milvus服务运行正常,检查端口19530是否开放,运行scripts/tools/load_milvus_collection.py测试连接。
A: 可以通过以下方式优化:
- 启用Redis缓存
- 优化SQL查询语句
- 增加系统内存
- 使用GPU加速
A: 在database/目录添加新的连接器,在agents/目录添加相应的Agent。
- ✅ 完成项目结构重组
- ✅ 整理了39个工具脚本
- ✅ 归档了29个修复脚本
- ✅ 创建完整的文档体系
- ✅ 解决PDF下载特殊问题
- ✅ 实现三阶段下载策略
- ✅ 优化日志系统
- ✅ 修复Milvus集合加载问题
- ✅ 完成混合查询系统
- ✅ 系统全功能可用
- ✅ 初始版本发布
- ✅ 实现基础RAG功能
- ✅ 完成SQL查询系统
欢迎贡献代码!请遵循以下步骤:
- Fork本仓库
- 创建功能分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 提交Pull Request
- 遵守代码规范
- 编写测试用例
- 更新相关文档
- 保持commit信息清晰
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情
- 📧 Email: [email protected]
- 💬 Issues: GitHub Issues
- 📖 Wiki: 项目Wiki
如果这个项目对你有帮助,请给个⭐️Star支持一下!
Made with ❤️ by the Stock Analysis Team