Skip to content

kirkluokun/FinanceTimeSeriesReviewAgent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

金融时间序列分析平台

这是一个基于CrewAI的金融时间序列数据分析平台,能够对金融商品数据进行趋势分析、技术分析和市场洞察。

项目概述

该项目使用CrewAI框架构建了一个智能Agent系统,能够自动分析金融时间序列数据,提取关键指标,搜索相关市场信息,生成综合分析报告。项目特点:

  • 自动提取关键指标并生成分析查询
  • 智能搜索相关市场信息和新闻
  • 爬取和分析网页内容
  • 生成高质量的分析报告
  • 提供Web界面进行交互

系统要求

  • Python 3.10+(建议使用Python 3.10-3.12)
  • uv (用于环境和依赖管理,安装见下文)
  • Node.js 14+(可选,用于前端开发)
  • 虚拟环境(uv 会自动管理)
  • 必要的API密钥

安装步骤

0. 安装 uv (如果尚未安装)

uv 是一个非常快速的 Python 包安装器和解析器。推荐使用它来管理本项目的环境和依赖。

macOS 和 Linux:

curl -LsSf https://astral.sh/uv/install.sh | sh

Windows:

irm https://astral.sh/uv/install.ps1 | iex

安装完成后,关闭并重新打开你的终端,或者运行 source $HOME/.cargo/env (macOS/Linux) 或重启 Powershell (Windows) 来让 uv 命令生效。你可以通过运行 uv --version 来验证安装是否成功。

1. 克隆仓库到本地

git clone <仓库地址>
cd crewai-agent

2. 创建并激活虚拟环境并安装依赖 (使用 uv)

uv 可以一步完成虚拟环境的创建和依赖安装。

# 在项目根目录 (crewai-agent) 运行:
uv sync

这个命令会:

  1. 查找 pyproject.toml 文件。
  2. 如果 .venv 虚拟环境不存在,会自动创建一个。
  3. 根据 pyproject.toml (以及可能存在的 uv.lock 文件) 安装所有必需的依赖项到 .venv 中。
  4. 确保你的环境与项目定义的依赖完全一致。

激活虚拟环境:

安装完依赖后,你需要激活这个由 uv 创建(或管理)的虚拟环境:

Linux/MacOS:

source .venv/bin/activate

Windows:

.venv\Scripts\activate

重要提示: 之后每次在这个项目工作时,都需要先激活虚拟环境。

3. 安装Node.js(可选,用于前端开发)

访问 Node.js官网 下载并安装适合您操作系统的版本。

4. 配置环境变量

在项目根目录创建.env文件,添加以下内容:

# 必须配置
TAVILY_API_KEY=tvly-xxx          # Tavily搜索API
SERPER_API_KEY=xxx               # Serper搜索API(可选,建议作为备用)
FIRECRAWL_API_KEY=fc-xxx         # Firecrawl网页爬虫API

# LLM选择(至少配置一个)
OPENAI_API_KEY=sk-xxx            # OpenAI API密钥
ANTHROPIC_API_KEY=sk-ant-xxx     # Anthropic Claude API密钥
GEMINI_API_KEY=xxx               # Google Gemini API密钥

# 可选配置
CREWAI_DISABLE_TELEMETRY=true    # 禁用CrewAI遥测
SEARCH_API=tavily                # 设置默认搜索API提供商

启动服务器

Linux/MacOS:

  1. 进入项目目录
cd crewai-agent/src/tech_analysis_crew
  1. 运行启动脚本
chmod +x start_server.sh
./start_server.sh

Windows:

  1. 进入项目目录
cd crewai-agent\src\tech_analysis_crew
  1. 运行启动脚本
start_server.bat

服务器将在 http://localhost:8080 上启动。

使用流程

Web界面分为数据预处理和复盘分析两个主要步骤:

第一步:数据预处理

  1. 上传原始CSV格式的时间序列数据文件

    • CSV文件需包含日期列和价格列
    • 日期格式应为标准格式(如YYYY-MM-DD)
    • 价格列应为数值格式
  2. 进行数据预处理设置:

    • 选择日期列和价格列
    • 设置分析时间段(注意:最多选择5个时间段
    • 调整其他数据预处理参数
  3. 点击"开始预处理"按钮

  4. 等待预处理完成并下载处理后的数据文件

第二步:复盘分析

  1. 在复盘分析区域上传预处理后的数据文件
  2. 选择需要分析的时间段(已在预处理阶段设定)
  3. 输入分析查询(例如:"分析铜价走势")
  4. 点击"开始分析"按钮
  5. 等待分析完成,查看生成的报告

命令行使用方式

除了Web界面,您还可以通过命令行使用该工具:

# 进入目录
cd crewai-agent/src/tech_analysis_crew

# 运行分析脚本
python run_backend.py --input input/your_data.csv --query "分析铜价走势"

# 输出到指定目录
python run_backend.py --input input/your_data.csv --query "分析铜价走势" --output-dir ./custom_output

API密钥获取方法

Tavily API密钥

  1. 访问 Tavily官网
  2. 注册账号并登录
  3. 导航到API密钥页面获取免费API密钥

Firecrawl API密钥

  1. 访问 Firecrawl官网
  2. 注册账号并登录
  3. 导航到API密钥页面获取API密钥

OpenAI API密钥

  1. 访问 OpenAI平台
  2. 注册账号并登录
  3. 导航到API密钥页面获取密钥

Google Gemini API密钥

  1. 访问 Google AI Studio
  2. 使用Google账号登录
  3. 点击"创建API密钥"获取Gemini API密钥
  4. 或访问 Google AI for Developers 了解更多信息和使用限制

故障排除

  • API错误:请检查API密钥是否正确设置
  • 网络爬虫失败:可能是由于目标网站限制,尝试减少并发请求数
  • 预处理失败
    • 检查原始CSV数据格式是否正确(需要包含日期列和价格列)
    • 确保CSV文件编码为UTF-8
  • 无法上传预处理文件
    • 确保文件格式正确,为预处理步骤生成的格式
    • 检查文件大小是否超过系统限制(通常为10MB)
  • 报告生成失败
    • 确保分析的时间段数量不超过5个(系统限制)
    • 检查预处理后的数据文件是否完整
  • 处理时间过长:对于大型数据集,可考虑减少分析时间段的数量

项目结构

crewai-agent/
├── src/
│   ├── tech_analysis_crew/      # 主程序目录
│   │   ├── backend.py           # 后端实现
│   │   ├── crew.py              # CrewAI团队定义
│   │   ├── run_backend.py       # 命令行工具
│   │   ├── start_server.sh      # Linux/Mac启动脚本
│   │   ├── start_server.bat     # Windows启动脚本
│   │   ├── web/                 # Web界面
│   │   │   ├── server.py        # Web服务器
│   │   │   ├── index.html       # 前端页面
│   │   │   ├── script.js        # 前端脚本
│   │   │   └── styles.css       # 样式表
│   │   ├── trendanalysis/       # 趋势分析工具
│   │   ├── utils/               # 工具类
│   │   ├── input/               # 输入数据目录
│   │   └── output/              # 输出数据目录
│   └── llm/                     # LLM接口
├── tests/                       # 测试目录
├── requirements.txt             # 依赖列表
├── pyproject.toml               # 项目配置
└── README.md                    # 项目说明

测试

运行测试套件:

pytest tests/

贡献

欢迎贡献代码、报告问题或提出改进建议。

许可证

本项目采用私有许可,未经授权不得用于商业用途。

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors