stock-ai-agent/PM2_DEPLOYMENT_GUIDE.md
2026-02-03 10:27:04 +08:00

153 lines
3.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# PM2部署问题排查指南
## 问题描述
使用PM2部署时出现错误
```
LLM调用失败: Exception: ('invalid api_key', ValueError('not enough values to unpack (expected 2, got 1)'))
```
## 原因分析
智谱AI的API Key格式要求包含`.`分隔符(例如:`xxxxx.yyyyyyy`),如果格式不正确或环境变量未正确加载,会导致此错误。
## 解决方案
### 方案1使用PM2配置文件推荐
1. 使用项目根目录的 `ecosystem.config.js` 配置文件:
```bash
cd /path/to/Stock_Agent
pm2 start ecosystem.config.js
```
2. 如果需要修改路径,编辑 `ecosystem.config.js`
```javascript
module.exports = {
apps: [{
name: 'stock-agent',
script: 'backend/app/main.py',
interpreter: 'python3',
cwd: '/your/project/path/Stock_Agent', // 修改为你的实际路径
env: {
ENV_FILE: '/your/project/path/Stock_Agent/.env' // 修改为你的实际路径
}
}]
};
```
### 方案2直接指定环境变量
```bash
cd /path/to/Stock_Agent
pm2 start backend/app/main.py \
--name stock-agent \
--interpreter python3 \
--env ENV_FILE=/path/to/Stock_Agent/.env
```
### 方案3在PM2中设置环境变量
```bash
pm2 start backend/app/main.py --name stock-agent --interpreter python3
pm2 env stock-agent ENV_FILE /path/to/Stock_Agent/.env
pm2 restart stock-agent
```
## 诊断步骤
### 1. 运行诊断脚本
```bash
cd /path/to/Stock_Agent
python3 diagnose_api_key.py
```
这个脚本会检查:
- .env文件是否存在
- API Key是否正确加载
- API Key格式是否正确
- 智谱AI客户端是否能初始化
### 2. 检查.env文件
确保 `.env` 文件存在且格式正确:
```bash
cat .env
```
应该看到类似内容:
```
ZHIPUAI_API_KEY=xxxxx.yyyyyyy
TUSHARE_TOKEN=your_token_here
```
### 3. 验证API Key格式
智谱AI的API Key应该
- 包含 `.` 分隔符
- 格式类似:`415e176f8b964f98a6b4e44b24171145.AVe4qY6RSbxBolhI`
- 长度通常在40-60个字符
### 4. 检查PM2日志
```bash
pm2 logs stock-agent
```
查看启动日志中的配置加载信息:
- `[Config] 找到.env文件: /path/to/.env` - 表示找到了配置文件
- `正在初始化智谱AI客户端` - 表示开始初始化
- `智谱AI LLM服务初始化成功` - 表示初始化成功
## 常见问题
### Q1: API Key格式错误
**症状**: 错误信息包含 `not enough values to unpack`
**解决**:
1. 检查API Key是否包含 `.` 分隔符
2. 确认从智谱AI官网复制的完整Key
3. 检查是否有多余的空格或换行符
### Q2: 环境变量未加载
**症状**: 日志显示 `智谱AI API Key未配置`
**解决**:
1. 使用 `ecosystem.config.js` 配置文件
2. 确保 `cwd``ENV_FILE` 路径正确
3. 重启PM2进程
### Q3: .env文件路径问题
**症状**: 日志显示 `警告:未找到.env文件`
**解决**:
1. 确认.env文件在项目根目录
2. 使用绝对路径指定ENV_FILE
3. 检查文件权限
## 验证修复
修复后,运行以下命令验证:
```bash
# 1. 重启PM2进程
pm2 restart stock-agent
# 2. 查看日志
pm2 logs stock-agent --lines 50
# 3. 应该看到成功信息
# [Config] 找到.env文件: ...
# 正在初始化智谱AI客户端API Key前10位: 415e176f8b...
# 智谱AI LLM服务初始化成功
```
## 联系支持
如果问题仍未解决,请提供以下信息:
1. 诊断脚本输出
2. PM2日志隐藏敏感信息
3. .env文件格式隐藏实际Key值