Go to file
2026-02-25 23:28:04 +08:00
backend update 2026-02-25 23:28:04 +08:00
docs 增加 bitget 实盘的数据基础设施 2026-02-22 23:54:46 +08:00
frontend update 2026-02-25 21:29:39 +08:00
scripts 增加新闻agent 2026-02-25 19:59:20 +08:00
.env.example 增加 bitget 实盘的数据基础设施 2026-02-22 23:54:46 +08:00
.gitignore first commit 2026-02-03 10:08:15 +08:00
clear_cache.py update 2026-02-03 16:42:26 +08:00
diagnose_api_key.py update 2026-02-03 10:27:04 +08:00
ecosystem.config.js update 2026-02-20 22:31:31 +08:00
install.sh first commit 2026-02-03 10:08:15 +08:00
PM2_DEPLOYMENT_GUIDE.md update 2026-02-03 10:27:04 +08:00
PM2_USAGE.md u 2026-02-19 21:29:26 +08:00
PROJECT_SUMMARY.md first commit 2026-02-03 10:08:15 +08:00
README.md first commit 2026-02-03 10:08:15 +08:00
start.sh first commit 2026-02-03 10:08:15 +08:00
update.sh update 2026-02-07 18:01:59 +08:00

A股AI分析Agent系统

基于AI Agent的股票智能分析系统提供自然语言对话界面支持实时行情查询、技术分析、基本面分析等功能。

功能特性

  • 自然语言对话:通过对话方式查询股票信息
  • 实时行情查询:获取股票实时价格、涨跌幅等数据
  • 技术指标分析计算MA、MACD、RSI、KDJ、BOLL等技术指标
  • 基本面信息:查询公司概况、行业、上市日期等
  • 数据可视化生成专业的K线图和技术指标图表
  • 技能插件系统:可扩展的技能架构,支持动态启用/禁用
  • 对话历史:保存和查看历史分析记录

技术栈

后端

  • 框架FastAPI
  • AI AgentLangChain + 智谱AI GLM-4
  • 数据源Tushare
  • 缓存内存缓存无需Redis
  • 数据库SQLite
  • 语言Python 3.11+ (推荐 3.11 或 3.12)

前端

  • 框架Vue 3 (CDN版本)
  • UIBootstrap 5
  • 图表Lightweight Charts
  • 通信Fetch API

项目结构

Stock_Agent/
├── backend/                    # 后端代码
│   ├── app/
│   │   ├── agent/             # AI Agent核心
│   │   ├── api/               # API路由
│   │   ├── models/            # 数据模型
│   │   ├── services/          # 数据服务
│   │   ├── skills/            # 技能插件
│   │   ├── utils/             # 工具函数
│   │   ├── config.py          # 配置管理
│   │   └── main.py            # 应用入口
│   └── requirements.txt       # Python依赖
├── frontend/                   # 前端代码
│   ├── css/                   # 样式文件
│   ├── js/                    # JavaScript文件
│   └── index.html             # 主页面
├── .env.example               # 环境变量示例
├── .gitignore
└── README.md

快速开始

⚠️ 重要提示Python 版本

推荐使用 Python 3.11 或 3.12。如果您使用 Python 3.13,可能会遇到依赖安装问题。

详细的安装问题解决方案请查看:安装指南

1. 环境准备

系统要求

  • Python 3.11 或 3.12(推荐)
  • 无需 Redis使用内存缓存

获取API密钥

2. 安装依赖

# 进入后端目录
cd backend

# 创建虚拟环境(使用 Python 3.11
python3.11 -m venv venv

# 激活虚拟环境
# Windows:
venv\Scripts\activate
# macOS/Linux:
source venv/bin/activate

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

如果遇到安装错误,请查看 安装指南 获取详细解决方案。

3. 配置环境变量

复制 .env.example.env 并填写配置:

cp .env.example .env

编辑 .env 文件:

# Tushare API
TUSHARE_TOKEN=your_tushare_token_here

# 智谱AI GLM-4 API
ZHIPUAI_API_KEY=your_zhipuai_key_here

# 其他配置保持默认即可
REDIS_HOST=localhost
REDIS_PORT=6379
REDIS_DB=0

# 其他配置保持默认即可

4. 启动Redis可选

如果要使用缓存功能请先启动Redis

# macOS (使用Homebrew)
brew services start redis

# Linux
sudo systemctl start redis

# Windows
# 下载并运行Redis for Windows

5. 启动后端服务

# 在backend目录下
cd backend

# 启动服务
python -m app.main

# 或使用uvicorn
uvicorn app.main:app --reload --host 0.0.0.0 --port 8000

服务启动后,访问:

使用指南

基本查询

  1. 查询实时行情

    查询600519的实时行情
    贵州茅台的价格
    000001现在多少钱
    
  2. 查看K线图

    600519的K线图
    贵州茅台的走势
    
  3. 技术指标分析

    600519的技术指标
    分析贵州茅台的MACD
    
  4. 基本面信息

    600519的基本信息
    贵州茅台是什么行业
    

技能管理

点击右上角"技能管理"按钮,可以:

  • 查看所有可用技能
  • 启用/禁用特定技能
  • 查看技能描述

API文档

启动服务后,访问 http://localhost:8000/docs 查看完整的API文档。

主要接口

1. 发送消息

POST /api/chat/message
Content-Type: application/json

{
  "message": "查询600519的实时行情",
  "session_id": "optional_session_id"
}

2. 获取对话历史

GET /api/chat/history/{session_id}

3. 获取股票行情

GET /api/stock/quote/{stock_code}

4. 获取K线数据

GET /api/stock/kline/{stock_code}?start_date=20240101&end_date=20240201

5. 获取技能列表

GET /api/skills/

开发指南

添加新技能

  1. backend/app/skills/ 目录下创建新的技能文件
  2. 继承 BaseSkill 类并实现 execute 方法
  3. backend/app/agent/core.py 中注册新技能

示例:

from app.skills.base import BaseSkill, SkillParameter

class MyNewSkill(BaseSkill):
    def __init__(self):
        super().__init__()
        self.name = "my_skill"
        self.description = "我的新技能"
        self.parameters = [
            SkillParameter(
                name="param1",
                type="string",
                description="参数1",
                required=True
            )
        ]

    async def execute(self, **kwargs) -> Dict[str, Any]:
        # 实现技能逻辑
        return {"result": "success"}

扩展数据源

backend/app/services/ 目录下添加新的数据服务类,参考 tushare_service.py 的实现。

常见问题

1. Redis连接失败

如果Redis未安装或未启动系统会自动降级不影响核心功能但会失去缓存能力。

2. Tushare API限制

免费版Tushare有调用频率限制120次/分钟)。如果遇到限制,可以:

  • 等待一段时间后重试
  • 考虑升级到付费版
  • 使用Redis缓存减少API调用

3. 股票代码格式

支持的股票代码格式:

  • 6位数字600000、000001
  • 带后缀600000.SH、000001.SZ
  • 股票名称:贵州茅台、中国平安

4. 端口被占用

如果8000端口被占用可以修改 .env 文件中的 API_PORT 配置。

性能优化

  1. 启用Redis缓存显著减少API调用和响应时间
  2. 调整缓存TTL:在 cache_service.py 中根据需求调整缓存时间
  3. 限制历史消息数:在 context.py 中调整 max_history 参数

安全建议

  1. 生产环境

    • 修改 .env 中的 SECRET_KEY
    • 设置 DEBUG=False
    • 配置严格的CORS策略
    • 使用HTTPS
  2. API密钥

    • 不要将 .env 文件提交到版本控制
    • 定期更换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 许可证。

联系方式

如有问题或建议请提交Issue。

致谢