Umgebungsvariablen konfigurieren
Die Konfiguration von PlantPulse AI stammt aus /etc/kopens/plantpulse-ai.env einer Datei.
sudo vi /etc/kopens/plantpulse-ai.env
/etc/kopens/Der Pfad ist /etc/kopens/plantpulse-ai.env. Sie befindet sich außerhalb des Repo-Baums, nicht im Installationsverzeichnis
(/opt/kopens/plantpulse-ai-docker), und hat die Berechtigung 0600.
Die drei Produkte Platform, AI und Studio verwenden dieselbe Konvention für
/etc/kopens/plantpulse-<product>.env.
compose/.env ist ein veralteter Pfad. Er wird derzeit nicht gelesen, daher ändern sich die Services nicht, wenn Sie ihn anpassen. Falls die alte Datei noch vorhanden ist, dient sie nach der Migration nur noch als Vergleichsreferenz.
Die Werte *_PASSWORD und *_API_KEY in der folgenden Tabelle werden nicht vollständig wirksam, wenn Sie nur die Datei ändern. Bei Werten wie Neo4j, bei denen das Serverkonto die autoritative Quelle ist, müssen Sie auch die Serverseite ändern. Wenn die Reihenfolge falsch ist, bleibt die Authentifizierung beschädigt.
Verwenden Sie ein spezialisiertes Tool — Passwort- und API-Schlüsseländerung.
Nach einer Änderung müssen Sie den Service neu erstellen (docker restart liest die env nicht erneut).
cd /opt/kopens/plantpulse-ai-docker
bin/restart.sh
PlantPulse IIoT-Serververbindung
Informationen zum PlantPulse IIoT-Plattformserver, mit dem PlantPulse AI integriert ist.
| Variable | Beschreibung | Standardwert |
|---|---|---|
PP_SERVER_HOST | PlantPulse IIoT-Server IP | 100.68.69.41 |
PP_SERVER_PORT | Serverport | 7443 |
PP_SERVER_SSL | SSL aktivieren | true |
PP_SERVER_USERNAME | API-Authentifizierungsbenutzer | api |
PP_SERVER_PASSWORD | API-Authentifizierungspasswort | api123! |
Systempfade
| Variable | Beschreibung | Standardwert |
|---|---|---|
PP_MODE | Betriebsmodus | MASTER |
PP_HOME | Home-Verzeichnis | /home/kopens |
PP_DATA_DIR | Datenspeicherpfad | /data1/pp-data |
PP_TEMP_DIR | Temporärer Dateipfad | /data1/pp-temp |
JAVA_HOME | JDK-Pfad | $PP_HOME/tools/java/jdk-21 |
AI-Inferenzserver
Alle AI-Services greifen über einen LiteLLM-Proxy auf das LLM zu.
| Variable | Beschreibung | Standardwert |
|---|---|---|
PI_INFERENCE_SERVER_BASE_URL | LLM-API-Endpunkt | http://127.0.0.1:4000/v1 |
PI_INFERENCE_SERVER_API_KEY | API-Schlüssel | bei-Installation-ändern |
Integriertes MCP (Platform)
MCP- und Ontologie-Tools werden vom integrierten MCP der PlantPulse Platform (/api/v5/mcp) bereitgestellt. Die Verbindungsinformationen werden in web/config/application.properties von AI Chat Web verwaltet.
| Element | Beschreibung |
|---|---|
mcp.api.url | Basis-URL des integrierten MCP (Platform server-web) |
mcp.api.token | api_key Authentifizierungstoken |
mcp.tools.enabled | Integrierte MCP-Tools aktivieren |
Mit der Überarbeitung im Juli 2026 wurde Langflow entfernt. Die Chat- und Agentenorchestrierung wird vom integrierten Agent in AI Chat Web übernommen, und das LLM wird über den obigen LiteLLM-Server (Inferenzserver) zugegriffen.
RAG (LightRAG)
Die RAG-Engine ist ein LightRAG 1.5.4-Server. Die folgenden Elemente sind LLM-, Embedding- und Sucheinstellungen, die LightRAG verwendet und in der Bereitstellungsumgebung (compose/env) verwaltet werden.
LLM-Konfiguration
| Variable | Beschreibung | Standardwert |
|---|---|---|
LLM_MODEL | Zu verwendendes LLM-Modell | gpt-4o |
VISION_MODEL | Vision-Modell | gpt-4o |
LLM_TEMPERATURE | Generierungstemperatur | 0.7 |
LLM_TOP_P | Top-P-Sampling | 0.8 |
LLM_TIMEOUT | LLM-Timeout (Sekunden) | 600 |
Embedding-Konfiguration
| Variable | Beschreibung | Standardwert |
|---|---|---|
EMBED_MODEL | Embedding-Modell | text-embedding-3-large |
EMBED_DIM | Embedding-Dimension | 2560 |
EMBED_MAX_TOKENS | Maximale Token | 8192 |
Reranker-Konfiguration
| Variable | Beschreibung | Standardwert |
|---|---|---|
ENABLE_RERANKER | Reranker aktivieren | true |
RERANK_MODEL | Reranking-Modell | rerank-multilingual-v3.0 |
TOP_K | Endgültige Rückgabeanzahl | 5 |
RERANK_TOP_K | Reranking-Kandidatenanzahl | 10 |
Suchkonfiguration
| Variable | Beschreibung | Standardwert |
|---|---|---|
RAG_CONTEXT_MODE | Kontextmodus | chunk |
RAG_MAX_CONTEXT_TOKENS | Maximale Kontext-Token | 3200 |
RAG_CONTEXT_FILTER_TYPES | Filtertyp | text,image,table |
ENABLE_MULTIMODAL | Multimodal aktivieren | true |
DOC_PARSER | Dokumenten-Parser | docling |
Chunking-Konfiguration
| Variable | Beschreibung | Standardwert |
|---|---|---|
CHUNK_SIZE | Chunk-Größe | 512 |
CHUNK_OVERLAP_SIZE | Chunk-Überlappung | 50 |
Datenbanken
PostgreSQL
| Variable | Beschreibung | Standardwert |
|---|---|---|
POSTGRES_HOST | Host | 127.0.0.1 |
POSTGRES_PORT | Port | 5432 |
POSTGRES_MAX_CONNECTIONS | Maximale Verbindungen | 12 |
Cassandra
| Variable | Beschreibung | Standardwert |
|---|---|---|
TS_CASS_HOST | Cassandra-Host | 192.168.0.41 |
TS_CASS_USER | Benutzer | cassandra |
Qdrant
| Variable | Beschreibung | Standardwert |
|---|---|---|
QDRANT_URL | Qdrant-URL | http://127.0.0.1:6333 |
QDRANT_API_KEY | API-Schlüssel | qdrant-key-123 |
QDRANT_DISTANCE | Distanzmetrik | Cosine |
Neo4j
| Variable | Beschreibung | Standardwert |
|---|---|---|
NEO4J_URI | Neo4j-URI | bolt://127.0.0.1:7687 |
NEO4J_USERNAME | Benutzer | neo4j |
NEO4J_PASSWORD | Passwort | neo4j123 |
Valkey (Redis)
| Variable | Beschreibung | Standardwert |
|---|---|---|
REDIS_URI | Redis-URI | redis://:redis123@127.0.0.1:6379/0 |
MinIO
| Variable | Beschreibung | Standardwert |
|---|---|---|
MINIO_ROOT_USER | Administrator-ID | minio |
MINIO_ROOT_PASSWORD | Administrator-Passwort | minio123! |
TimeSeries
| Variable | Beschreibung | Standardwert |
|---|---|---|
TS_CASS_HOST | Cassandra-Host | 192.168.0.41 |
TS_PG_HOST | PostgreSQL-Host | 100.68.69.41 |
TS_PG_DB | Datenbank | pp |
TS_EMBED_URL | Embedding-API-URL | http://127.0.0.1:4000/v1/embeddings |
TS_EMBED_MODEL | Embedding-Modell | text-embedding-3-large |
TS_EMBED_DIM | Embedding-Dimension | 2560 |
Ontology (zu integriertem MCP migriert)
Die Ontologie wurde aus einem eigenständigen Service (früher plantpulse-ontology) ausgegliedert und in das integrierte MCP der Platform (server-web /api/v5/mcp) übernommen. Die DB↔Neo4j-Synchronisierungseinstellungen werden von der Platform server-web verwaltet, daher gibt es im AI-Stack env.sh keine eigenen Ontologie-Variablen mehr. Neo4j wird weiterhin als Graphspeicher für LightRAG verwendet (siehe oben NEO4J_*).
CUDA (GPU)
Für GPU-Einsatz kommentieren Sie Folgendes aus und konfigurieren Sie es:
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
In Umgebungen ohne GPU erfolgt ein automatischer Wechsel zum CPU-Modus. Für den TimeSeries-Service ist mit Dockerfile.cpu auch ein CPU-exklusiver Build möglich.