Skip to content Skip to footer

Lokalny pakiet AI – Przewodnik

DigitalOcean

Ten przewodnik przeprowadzi Cię przez proces konfiguracji bezpiecznego dropletu procesora graficznego DigitalOcean w celu wdrożenia lokalnego pakietu AI. Jest to krok wstępny przed wdrożeniem agenta AI w kolejnym filmie wideo.

Warunki wstępne

  • Konto DigitalOcean z informacjami rozliczeniowymi
  • Dostęp do prywatnego repozytorium GitHub dynamous-community/ai-agent-mastery

Wygeneruj parę kluczy SSH (jeśli jej nie masz)

Na komputerze lokalnym wygeneruj parę kluczy SSH:

ssh-keygen -t rsa -b 4096 -C "any key name"
# Press Enter to accept default file location (~/.ssh/id_rsa)
# Enter a passphrase for added security (optional but recommended)

Spowoduje to utworzenie dwóch plików (id_rsa jest nazwą domyślną, możesz to również zmienić):

  • ~/.ssh/id_rsa (Klucz prywatny – zachowaj to w bezpiecznym miejscu!)
  • ~/.ssh/id_rsa.pub (klucz publiczny – jest przesyłany do DigitalOcean)

Wyświetl swój klucz publiczny za pomocą:

cat ~/.ssh/id_rsa.pub

Krok 1: Utwórz kroplę GPU DigitalOcean

Utwórz swoją kroplę GPU

  1. Przejdź do digitalocean.com
  2. Zarejestruj się i wprowadź informacje rozliczeniowe
  3. Utwórz nowy projekt lub użyj domyślnego
  4. Kliknij Utwórz w prawym górnym rogu→ Droplety GPU (nie zwykłe krople!)

Skonfiguruj kroplę GPU

  1. Skonfiguruj droplet GPU:
    • Wybierz swój region: Droplety GPU są dostępne w centrach danych w Nowym Jorku (NYC2), Atlancie (ATL1) i Toronto (TOR1)
    • Wybierz obraz: Wybierz obraz gotowy do sztucznej inteligencji/uczenia maszynowego (Ubuntu 22.04 z preinstalowanymi sterownikami NVIDIA)
    • Wybierz plan GPU: Wybierz procesor graficzny na podstawie lokalnych LLM, które chcesz uruchomić
    • Uwierzytelnianie: Przekaż swój klucz publiczny SSH
    • Nazwa hosta: Nadaj kropli opisową nazwę
    • Kliknij Utwórz kroplę GPU

Uwaga: Inicjalizacja kropel GPU trwa dłużej niż zwykłych kropel, szczególnie w konfiguracjach 8 GPU

Alternatywne opcje hostingu

Jeśli wolisz alternatywy dla kropel GPU DigitalOcean:

  • Wymagania dotyczące procesora graficznego: TensorDock
  • W przypadku wdrożenia tylko z procesorem (jeśli używasz Ollama osobno): zwykłe droplety DigitalOcean, Hostinger VPS, Hetzner Cloud lub dowolny dostawca KVM

Krok 2: Wstępne połączenie z serwerem i konfiguracja zabezpieczeń

Połącz się ze swoim serwerem

ssh root@[digitalocean-gpu-ip] -i [path-to-your-private-key]
# Example: ssh root@192.168.1.100 -i C:\Users\colem\.ssh\dynamous-key

Konfigurowanie podstawowej zapory sieciowej

Zezwalaj na ruch HTTP, HTTPS i SSH przez zaporę:

ufw enable
ufw allow 80 && ufw allow 443 && ufw allow 22
ufw reload

Krok 3: Utwórz użytkownika innego niż root i skonfiguruj dostęp sudo

Postępując zgodnie z najlepszymi praktykami w zakresie bezpieczeństwa, utworzymy zwykłe konto użytkownika zamiast używać roota do codziennych operacji.

Utwórz nowego użytkownika

adduser <username>
# Follow prompts to set password and user information

Przyznaj uprawnienia Sudo

usermod -aG sudo <username>

Przełącz się na nowego użytkownika

su - <username>

Krok 4: Skonfiguruj uwierzytelnianie za pomocą klucza SSH dla nowego użytkownika

Ten krok gwarantuje, że możesz zalogować się jako nowy użytkownik przy użyciu kluczy SSH, które są bezpieczniejsze niż uwierzytelnianie za pomocą hasła.

Utwórz katalog SSH i ustaw uprawnienia

mkdir .ssh
chmod 700 .ssh

Dodaj swój klucz publiczny

nano .ssh/authorized_keys
# Paste your public key from the .pub file created on your computer
# Save with Ctrl+X, then Y, then Enter

Zabezpiecz plik authorized_keys

chmod 600 .ssh/authorized_keys

Krok 5: Wyłącz logowanie roota (wzmacnianie zabezpieczeń)

Ten krok uniemożliwia bezpośredni dostęp root przez SSH, zmuszając wszystkich użytkowników do logowania się na własne konta i używania do zadań administracyjnych.sudo

Edytuj konfigurację SSH

sudo nano /etc/ssh/sshd_config
# Find the line: PermitRootLogin yes
# Change it to: PermitRootLogin no

Uruchom ponownie usługę SSH

service ssh restart

Krok 6: Konfiguracja DNS (przed instalacją)

Skonfiguruj rekordy DNS tak, aby wskazywały subdomeny usługi na droplet GPU przed zainstalowaniem lokalnego pakietu AI:

Utwórz rekordy A dla usług, które chcesz uwidocznić:

  • supabase.yourdomain.com → Twój adres IP dropletu
  • n8n.yourdomain.com → Twój adres IP dropletu
  • openwebui.yourdomain.com → Twój adres IP dropletu
  • flowise.yourdomain.com → Twój adres IP dropletu
  • langfuse.yourdomain.com → Twój adres IP dropletu
  • neo4j.yourdomain.com → Twój adres IP dropletu
  • agentapi.yourdomain.com → Twój adres IP dropletu (dla interfejsu API agenta AI)
  • chat.yourdomain.com → Twój adres IP dropletu (dla frontonu agenta AI)

Odbywa się to za pomocą interfejsu zarządzania DNS rejestratora domen.

Krok 7: Zainstaluj Docker Compose

Droplety GPU DigitalOcean wymagają ręcznej instalacji Docker Compose. Większość z nich jest specyficzna dla kropel GPU DigitalOcean i nie jest potrzebna w przypadku zwykłych kropel DigitalOcean z obrazami Docker lub niektórymi innymi dostawcami chmury.

# Get the latest Docker Compose version and install it
DOCKER_COMPOSE_VERSION=$(curl -s https://api.github.com/repos/docker/compose/releases/latest | grep 'tag_name' | cut -d\" -f4)
sudo curl -L "https://github.com/docker/compose/releases/download/${DOCKER_COMPOSE_VERSION}/docker-compose-linux-x86_64" -o /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose

# Set up Docker Compose plugin
sudo mkdir -p /usr/local/lib/docker/cli-plugins
sudo ln -s /usr/local/bin/docker-compose /usr/local/lib/docker/cli-plugins/docker-compose

Krok 8: Dodaj użytkownika do grupy Docker

# Add user to docker group
sudo usermod -aG docker <username>
newgrp docker

Krok 9: Zainstaluj lokalny pakiet AI

Postępuj zgodnie z pełnymi instrukcjami konfiguracji z repozytorium lokalnych pakietów sztucznej inteligencji:

Klonowanie i konfigurowanie repozytorium

git clone -b stable https://github.com/coleam00/local-ai-packaged.git
cd local-ai-packaged

Konfigurowanie zmiennych środowiskowych

cp .env.example .env
nano .env

Ważne kroki konfiguracji:

  1. Generuj bezpieczne losowe wartości dla wszystkich wpisów tajnych (nigdy nie używaj przykładowych wartości!)
  2. Skonfiguruj konfigurację Supabase zgodnie z przewodnikiem po samodzielnym hostingu
  3. Skonfiguruj nazwy hostów Caddy do wdrożenia produkcyjnego przy użyciu subdomen skonfigurowanych w systemie DNS
  4. Ustaw swój adres e-mail dla certyfikatów SSL Let’s Encrypt

(Opcjonalnie): Uwierzytelnianie Google

Jeśli chcesz włączyć uwierzytelnianie Google dla Supabase, przed uruchomieniem pakietu dodaj te wiersze do docker-compose.override-public.yml w sekcji usługi (upewnij się, że karty są wyrównane z innymi zastąpieniami usługi):

  auth:
    environment:
     GOTRUE_EXTERNAL_GOOGLE_ENABLED: ${ENABLE_GOOGLE_SIGNUP}
     GOTRUE_EXTERNAL_GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID}
     GOTRUE_EXTERNAL_GOOGLE_SECRET: ${GOOGLE_CLIENT_SECRET}
     GOTRUE_EXTERNAL_GOOGLE_SKIP_NONCE_CHECK: false
     GOTRUE_EXTERNAL_GOOGLE_REDIRECT_URI: ${GOOGLE_REDIRECT_URI}

A następnie upewnij się, że w pliku .env określisz wszystkie zmienne środowiskowe w ${…}. GOOGLE_REDIRECT_URI musi wskazywać domenę frontendu agenta.

Wdrażanie lokalnego pakietu sztucznej inteligencji

Uwaga: Uruchom wcześniej „sudo chmod 777 searxng”, aby ustawić odpowiednie uprawnienia, w przeciwnym razie kontener Searxng zostanie ponownie uruchomiony. Nie widziałem tego u każdego dostawcy, ale z jakiegoś powodu dzieje się tak w przypadku kropel GPU DigitalOcean.

W przypadku wdrożenia z obsługą procesora GPU:

# For NVIDIA GPUs
python start_services.py --profile gpu-nvidia

# For AMD GPUs  
python start_services.py --profile gpu-amd

# For CPU-only deployment
python start_services.py --profile cpu

Krok 10: Wdrożenie agenta AI (integracja lokalna)

Teraz, gdy lokalny pakiet sztucznej inteligencji jest uruchomiony, wdróż agenta sztucznej inteligencji, aby zintegrować go z istniejącymi usługami.

Klonowanie repozytorium agenta AI

git clone https://github.com/dynamous-community/ai-agent-mastery.git
cd ai-agent-mastery/6_Agent_Deployment

Konfiguracja bazy danych

  1. Uzyskaj dostęp do lokalnego pulpitu nawigacyjnego Supabase pod adresem https://supabase.yourdomain.com
  2. Zaloguj się przy użyciu nazwy użytkownika i hasła ustawionych w pliku Local AI Package.env
  3. Przejdź do Edytora SQL
  4. Uruchom pełną konfigurację bazy danych:
    -- Copy and paste the contents of sql/0-all-tables.sql
    -- This creates all tables, functions, triggers, and security policies
    -- Be sure to adjust the embedding dimensions before running based on your embedding model!

Konfigurowanie zmiennych środowiskowych

cp .env.example .env
nano .env

Ważne: Upewnij się, że nazwa jest zgodna z Twoją subdomeną agenta (agentapi.yourdomain.com), zachowując ścieżkę na końcu.VITE_AGENT_ENDPOINT/api/pydantic-agent

Ważne uwagi:

  • Komunikacja sieciowa platformy Docker: Ponieważ agent sztucznej inteligencji działa w tej samej sieci platformy Docker co lokalny pakiet sztucznej inteligencji, można odwoływać się do usług według ich nazw kontenerów (np. , http://supabase:8000http://ollama:11434)
  • Dostęp zewnętrzny: Użyj skonfigurowanych subdomen (np. ), aby uzyskać dostęp do usług z przeglądarkihttps://supabase.yourdomain.com
  • Zmienne środowiskowe: Skopiuj dokładne klucze z pliku lokalnego pakietu AI dla poświadczeń Supabase i langfuse.env

Wdrażanie agenta AI

# Deploy to integrate with Local AI Package
python deploy.py --type local --project localai

Konfiguracja integracji z Caddy

Aby włączyć zwrotne trasy proxy dla agenta AI za pośrednictwem Caddy lokalnego pakietu AI:

  1. Skopiuj konfigurację dodatku Caddy:

    # Copy to Local AI Package caddy-addon folder
    cp caddy-addon.conf ../../local-ai-packaged/caddy-addon/
  2. Edytuj plik dodatku dla swoich subdomen:

    cd ../../local-ai-packaged/caddy-addon/
    nano caddy-addon.conf
    # Edit line 2: agentapi.yourdomain.com (for agent API)
    # Edit line 21: agentchat.yourdomain.com (for frontend)
    # These must match the A records you created in Step 6
  3. Uruchom ponownie Caddy, aby załadować nową konfigurację:

    docker compose -p localai restart caddy

Uzyskiwanie dostępu do agenta AI

Po zakończeniu konfiguracji uzyskaj dostęp do zintegrowanego agenta AI:

Dodawanie dokumentów do potoku RAG

# Navigate back to agent deployment directory
cd ../../ai-agent-mastery/6_Agent_Deployment

# Copy documents to the RAG pipeline directory
sudo chmod 777 rag-documents
cp your-documents/* ./rag-documents/

Co dalej?

Po zakończeniu tej konfiguracji lokalnego pakietu sztucznej inteligencji i integracji agenta sztucznej inteligencji będziesz mieć:

  • Ollama działająca lokalnie dla LLM
  • Supabase do przechowywania baz danych i wektorów
  • N8N do automatyzacji przepływu pracy
  • Otwórz WebUI dla interfejsu czatu
  • Flowise do tworzenia agentów AI bez kodu
  • langfuse dla obserwowalności LLM
  • Neo4j dla grafowej bazy danych
  • RAG Pipeline do przetwarzania dokumentów
  • Caddy automatycznie obsługuje SSL/TLS
  • AI Agent API zintegrowany ze wszystkimi usługami lokalnymi
  • Frontend agenta AI dostępny za pośrednictwem domeny niestandardowej

Pełna integracja: Twój agent AI komunikuje się teraz ze wszystkimi usługami Local AI Package za pośrednictwem sieci Docker, zapewniając w pełni lokalną infrastrukturę AI bez zewnętrznych zależności API.

Kolejne kroki: Masz teraz kompletną, zintegrowaną lokalną infrastrukturę AI! Agent sztucznej inteligencji działa wraz z usługami lokalnego pakietu sztucznej inteligencji i można uzyskać do niego dostęp za pośrednictwem domeny niestandardowej z automatycznym protokołem SSL.

Uwagi dotyczące bezpieczeństwa

  • Nigdy nie używaj konta root do zwykłych operacji po instalacji
  • Uwierzytelnianie za pomocą klucza SSH jest bezpieczniejsze niż uwierzytelnianie za pomocą hasła
  • Reguły zapory sieciowej ograniczają dostęp tylko do niezbędnych portów
  • Użytkownik inny niż root z sudo zapewnia dostęp administracyjny w razie potrzeby
  • Let’s Encrypt SSL automatycznie zabezpiecza wszystkie Twoje usługi za pomocą protokołu HTTPS

Rozwiązywanie problemów

Jeśli napotkasz problemy z połączeniem po zmianie ustawień SSH:

  • Zawsze testuj połączenie SSH w nowym oknie terminala przed zamknięciem bieżącej sesji
  • Skorzystaj z dostępu do konsoli DigitalOcean, jeśli zostaniesz zablokowany
  • Sprawdź konfigurację SSH za pomocą: sudo sshd -T

Aby uzyskać informacje o problemach specyficznych dla lokalnego pakietu sztucznej inteligencji, zapoznaj się z sekcją rozwiązywania problemów w repozytorium.

Leave a comment

0.0/5