这是一个基于大语言模型的金融资讯分析和智能生成系统,集成了新闻分析、文章生成、用户画像构建、智能聊天等多项AI功能。系统采用现代化的技术架构,提供高效、智能的金融内容服务。
- 新闻价值评估: 多维度评估新闻的时效性、重要度、影响范围
- 内容结构化: 自动提取关键要素、关键词、热门板块
- 摘要生成: 三段式摘要(事实陈述+市场解读+影响预判)
- 敏感信息处理: 自动识别并昵称化处理敏感信息
- 早间必读: 基于最新资讯生成每日金融早报
- 逻辑复盘: 深度分析市场逻辑和投资机会
- 个性化内容: 基于用户画像定制化内容生成
- 质量评估: 自动化文章质量评分和优化建议
- RAG增强: 基于本地向量数据库的检索增强生成
- 上下文记忆: 支持多轮对话和历史记录管理
- 专业回答: 专注金融领域的专业问答服务
- 流式输出: 支持实时流式响应
- 市场指数: 实时展示主要股指数据和K线图
- 词云分析: 热点关键词可视化展示
- 统计报表: 用户使用统计和系统性能监控
- 定时任务: 新闻抓取、文章生成、数据更新
- 消息推送: 飞书机器人自动推送重要内容
- 数据同步: 自动化数据处理和存储
- Web框架: FastAPI 0.115.11 + Uvicorn
- 数据库: MongoDB 4.11+ (支持副本集)
- AI集成:
- 大语言模型API (GLM-4-Flash/OpenAI兼容)
- 向量检索 (FAISS + SentenceTransformers)
- 本地RAG聊天服务
- 任务调度: APScheduler 3.11.0
- 文件存储: 阿里云OSS
- 消息推送: 飞书机器人
- 基础技术: HTML5 + CSS3 + 原生JavaScript
- 数据可视化: ECharts + 词云组件
- 界面设计: 响应式布局,现代化UI
fastapi==0.115.11
uvicorn==0.34.0
pymongo==4.11.2
motor==3.7.0
openai==1.65.3
faiss-cpu==1.8.0
sentence-transformers==2.7.0
torch>=2.0.0,<2.3.0
pandas==2.2.3
numpy>=1.21.0,<2.0.0
APScheduler==3.11.0
loguru==0.7.3
new_finance_ai/
├── app.py # 主应用入口
├── config/
│ └── settings.py # 配置文件
├── api/ # API接口层
│ ├── article.py # 文章相关接口
│ ├── chat.py # 聊天接口
│ ├── dashboard.py # 仪表盘接口
│ ├── page.py # 页面路由
│ ├── post.py # 历史发文接口
│ └── upload.py # 文件上传接口
├── core/ # 核心业务逻辑
│ ├── article.py # 文章生成逻辑
│ ├── event.py # 事件处理逻辑
│ ├── news.py # 新闻处理逻辑
│ └── posts.py # 历史发文处理
├── services/ # 服务层
│ ├── chat_service.py # 聊天服务
│ ├── deepseek_processor.py # DeepSeek处理器
│ ├── llm.py # LLM服务
│ ├── mongodb.py # MongoDB服务
│ ├── vector_service.py # 向量检索服务
│ └── oss_uploader.py # OSS上传服务
├── models/ # 数据模型
│ ├── database.py # 数据库模型
│ └── models.py # API模型
├── prompt/ # 提示词模板
│ ├── article.py # 文章生成提示词
│ ├── event.py # 事件分析提示词
│ ├── news.py # 新闻分析提示词
│ ├── posts.py # 历史发文提示词
│ └── util.py # 通用提示词工具
├── utils/ # 工具函数
│ ├── html_parser.py # HTML解析工具
│ ├── task_utils.py # 任务处理工具
│ ├── time_utils.py # 时间工具
│ └── tools.py # 通用工具
├── static/ # 静态资源
│ ├── index.html # 主页面
│ ├── generate.html # 生成页面
│ ├── styles.css # 样式文件
│ ├── shared.js # 共享JS
│ └── echarts.min.js # 图表库
├── vector_storage/ # 向量存储
│ ├── faiss_index.bin # FAISS索引文件
│ ├── metadata.json # 元数据
│ └── documents.json # 文档数据
└── logs/ # 日志目录
- Python 3.10+
- MongoDB 4.11+
- 8GB+ RAM (推荐)
# 创建虚拟环境
python -m venv venv
source venv/bin/activate # Linux/Mac
# 或
.\venv\Scripts\activate # Windows
# 安装依赖
pip install -r requirements.txt创建 .env 文件并配置以下参数:
# MongoDB配置
MONGODB_URI=mongodb://你的用户名:你的密码@你的MongoDB地址:端口/admin
MONGODB_DB=你的数据库名
# LLM配置
LLM_MODEL=GLM-4-Flash
LLM_API_KEY=你的LLM_API密钥
LLM_BASE_URL=你的LLM服务地址
# Dify配置 (可选)
DIFY_DATASET_API_KEY=你的Dify数据集API密钥
DIFY_DATASET_ID=你的Dify数据集ID
DIFY_BASE_URL=你的Dify服务地址
DIFY_CHAT_API_KEY=你的Dify聊天API密钥
# 飞书配置 (可选)
FEISHU_APP_URL=你的飞书Webhook地址
# 阿里云OSS配置 (可选)
OSS_ACCESS_KEY_ID=你的阿里云OSS_AccessKey_ID
OSS_ACCESS_KEY_SECRET=你的阿里云OSS_AccessKey_Secret
OSS_ENDPOINT=你的OSS服务地址
OSS_BUCKET_NAME=你的OSS存储桶名称
# 进程配置
PROCESS_MAX_WORKERS=4
THREAD_MAX_WORKERS=10确保MongoDB服务正在运行,系统会自动创建所需的集合。
# 开发模式启动
python app.py
# 或使用uvicorn启动
uvicorn app:app --host 0.0.0.0 --port 8080 --workers 4访问 http://localhost:8080 查看主界面
访问 http://localhost:8080/docs 查看API文档
-
主仪表盘 (
/)- 查看市场指数和K线图
- 浏览最新资讯列表
- 生成文章功能
-
文章生成 (
/generate)- 选择文章类型(早间必读/逻辑复盘)
- 实时查看生成进度
- 预览和导出生成结果
-
智能聊天 (API接口)
- POST
/api/chat- 发送聊天消息 - GET
/api/chat/history- 获取聊天历史 - POST
/api/chat/feedback- 消息反馈
- POST
POST /api/generate
Content-Type: application/json
{
"article_type": "ReadMorning" // 或 "LogicalReview"
}POST /api/chat
Content-Type: application/json
{
"message": "请分析一下当前市场情况",
"conversation_id": "可选的对话ID",
"stream": false
}GET /api/news/{news_id}系统内置多个定时任务,可在 scheduler_job.py 中配置:
- 新闻处理: 每2小时执行
- 文章生成: 每日定时生成
- 数据同步: 定期数据更新
- 模型: all-MiniLM-L6-v2 (384维)
- 索引类型: FAISS IndexFlatIP
- 存储路径:
vector_storage/
- 日志级别: INFO
- 日志目录:
logs/ - 轮转策略: 按日期轮转
FROM python:3.10-slim
WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt
COPY . .
EXPOSE 8080
CMD ["python", "app.py"]- 使用反向代理 (Nginx)
- 配置SSL证书
- 设置环境变量
- 配置日志收集
- 设置监控告警
- 并发处理: 支持多进程/多线程
- 缓存策略: 向量检索结果缓存
- 连接池: MongoDB连接池优化
- 异步处理: FastAPI异步支持
- CPU: 4核心以上
- 内存: 8GB以上
- 存储: SSD硬盘
- 网络: 稳定的网络连接
- API密钥通过环境变量配置
- 数据库连接加密
- 用户数据隔离存储
- JWT认证机制
- API访问频率限制
- 敏感信息自动处理
- Fork 本项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 打开 Pull Request
本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情
A: 修改 .env 文件中的 LLM_MODEL 和相关配置即可。
A: 使用 migrate_to_faiss.py 脚本进行数据迁移。
A: 修改 prompt/ 目录下对应的提示词文件。
A: 调整 config/settings.py 中的进程池配置,增加服务器资源。
如果您在使用过程中遇到问题,请:
- 查看日志文件 (
logs/目录) - 检查配置文件是否正确
- 确认所有依赖服务正常运行
- 提交 Issue 描述问题详情
注意: 请确保在生产环境中正确配置所有环境变量和安全设置。