77 lines
2.6 KiB
Bash
77 lines
2.6 KiB
Bash
#!/bin/bash
|
|
set -e
|
|
|
|
echo "=========================================="
|
|
echo "🤖 J.A.R.V.I.S. Terminal - Setup"
|
|
echo "=========================================="
|
|
|
|
# 1. Virtual Environment
|
|
echo "--- Richte Python-Umgebung ein..."
|
|
if [ ! -d "venv" ]; then
|
|
python3 -m venv venv
|
|
fi
|
|
|
|
./venv/bin/pip install --upgrade pip
|
|
if [ -f "requirements.txt" ]; then
|
|
./venv/bin/pip install -r requirements.txt
|
|
fi
|
|
|
|
# 2. Ordnerstruktur
|
|
mkdir -p config data workspace
|
|
|
|
# 3. .env Setup
|
|
ENV_FILE="config/.env"
|
|
if [ ! -f "$ENV_FILE" ]; then
|
|
echo "--- Erstelle .env Konfiguration..."
|
|
read -p "Dein Name (Standard: Meik): " web_user
|
|
read -p "Primäre KI (google, openai, nvidia, ollama) [nvidia]: " ai_prov
|
|
read -p "NVIDIA API Key: " nvidia_key
|
|
read -p "Google API Key: " google_key
|
|
|
|
cat <<EOF > "$ENV_FILE"
|
|
WEB_USER_NAME=${web_user:-Meik}
|
|
AI_PROVIDER=${ai_prov:-nvidia}
|
|
GOOGLE_API_KEY=$google_key
|
|
NVIDIA_API_KEY=$nvidia_key
|
|
NVIDIA_MODEL=moonshotai/kimi-k2.5
|
|
GOOGLE_MODEL=gemini-2.5-flash
|
|
OLLAMA_BASE_URL=http://127.0.0.1:11434/v1
|
|
OLLAMA_MODEL=llama3
|
|
EOF
|
|
echo "✅ .env erstellt."
|
|
fi
|
|
|
|
# 4. System Prompt kopieren
|
|
PROMPT_FILE="config/system_prompt.txt"
|
|
if [ ! -f "$PROMPT_FILE" ]; then
|
|
echo "--- Erstelle Standard-Prompt..."
|
|
cat << 'EOF' > "$PROMPT_FILE"
|
|
Dein Name ist JARVIS.
|
|
Du bist ein präziser KI-Assistent für die Cluster-Verwaltung.
|
|
WICHTIGSTE REGEL: Deine Sprache ist locker, technisch versiert und du verwendest NIEMALS die Höflichkeitsform "Sie". Wir sind per Du.
|
|
|
|
DEIN WORKSPACE (GEDÄCHTNIS):
|
|
Du hast Zugriff auf ein eigenes Arbeitsverzeichnis auf dem Host-System (localhost), um dir Notizen zu machen oder Todos für {user_name} zu speichern:
|
|
- Arbeitsverzeichnis: {workspace_dir}
|
|
- Notizen-Datei: {notes_file}
|
|
- Todo-Liste: {todo_file}
|
|
|
|
Du kannst diese Dateien lesen oder beschreiben. Nutze dazu normale Shell-Befehle (z.B. cat, echo "text" >> datei) mit dem Ziel "localhost":
|
|
<EXECUTE target="localhost">befehl</EXECUTE>
|
|
|
|
PROTOKOLL FÜR BEFEHLE (2 Phasen):
|
|
PHASE 1 (Vorschlag): Wenn {user_name} eine Aktion anfordert, erstelle NUR einen Text-Vorschlag.
|
|
- Beschreibe kurz, was du tun würdest. Nenne den Befehl als normalen Text.
|
|
- Frage explizit nach Erlaubnis: "Soll ich das ausführen, {user_name}?"
|
|
PHASE 2 (Ausführung): NUR wenn {user_name} die Aktion bestätigt, gibst du den Befehl im XML-Format aus:
|
|
<EXECUTE target="IP_ODER_LOCALHOST">befehl</EXECUTE>
|
|
|
|
Bekannte Nodes:
|
|
{node_info}
|
|
EOF
|
|
echo "✅ system_prompt.txt erstellt."
|
|
fi
|
|
|
|
echo "=========================================="
|
|
echo "✅ Setup abgeschlossen! Start mit: ./start.sh"
|
|
echo "==========================================" |