环境变量配置
PlantPulse AI 的配置从**/etc/kopens/plantpulse-ai.env 一个文件**开始。
sudo vi /etc/kopens/plantpulse-ai.env
/etc/kopens/ 下路径是 /etc/kopens/plantpulse-ai.env。它在安装目录
(/opt/kopens/plantpulse-ai-docker) 之外,不在 repo 树内,权限为 0600。Platform、AI、Studio 三个产品都遵循同一规约使用 /etc/kopens/plantpulse-<product>.env。
compose/.env 是旧路径。现在没有人读它,所以修改那里不会改变栈。即使旧文件留下来,迁移后也只是对照用。
下表中的 *_PASSWORD·*_API_KEY 只改文件还不够。对于 Neo4j 这类服务端账号是正本的值,服务端也必须一起改,顺序错了会导致认证失效。请使用专门工具 — 密码·API 密钥变更。
改了值之后必须重建服务(docker restart 不会重新读取 env)。
cd /opt/kopens/plantpulse-ai-docker
bin/restart.sh
PlantPulse IIoT 服务器连接
PlantPulse AI 对接的 PlantPulse IIoT 平台服务器信息。
| 变量 | 说明 | 默认值 |
|---|---|---|
PP_SERVER_HOST | PlantPulse IIoT 服务器 IP | 100.68.69.41 |
PP_SERVER_PORT | 服务器端口 | 7443 |
PP_SERVER_SSL | 是否启用 SSL | true |
PP_SERVER_USERNAME | API 认证用户 | api |
PP_SERVER_PASSWORD | API 认证密码 | api123! |
系统路径
| 变量 | 说明 | 默认值 |
|---|---|---|
PP_MODE | 运行模式 | MASTER |
PP_HOME | 主目录 | /home/kopens |
PP_DATA_DIR | 数据存储路径 | /data1/pp-data |
PP_TEMP_DIR | 临时文件路径 | /data1/pp-temp |
JAVA_HOME | JDK 路径 | $PP_HOME/tools/java/jdk-21 |
AI 推理服务器
所有 AI 服务通过 LiteLLM 代理访问 LLM。
| 变量 | 说明 | 默认值 |
|---|---|---|
PI_INFERENCE_SERVER_BASE_URL | LLM API 端点 | http://127.0.0.1:4000/v1 |
PI_INFERENCE_SERVER_API_KEY | API 密钥 | 安装时需更改 |
统一 MCP(平台)
MCP·本体论工具由 PlantPulse 平台server-web 统一 MCP(/api/v5/mcp)提供。接入信息在 AI Chat Web 的 web/config/application.properties 中管理。
| 项目 | 说明 |
|---|---|
mcp.api.url | 统一 MCP 基础 URL(平台 server-web) |
mcp.api.token | api_key 认证令牌 |
mcp.tools.enabled | 是否启用统一 MCP 工具 |
2026-07 重构中移除了 Langflow。聊天/智能体编排由 AI Chat Web 内置智能体负责,LLM 经由上述 LiteLLM(推理服务器)中转。
RAG(LightRAG)
RAG 引擎是 LightRAG 1.5.4 服务器。下列项目是 LightRAG 使用的 LLM·嵌入·检索配置,由部署环境(compose/env)管理。
LLM 配置
| 变量 | 说明 | 默认值 |
|---|---|---|
LLM_MODEL | 使用的 LLM 模型 | gpt-4o |
VISION_MODEL | 视觉模型 | gpt-4o |
LLM_TEMPERATURE | 生成温度 | 0.7 |
LLM_TOP_P | Top-P 采样 | 0.8 |
LLM_TIMEOUT | LLM 超时(秒) | 600 |
嵌入配置
| 变量 | 说明 | 默认值 |
|---|---|---|
EMBED_MODEL | 嵌入模型 | text-embedding-3-large |
EMBED_DIM | 嵌入维度 | 2560 |
EMBED_MAX_TOKENS | 最大令牌数 | 8192 |
重排器配置
| 变量 | 说明 | 默认值 |
|---|---|---|
ENABLE_RERANKER | 启用重排 | true |
RERANK_MODEL | 重排模型 | rerank-multilingual-v3.0 |
TOP_K | 最终返回数 | 5 |
RERANK_TOP_K | 重排候选数 | 10 |
检索配置
| 变量 | 说明 | 默认值 |
|---|---|---|
RAG_CONTEXT_MODE | 上下文模式 | chunk |
RAG_MAX_CONTEXT_TOKENS | 最大上下文令牌数 | 3200 |
RAG_CONTEXT_FILTER_TYPES | 过滤类型 | text,image,table |
ENABLE_MULTIMODAL | 启用多模态 | true |
DOC_PARSER | 文档解析器 | docling |
分块配置
| 变量 | 说明 | 默认值 |
|---|---|---|
CHUNK_SIZE | 块大小 | 512 |
CHUNK_OVERLAP_SIZE | 块重叠 | 50 |
数据库
PostgreSQL
| 变量 | 说明 | 默认值 |
|---|---|---|
POSTGRES_HOST | 主机 | 127.0.0.1 |
POSTGRES_PORT | 端口 | 5432 |
POSTGRES_MAX_CONNECTIONS | 最大连接数 | 12 |
Cassandra
| 变量 | 说明 | 默认值 |
|---|---|---|
TS_CASS_HOST | Cassandra 主机 | 192.168.0.41 |
TS_CASS_USER | 用户 | cassandra |
Qdrant
| 变量 | 说明 | 默认值 |
|---|---|---|
QDRANT_URL | Qdrant URL | http://127.0.0.1:6333 |
QDRANT_API_KEY | API 密钥 | qdrant-key-123 |
QDRANT_DISTANCE | 距离度量 | Cosine |
Neo4j
| 变量 | 说明 | 默认值 |
|---|---|---|
NEO4J_URI | Neo4j URI | bolt://127.0.0.1:7687 |
NEO4J_USERNAME | 用户 | neo4j |
NEO4J_PASSWORD | 密码 | neo4j123 |
Valkey(Redis)
| 变量 | 说明 | 默认值 |
|---|---|---|
REDIS_URI | Redis URI | redis://:redis123@127.0.0.1:6379/0 |
MinIO
| 变量 | 说明 | 默认值 |
|---|---|---|
MINIO_ROOT_USER | 管理员 ID | minio |
MINIO_ROOT_PASSWORD | 管理员密码 | minio123! |
TimeSeries
| 变量 | 说明 | 默认值 |
|---|---|---|
TS_CASS_HOST | Cassandra 主机 | 192.168.0.41 |
TS_PG_HOST | PostgreSQL 主机 | 100.68.69.41 |
TS_PG_DB | 数据库 | pp |
TS_EMBED_URL | 嵌入 API URL | http://127.0.0.1:4000/v1/embeddings |
TS_EMBED_MODEL | 嵌入模型 | text-embedding-3-large |
TS_EMBED_DIM | 嵌入维度 | 2560 |
本体论(已迁移至统一 MCP)
本体论已从独立服务(旧 plantpulse-ontology)分离,被吸收进平台统一 MCP(server-web /api/v5/mcp)。DB↔Neo4j 同步配置由平台 server-web 管理,所以 AI 栈 env.sh 中不再有本体论专用变量。Neo4j 仍作为 LightRAG 图存储继续使用(参见上文 NEO4J_*)。
CUDA(GPU)
启用 GPU 时请取消注释并配置:
export CUDA_VISIBLE_DEVICES="0,1,2,3"
export CUDA_MANAGED_FORCE_DEVICE_ALLOC="1"
export PYTORCH_CUDA_ALLOC_CONF=expandable_segments:True,max_split_size_mb:128
在无 GPU 的环境中会自动切换到 CPU 模式。对于 TimeSeries 服务,也可通过 Dockerfile.cpu 使用 CPU 专用构建。