- Akamai Cloud-Konto mit Zugriff auf Akamai Functions
- Persönliches Akamai Cloud-Zugriffstoken
- Lese- und Schreibzugriff für Linodes und Firewalls
- Lesezugriff für Ereignisse
- Lokale Terraform-Installation
- Lokale Installation der Spin‑CLI
- aka-Plugin für Spin
- Lokale Installation von Node.js
- SSH‑Schlüsselpaar
Bevor Sie beginnen
Sie stellen während der Validierung der Ollama-Bereitstellung eine Verbindung zur GPU‑Instanz über SSH her. Vergewissern Sie sich daher, dass Ihr öffentlicher Schlüssel verfügbar ist, bevor Sie die Infrastruktur bereitstellen.
Aufbau des Projekts
Stellen Sie zuerst das Inferenz-Backend bereit, bevor Sie die Edge-Anwendung konfigurieren, testen und bereitstellen.
Klonen Sie die Beispielanwendung und überprüfen Sie ihre Anwendungs- und Infrastrukturverzeichnisse.
Klonen Sie das Projekt-Repository:
git clone https://github.com/akamai-developers/akamai-functions-llm-chatbot.git
cd akamai-functions-llm-chatbot
Das Repository enthält zwei Hauptteile:
- Ein Verzeichnis infrastructure, das die Terraform- und cloud-init-Konfiguration enthält
- Eine Spin-Anwendung, die das Astro-Frontend und die TypeScript‑API enthält
Überprüfen Sie die Terraform-Variablen vor der Bereitstellung. Sie können die Region, den GPU‑Tarif, das Modell und die zugehörigen Infrastruktureinstellungen für Ihre Umgebung anpassen.
Verwenden Sie Terraform, um die GPU‑Instanz zu erstellen und den Ollama-Inferenzdienst zu konfigurieren.
Navigieren Sie zum infrastructure-Verzeichnis und initialisieren Sie Terraform:
cd infrastructure
terraform init
Legen Sie Ihr persönliches Akamai Cloud-Zugriffstoken fest:
export LINODE_TOKEN="<Ihr persönliches Zugriffstoken>"
Stellen Sie die Infrastruktur bereit:
terraform apply
Terraform erstellt eine dedizierte GPU‑Instanz und verwendet cloud-init, um folgende Schritte auszuführen:
- Erforderliche GPU‑Treiber installieren
- Ollama installieren
- Konfiguriertes Open‑Source-Modell abrufen
- Ollama‑API an Port 11434 verfügbar machen
- Auf Verfügbarkeit des Modells warten
Nach Abschluss der Bereitstellung gibt Terraform den Ollama-Endpoint zurück:
ollama_endpoint = "http://<linode-ip>:11434"
Die Bereitstellung und das Laden des Modells dauern in der Regel mehrere Minuten.
Verbinden Sie die Edge-Anwendung mit dem Ollama-Endpoint und schützen Sie die Cache-Management‑API.
Installieren Sie die Spin‑CLI, Node.js und das aka-Plugin, bevor Sie fortfahren.
Installieren oder aktualisieren Sie das Akamai Functions-Plugin:
spin plugins update
spin plugins install aka
Die Anwendung verwendet zwei Bereitstellungsvariablen:
- ollama_url verbindet die Anwendung mit der GPU‑gehosteten Ollama‑API.
- secret_sauce schützt den Endpoint, der zum Löschen des Antwort-Caches verwendet wird.
Generieren Sie einen starken Zufallswert für secret_sauce. Anfragen an den Cache-Management-Endpoint müssen diesen Wert über den HTTP‑Header X‑SecretSauce bereitstellen.
Geben Sie keine Token, Geheimnisse oder Anmeldedaten für den Produktionsendpoint in das Repository ein.
Führen Sie die Spin-Anwendung lokal aus, während Sie dasselbe Remote-Inferenz-Backend verwenden.
Starten Sie die Anwendung und übergeben Sie die erforderlichen Variablen:
spin up --build \
--variable ollama_url="http://<linode-ip>:11434" \
--variable secret_sauce="<starkes zufälliges Geheimnis>"
Öffnen Sie die lokale Anwendung in Ihrem Browser und senden Sie eine Testnachricht.
Stellen Sie sicher, dass Folgendes gegeben ist:
- Der Chatbot gibt eine modellgenerierte Antwort zurück.
- Der Unterhaltungsverlauf bleibt über die gesamte Sitzung bestehen.
- Wiederholte Fragen können aus dem Cache zurückgegeben werden.
- Anfragen, die gegen die Leitplanken verstoßen, werden abgelehnt.
- Der Browser steuert den vollständigen Unterhaltungsverlauf nicht und leitet ihn auch nicht weiter.
Indem Sie während der lokalen Entwicklung das Remote-Ollama-Backend verwenden, können Sie das Modellverhalten testen, ohne eine lokale GPU zu benötigen.
Kompilieren Sie die Anwendung in WebAssembly und stellen Sie sie in Akamai Functions bereit.
Vergewissern Sie sich vor der Bereitstellung, dass der Zugriff auf Akamai Functions für Ihr Konto aktiviert ist. Wenn er noch nicht genehmigt wurde, fordern Sie Zugriff an und fahren Sie mit dem lokalen Build fort, während Ihre Anfrage geprüft wird.
Authentifizieren Sie sich mit Akamai Functions:
spin aka login
Erstellen Sie die Anwendung und stellen Sie sie bereit:
spin aka deploy --build \
--variable ollama_url="http://<linode-ip>:11434" \
--variable secret_sauce="<starkes zufälliges Geheimnis>"
Öffnen Sie nach der Bereitstellung die generierte Anwendungs‑URL und stellen Sie eine neue Frage.
Die bereitgestellte Anwendung stellt das Frontend und die API über Akamai Functions bereit. Anfragen werden an der Edge validiert, bevor die Anwendung den Schlüssel-Wert-Speicher prüft oder das GPU‑Inferenz-Backend kontaktiert.
Bestätigen Sie, dass die Edge-Verarbeitung unnötige Anfragen an das Modell reduziert.
Testen Sie die Anwendung sowohl mit neuen als auch mit wiederholten Fragen.
Bei einer neuen Frage sollte die Anwendung wie folgt vorgehen:
- Validiert die eingehende Nachricht.
- Wendet Leitplanken für Eingaben und Themen an.
- Lädt den Sitzungsverlauf.
- Prüft den Antwort-Cache.
- Sendet die Anfrage an Ollama, wenn keine zwischengespeicherte Antwort vorhanden ist.
- Speichert die Antwort für künftige Anfragen.
- Aktualisiert den Sitzungsverlauf.
Bei einer wiederholten Frage kann die Anwendung die zwischengespeicherte Antwort direkt von der Edge zurückgeben, ohne einen weiteren GPU‑Inferenzzyklus zu verwenden.
Wenn die Tests abgeschlossen sind, entfernen Sie die Infrastruktur, die Sie nicht mehr benötigen:
cd infrastructure
terraform destroy
Für dedizierte GPU‑Ressourcen fallen weiterhin Gebühren an, bis sie gelöscht werden.
Häufig gestellte Fragen (FAQ)
Häufig gestellte Fragen (FAQ)
Das Open‑Source-Modell wird von Ollama in einer Akamai Cloud-Instanz mit einer dedizierten NVIDIA‑GPU bereitgestellt. Das Modell wird nicht innerhalb von Akamai Functions ausgeführt.
Die Spin-Anwendung wird in WebAssembly kompiliert, um kurze Startzeiten, eine starke Workload-Isolierung und die Bereitstellung in der verteilten Edge-Infrastruktur von Akamai zu erreichen.
Die Anwendung normalisiert jede Frage und prüft den Schlüssel-Wert-Speicher von Akamai Functions auf eine vorhandene Antwort. Bei einem Cache-Treffer wird die gespeicherte Antwort zurückgegeben, ohne eine weitere Anfrage an die GPU zu senden.
Der Unterhaltungsverlauf wird serverseitig im Schlüssel-Wert-Speicher von Akamai Functions gespeichert und mit einer Sitzungs‑ID in einem sicheren Cookie verknüpft. In dem Beispiel ist der Verlauf auf 20 Nachrichten beschränkt.
In dem Beispiel wird auf Prompt Injection, Abweichungen in der sekundären Anfrage und Code-Generierung geprüft. Außerdem wird die Nachrichtenlänge begrenzt und es wird ein System-Prompt verwendet, damit Antworten nicht den vorgesehenen Bereich der Anwendung überschreiten.
Ja. Sie können das Ollama-Modell über die Infrastrukturkonfiguration ändern, je nach Hardware- und Speicheranforderungen des Modells.
Das Angebot gilt nur für berechtigte Cloud-Services. Dedizierte GPU‑Dienste sind ausgeschlossen. Überprüfen Sie daher die aktuellen Aktionsbedingungen, bevor Sie das Projekt bereitstellen.
Ja. Die TypeScript‑API verwendet LangChain.js und einen Ollama-kompatiblen Endpoint, sodass der statische Kontext im Beispiel mit einem Document Loader, Retriever und einem Vektorspeicher erweitert werden kann.
Führen Sie nach Abschluss des Projekts terraform destroy aus und bestätigen Sie, dass die GPU‑Instanz und die zugehörigen Ressourcen aus Ihrem Konto gelöscht wurden.