sudo systemctl stop cloud-init sudo systemctl disable cloud-init sudo systemctl mask cloud-init sudo touch /etc/cloud/cloud-init.disabled sudo reboot hostnamectl sudo hostnamectl set-hostname llm-node timedatectl list-timezones | grep Berlin sudo timedatectl set-timezone Europe/Berlin sudo update-locale LANG=de_DE.UTF-8 PermitRootLogin no PasswordAuthentication yes sudo nano /etc/ssh/sshd_config sudo systemctl reload ssh sudo apt install ufw -y sudo ufw default deny incoming sudo ufw default allow outgoing sudo ufw allow OpenSSH sudo ufw enable sudo ufw status verbose sudo apt update sudo apt install -y ca-certificates curl gnupg lsb-release sudo install -m 0755 -d /etc/apt/keyrings curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg sudo chmod a+r /etc/apt/keyrings/docker.gpg echo "deb [arch=$(dpkg --print-architecture) \ signed-by=/etc/apt/keyrings/docker.gpg] \ https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin docker --version docker compose version docker run hello-world newgrp docker docker run hello-world curl "http://localhost:8000/search?query=Mae-geri" source /home/llmadmin/venvs/embedding/bin/activate exit echo 'source ~/venvs/embedding/bin/activate' >> ~/.bash_aliases source ~/.bash_aliases embedding sudo nano /home/llmadmin/llm-api/app.py ls cd venvs ls cd embedding/ ls cd / ls cd home ls cd llmadmin/ ls mkdir -p ~/llm-api ls cd llm-api/ nano app.py mkdir logs ls uvicorn app:app --host 0.0.0.0 --port 8000 groups sudo usermod -aG docker $USER newgrp docker curl -fsSL https://ollama.com/install.sh | sh ollama --version ollama version is 0.10.1 ollama run mistral curl http://localhost:11434/api/tags mkdir -p ~/docker/qdrant cd ~/docker/qdrant nano docker-compose.yml docker compose up -d docker ps curl http://localhost:6333/collections sudo systemctl enable ollama sudo systemctl start ollama ollama run mistral --keep-alive sudo apt install python3 python3-pip -y pip3 install --upgrade pip # 1. Installiere venv (falls noch nicht da) sudo apt install python3-venv -y # 2. Erstelle eine neue virtuelle Umgebung z. B. im Projektverzeichnis python3 -m venv ~/venvs/embedding # 3. Aktiviere die virtuelle Umgebung source ~/venvs/embedding/bin/activate # 4. Upgrade pip (jetzt erlaubt!) pip install --upgrade pip # 5. Installiere deine Embedding-Tools, z. B. pip install sentence-transformers qdrant-client sudo nano embed_to_qdrant.py python embed_to_qdrant.py sudo nano search_qdrant.py python search_qdrant.py sudo nano search_qdrant.py python search_qdrant.py sudo nano search_qdrant.py python search_qdrant.py pip install fastapi uvicorn pip install requests sudo nano app.py uvicorn app:app --host 0.0.0.0 --port 8000 ls rm app.py ls curl -X POST http://localhost:8000/embed -H "Content-Type: application/json" -d '{"texts": ["Mae-geri ist ein gerader Tritt.", "Hikite stabilisiert die Technik."]}' curl "http://localhost:8000/search?query=Wie tritt man Mae-geri?" curl -X POST http://localhost:8000/prompt -H "Content-Type: application/json" -d '{"query": "Wie wird Mae-geri ausgeführt?"}' curl "http://localhost:8000/search?query=Wie tritt man Mae-geri?" curl "http://localhost:8000/search?query=Wie%20tritt%20man%20Mae-geri?" curl --get http://localhost:8000/search --data-urlencode "query=Wie tritt man Mae-geri?" /home/llmadmin/llm-api/app.py /home/llmadmin/venvs/embedding/ /home/llmadmin/venvs/embedding/bin/python --version cd / cd ~/llm-api uvicorn app:app --host 0.0.0.0 --port 8000 sudo nano /etc/systemd/system/llm-api.service sudo systemctl daemon-reexec sudo systemctl daemon-reload sudo systemctl enable llm-api sudo systemctl start llm-api sudo systemctl status llm-api deactivate ls cd / ls cd home ls cd llmadmin/ ls cd docker/ ls cd q cd qdrant/ ls nano docker-compose.yml sudo restart sudo systemctl status llm-api docker ps curl http://localhost:8000/search?query=test cd / curl http://localhost:8000/search?query=test sudo reboot sudo systemctl status llm-api docker ps curl http://localhost:8000/search?query=test sudo systemctl status llm-api docker ps curl http://localhost:8000/search?query=test docker ps curl http://localhost:8000/search?query=test ● llm-api.service - FastAPI Embedding API (LLM) Aug 04 13:41:14 llm-node systemd[1]: Started llm-api.service - FastAPI Embeddin> Aug 04 13:41:23 llm-node uvicorn[1312]: INFO: Started server process [1312] Aug 04 13:41:23 llm-node uvicorn[1312]: INFO: Waiting for application start> Aug 04 13:41:23 llm-node uvicorn[1312]: INFO: Application startup complete. Aug 04 13:41:23 llm-node uvicorn[1312]: INFO: Uvicorn running on http://0.0> Aug 04 13:42:05 llm-node uvicorn[1312]: /home/llmadmin/venvs/embedding/lib/pyth> Aug 04 13:42:05 llm-node uvicorn[1312]: return forward_call(*args, **kwargs) Aug 04 13:42:05 llm-node uvicorn[1312]: INFO: 127.0.0.1:58988 - "GET /searc> CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 30dfd2e38f0b qdrant/qdrant "./entrypoint.sh" 2 hours ago Up About a minute 0.0.0.0:6333->6333/tcp, [::]:6333->6333/tcp, 6334/tcp qdrant [{"score":0.105378054,"text":"Hikite stabilisiert die Technik."},{"score":0.067576095,"text":"Ein Kumite-Drill verbessert die Reaktionsgeschwindigkeit."},{"score":0.042029735,"text":"Mae-geri ist ein gerader Tritt."}](embedding) llmadmin@llm-node:~$ deaktivate Aug 04 13:41:23 llm-node uvicorn[1312]: INFO: Uvicorn running on http://0.0>deactivate deaktivate deactivate sudo systemctl status llm-api docker ps curl http://localhost:8000/search?query=test sudo systemctl status llm-api sudo ss -tuln | grep 8000 sudo journalctl -fu llm-api sudo ufw status verbose sudo ufw allow 8000/tcp sudo ufw reload sudo ufw status verbose cd home ls cd llm-api nano app.py cd ~/llm-api uvicorn app:app --host 0.0.0.0 --port 8000 source ~/venvs/embedding/bin/activate cd ~/llm-api uvicorn app:app --host 0.0.0.0 --port 8000 sudo reboot uvicorn app:app --host 0.0.0.0 --port 8000 cd llm-api/ uvicorn app:app --host 0.0.0.0 --port 8000 uvicorn llm-api:app --host 0.0.0.0 --port 8000 ls ./test_llm_api.sh pkill -f "uvicorn llm_api:app" uvicorn llm-api:app --host 0.0.0.0 --port 8000 uvicorn llm_api:app --reload --host 0.0.0.0 --port 8000 --log-level debug uvicorn app:app --host 0.0.0.0 --port 8000 pkill -f "uvicorn llm_api:app" lsof -i TCP:8000 -sTCP:LISTEN kill 52619 lsof -i TCP:8000 -sTCP:LISTEN uvicorn llm_api:app --reload --host 0.0.0.0 --port 8000 --log-level debug lsof -i TCP:8000 -sTCP:LISTEN ./test_llm_api.sh pkill -f "uvicorn llm_api:app" uvicorn llm_api:app --reload --host 0.0.0.0 --port 8000 ./test_llm_api.sh uvicorn llm_api:app --reload --host 0.0.0.0 --port 8000 ./test_llm_api.sh pkill -f "uvicorn llm_api:app" uvicorn llm_api:app --reload --host 0.0.0.0 --port 8000 lsof -i TCP:8000 -sTCP:LISTEN kill 54019 uvicorn llm_api:app --reload --host 0.0.0.0 --port 8000 pkill -f "uvicorn llm_api:app" lsof -i TCP:8000 -sTCP:LISTEN uvicorn llm_api:app --reload --host 0.0.0.0 --port 8000 # Tötet alle Prozesse, die auf Port 8000 lauschen lsof -ti TCP:8000 | xargs -r kill -9 lsof -i TCP:8000 -sTCP:LISTEN # im llm-api-Verzeichnis und aktiviertem venv uvicorn llm_api:app --reload --host 0.0.0.0 --port 8000 & SERVER_PID=$! echo "Uvicorn läuft als PID $SERVER_PID" lsof -ti TCP:8000 | xargs -r kill -9 uvicorn llm_api:app --reload --host 0.0.0.0 --port 8000 & pip install nltk python - <