Passer au contenu principal
Background

Développer un Chatbot LLM accéléré en bordure de l'Internet

Apprenez à développer un chatbot LLM avec Akamai Functions et l'inférence sur GPU, puis à le déployer à l'échelle mondiale.

Résumé avec repères temporels

Résumé avec repères temporels

[00:00–00:58] Introduction : Thorsten Hans présente ce tutoriel consacré au développement d'une application de chatbot basée sur un LLM sur Akamai Cloud, à l'aide d'instances GPU Linode, d'Ollama, de Spin et d'Akamai Functions.

[00:58–02:22] Présentation de l'architecture : Explication du schéma du système à plusieurs niveaux, détaillant l'instance Linode équipée d'un GPU NVIDIA exécutant Ollama, et Akamai Functions hébergeant l'application Spin (front-end Astro et API TypeScript) avec un magasin clé-valeur distribué.

[02:22–03:30] Spin et composants de l'application : Présentation de Spin en tant que cadre WebAssembly CNCF et explication des deux composants de l'application : le front-end Astro et l'API TypeScript.

[03:30–06:21] Logique de l'API et flux de mise en cache : Explication détaillée de la manière dont l'API TypeScript traite les requêtes, interroge le magasin clé-valeur distribué pour fournir des réponses mises en cache, applique la construction de prompts et des garde-fous pour les nouvelles requêtes, et met en cache les réponses générées.

[06:21–09:03] Configuration de l'infrastructure avec Terraform : Analyse approfondie de la configuration Terraform, présentant le fournisseur Linode, le provisionnement d'instances avec des GPU NVIDIA dédiés, et la logique d'interrogation du fournisseur null.

[09:03–10:05] Configuration du pare-feu et du réseau : Examen de la configuration du pare-feu Linode dans Terraform, avec spécification des règles d'accès SSH et du trafic de l'API HTTP d'Ollama sur le port 11434.

[10:05–12:26] Cloud-init et installation des pilotes GPU : Analyse des scripts cloud-init du fichier linode.yaml qui automatisent les mises à jour des paquets, l'installation des pilotes GPU, les redémarrages du système et l'initialisation du service Ollama.

[12:26–14:49] Exécution du provisionnement Terraform : Exécution de la commande terraform apply pour construire l'infrastructure cloud, suivie d'un accéléré d'environ cinq minutes sur le processus de provisionnement.

[14 :49–16 :07] Manifeste de l'application Spin (spin.toml) : Examen de spin.toml, détaillant les déclencheurs HTTP, le routage des composants, les variables d'environnement, l'accès au magasin clé-valeur et les autorisations d'accès aux hôtes sortants.

[16:07–17:53] Implémentation de l'API et garde-fous : Présentation du code de index.ts, handler.ts et guardrails.ts, expliquant la validation des requêtes, les limites de longueur des entrées (500 caractères) et la correspondance de motifs regex pour empêcher l'injection de prompts.

[17:53–19:30] Historique des sessions et mise en cache clé-valeur : Explication du suivi des sessions basé sur les cookies et de l'implémentation de kvService.ts pour vérifier et renvoyer les réponses aux requêtes mises en cache à partir du magasin clé-valeur.

[19:30–20:54] Invocation du LLM via LangChain : Examen détaillé du fichier llaService.ts illustrant l'assemblage de prompt (prompt système, historique de session, requête utilisateur) et l'invocation du LLM à l'aide des paquets LangChain JS et Ollama.

[20:54–21:38] Dépendances du package : Examen du fichier package.json mettant en évidence les dépendances du SDK Spin et de LangChain nécessaires au développement de l'application WebAssembly.

[21:38–22:27] Compilation en WebAssembly : Exécution de la commande spin build dans le terminal pour compiler les composants front-end et API en cibles .wasm.

[22:27–23:59] Déploiement sur Akamai Functions : Authentification via la commande spin aka login et exécution de la commande spin aka deploy avec des variables d'environnement pour publier l'application WebAssembly à l'échelle mondiale.

Partager