| backend | ||
| docs | ||
| frontend | ||
| .env.example | ||
| .gitignore | ||
| diagnose_api_key.py | ||
| ecosystem.config.js | ||
| install.sh | ||
| PM2_DEPLOYMENT_GUIDE.md | ||
| PROJECT_SUMMARY.md | ||
| README.md | ||
| start.sh | ||
A股AI分析Agent系统
基于AI Agent的股票智能分析系统,提供自然语言对话界面,支持实时行情查询、技术分析、基本面分析等功能。
功能特性
- 自然语言对话:通过对话方式查询股票信息
- 实时行情查询:获取股票实时价格、涨跌幅等数据
- 技术指标分析:计算MA、MACD、RSI、KDJ、BOLL等技术指标
- 基本面信息:查询公司概况、行业、上市日期等
- 数据可视化:生成专业的K线图和技术指标图表
- 技能插件系统:可扩展的技能架构,支持动态启用/禁用
- 对话历史:保存和查看历史分析记录
技术栈
后端
- 框架:FastAPI
- AI Agent:LangChain + 智谱AI GLM-4
- 数据源:Tushare
- 缓存:内存缓存(无需Redis)
- 数据库:SQLite
- 语言:Python 3.11+ (推荐 3.11 或 3.12)
前端
- 框架:Vue 3 (CDN版本)
- UI:Bootstrap 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
服务启动后,访问:
- 前端界面:http://localhost:8000
- API文档:http://localhost:8000/docs
使用指南
基本查询
-
查询实时行情
查询600519的实时行情 贵州茅台的价格 000001现在多少钱 -
查看K线图
600519的K线图 贵州茅台的走势 -
技术指标分析
600519的技术指标 分析贵州茅台的MACD -
基本面信息
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/
开发指南
添加新技能
- 在
backend/app/skills/目录下创建新的技能文件 - 继承
BaseSkill类并实现execute方法 - 在
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 配置。
性能优化
- 启用Redis缓存:显著减少API调用和响应时间
- 调整缓存TTL:在
cache_service.py中根据需求调整缓存时间 - 限制历史消息数:在
context.py中调整max_history参数
安全建议
-
生产环境:
- 修改
.env中的SECRET_KEY - 设置
DEBUG=False - 配置严格的CORS策略
- 使用HTTPS
- 修改
-
API密钥:
- 不要将
.env文件提交到版本控制 - 定期更换API密钥
- 使用环境变量或密钥管理服务
- 不要将
贡献指南
欢迎贡献代码!请遵循以下步骤:
- Fork本项目
- 创建特性分支 (
git checkout -b feature/AmazingFeature) - 提交更改 (
git commit -m 'Add some AmazingFeature') - 推送到分支 (
git push origin feature/AmazingFeature) - 开启Pull Request
许可证
本项目采用 MIT 许可证。
联系方式
如有问题或建议,请提交Issue。
致谢
- Tushare - 金融数据接口
- 智谱AI - AI模型服务
- FastAPI - Web框架
- LangChain - AI Agent框架
- Lightweight Charts - 图表库