2.7 KiB
2.7 KiB
Portainer 部署资产 AI 问数
配置 Key 后默认使用 DeepSeek Flash 理解自然语言与会话上下文;ASSET_AI_EXTERNAL_ENABLED=0 可显式关闭模型。此前版本显式配置了 0 的 Stack,请改为 1。模型会收到问题原文、近期会话、分析条件和相关维度目录,详情见 会话分析说明。
DeepSeek Key 由 Node 服务端在运行时读取,变量名为 DEEPSEEK_API_KEY。模型固定为 deepseek-flash,接口为 https://api.deepseek.com/chat/completions,部署节点需要能够访问该 HTTPS 地址。
Stack 配置
仓库的 docker-compose.yml 已包含:
services:
ln-bi:
environment:
DEEPSEEK_API_KEY: "${DEEPSEEK_API_KEY:-}"
ASSET_AI_EXTERNAL_ENABLED: "${ASSET_AI_EXTERNAL_ENABLED:-1}"
- 等待当前分支的 Woodpecker 构建与镜像推送成功,取得本次构建对应的镜像标签。
- Portainer → Stacks → 现有
ln-biStack。确认 Compose 的image使用本次构建的镜像,且保留现有数据库、认证、网络和端口配置。 - 在 Environment variables 中新增名称
DEEPSEEK_API_KEY,值粘贴实际 API Key。Compose 必须包含上面的变量引用,才能将 Stack 变量传入容器。 - 点击 Update the stack 并重新部署,确保拉取新镜像。Git 管理的 Stack 需要从仓库拉取新版 Compose;Web Editor 管理的 Stack 则直接更新编辑器内容。
- 登录应用,在资产管理中打开「AI 问数」,查询“当前库存按区域统计”验证。
后续更换 Key 只需更新 Stack 环境变量并重新部署/创建容器,无需重新构建镜像。仅重启旧容器不会刷新其环境变量。未配置 Key 或显式关闭模型时使用本地规则,并在界面提示,其他资产功能可继续使用。
检查是否注入
在 Portainer 中打开正在运行的应用容器 Console,执行:
node -e 'console.log(process.env.DEEPSEEK_API_KEY ? "已配置" : "未配置")'
该命令只检查是否存在,不打印 Key;实际有效性由问数请求验证。Swarm 部署请进入对应任务容器检查。
Key 不使用 VITE_ 前缀,不写入前端代码、Dockerfile、构建参数或 Git。.env 与本机日志已排除出 Git 和 Docker 构建上下文。现有应用端口保持 8111,无需为 DeepSeek 新增监听端口。
仓库 Compose 采用显式 environment 引用,可用于 Docker Standalone 与 Swarm;不依赖仅 Standalone 支持的 env_file: stack.env。