fix(kb-workflow): 从 ~/.kb_env 加载环境变量,解决非交互式 shell 问题

This commit is contained in:
2026-02-13 20:13:17 +08:00
parent 6093a0a09d
commit 38baec8f04
+15 -6
View File
@@ -21,12 +21,14 @@ description: 当收到"添加到知识库 + 链接" 或"保存到知识库 + 链
在执行 workflow 之前,必须检查环境变量是否已经设置。 在执行 workflow 之前,必须检查环境变量是否已经设置。
**必须的环境变量**(缺失则报错退出): **必须的环境变量**(缺失则报错退出):
| 变量名 | 用途 | 示例 |
|--------|------|------| 配置方式:将变量写入 `~/.kb_env` 文件:
| `AI_API_KEY` | AI深度分析 API Key | `sk-xxx` | ```bash
| `AI_PROVIDER` | AI提供商 | `zhipu`, `openai`, `minimax` | export AI_API_KEY="your-api-key"
| `AI_MODEL` | AI模型 | `glm-4.7`, `gpt-4` | export AI_PROVIDER="zhipu"
| `AI_BASE_URL` | API Base URL | `https://open.bigmodel.cn/api/coding/paas/v4` | export AI_MODEL="glm-5"
export AI_BASE_URL="https://open.bigmodel.cn/api/coding/paas/v4"
```
**可选的环境变量**: **可选的环境变量**:
| 变量名 | 用途 | 示例 | | 变量名 | 用途 | 示例 |
@@ -81,6 +83,11 @@ print('✅ 环境变量检查通过')
**❌ 禁止跳过此步骤!必须先检查环境变量。** **❌ 禁止跳过此步骤!必须先检查环境变量。**
```bash ```bash
# 0. 从 ~/.kb_env 加载环境变量(专门的知识库配置文件,不受 bashrc 交互式检查影响)
if [ -f ~/.kb_env ]; then
source ~/.kb_env
fi
# 1. 检查必须的环境变量是否存在 # 1. 检查必须的环境变量是否存在
if [ -z "$AI_API_KEY" ] || [ -z "$AI_PROVIDER" ] || [ -z "$AI_MODEL" ] || [ -z "$AI_BASE_URL" ]; then if [ -z "$AI_API_KEY" ] || [ -z "$AI_PROVIDER" ] || [ -z "$AI_MODEL" ] || [ -z "$AI_BASE_URL" ]; then
echo "❌ 错误:必须的环境变量未设置" echo "❌ 错误:必须的环境变量未设置"
@@ -93,6 +100,8 @@ if [ -z "$AI_API_KEY" ] || [ -z "$AI_PROVIDER" ] || [ -z "$AI_MODEL" ] || [ -z "
fi fi
echo "✅ 环境变量检查通过" echo "✅ 环境变量检查通过"
echo " AI_PROVIDER: $AI_PROVIDER"
echo " AI_MODEL: $AI_MODEL"
``` ```
**如果检查不通过,必须**: **如果检查不通过,必须**: