Skip to content

JCWD123/new_finance_ai

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

金融AI智能助手系统

项目简介

这是一个基于大语言模型的金融资讯分析和智能生成系统,集成了新闻分析、文章生成、用户画像构建、智能聊天等多项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/                     # 日志目录

⚙️ 安装配置

1. 环境要求

  • Python 3.10+
  • MongoDB 4.11+
  • 8GB+ RAM (推荐)

2. 安装依赖

# 创建虚拟环境
python -m venv venv
source venv/bin/activate  # Linux/Mac
#
.\venv\Scripts\activate   # Windows

# 安装依赖
pip install -r requirements.txt

3. 环境配置

创建 .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

4. 数据库初始化

确保MongoDB服务正在运行,系统会自动创建所需的集合。

5. 启动服务

# 开发模式启动
python app.py

# 或使用uvicorn启动
uvicorn app:app --host 0.0.0.0 --port 8080 --workers 4

访问 http://localhost:8080 查看主界面
访问 http://localhost:8080/docs 查看API文档

📖 使用指南

主要功能入口

  1. 主仪表盘 (/)

    • 查看市场指数和K线图
    • 浏览最新资讯列表
    • 生成文章功能
  2. 文章生成 (/generate)

    • 选择文章类型(早间必读/逻辑复盘)
    • 实时查看生成进度
    • 预览和导出生成结果
  3. 智能聊天 (API接口)

    • POST /api/chat - 发送聊天消息
    • GET /api/chat/history - 获取聊天历史
    • POST /api/chat/feedback - 消息反馈

API接口说明

文章生成

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/
  • 轮转策略: 按日期轮转

🚀 部署指南

Docker部署 (推荐)

FROM python:3.10-slim

WORKDIR /app
COPY requirements.txt .
RUN pip install -r requirements.txt

COPY . .
EXPOSE 8080

CMD ["python", "app.py"]

生产环境配置

  1. 使用反向代理 (Nginx)
  2. 配置SSL证书
  3. 设置环境变量
  4. 配置日志收集
  5. 设置监控告警

📊 性能优化

系统性能

  • 并发处理: 支持多进程/多线程
  • 缓存策略: 向量检索结果缓存
  • 连接池: MongoDB连接池优化
  • 异步处理: FastAPI异步支持

建议配置

  • CPU: 4核心以上
  • 内存: 8GB以上
  • 存储: SSD硬盘
  • 网络: 稳定的网络连接

🔒 安全说明

数据安全

  • API密钥通过环境变量配置
  • 数据库连接加密
  • 用户数据隔离存储

访问控制

  • JWT认证机制
  • API访问频率限制
  • 敏感信息自动处理

🤝 贡献指南

  1. Fork 本项目
  2. 创建特性分支 (git checkout -b feature/AmazingFeature)
  3. 提交更改 (git commit -m 'Add some AmazingFeature')
  4. 推送到分支 (git push origin feature/AmazingFeature)
  5. 打开 Pull Request

📄 许可证

本项目采用 MIT 许可证 - 查看 LICENSE 文件了解详情

🆘 常见问题

Q: 如何更换LLM模型?

A: 修改 .env 文件中的 LLM_MODEL 和相关配置即可。

Q: 向量数据库如何迁移?

A: 使用 migrate_to_faiss.py 脚本进行数据迁移。

Q: 如何自定义提示词?

A: 修改 prompt/ 目录下对应的提示词文件。

Q: 系统性能如何优化?

A: 调整 config/settings.py 中的进程池配置,增加服务器资源。

📞 技术支持

如果您在使用过程中遇到问题,请:

  1. 查看日志文件 (logs/ 目录)
  2. 检查配置文件是否正确
  3. 确认所有依赖服务正常运行
  4. 提交 Issue 描述问题详情

注意: 请确保在生产环境中正确配置所有环境变量和安全设置。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •