跳转到主要内容
Background

构建边缘加速的 LLM 聊天机器人

学习如何利用 Akamai Functions 和依托于 GPU 的推理技术构建 LLM 聊天机器人,并将其部署到全球各地。

带时间戳的摘要

带时间戳的摘要

[00:00–00:58] 简介:Thorsten Hans 将通过本教程,介绍如何利用 Linode GPU 实例、Ollama、Spin 和 Akamai Functions,在 Akamai Cloud 上构建基于 LLM 的聊天机器人应用程序。

[00:58–02:22] 架构概述:解释多层系统架构图,详细展示运行 Ollama 且配备了 NVIDIA GPU 的 Linode 实例,以及托管 Spin 应用程序(包含 Astro 前端和 TypeScript API)并使用分布式键值存储的 Akamai Functions。

[02:22–03:30] Spin 和应用程序组件:概述 Spin 是一项 CNCF WebAssembly 框架,并说明应用程序的两个组件:Astro 前端和 TypeScript API。

[03:30–06:21] API 逻辑和缓存流程:介绍 TypeScript API 如何处理请求、查询分布式键值存储以提供缓存的回复、为新查询构建提示词并应用安全护栏,以及缓存模型生成的回复。

[06:21–09:03] 利用 Terraform 配置基础架构:深入解析 Terraform 配置,展示 Linode Provider、配备专用 NVIDIA GPU 的实例,以及 Null Provider 轮询逻辑。

[09:03–10:05] 防火墙和网络配置:检查 Terraform 中的 Linode 防火墙设置,查看针对 SSH 访问和 Ollama HTTP API(端口 11434)流量的具体规则。

[10:05–12:26] Cloud-init 和 GPU 驱动程序安装:分析 linode.yaml cloud-init 脚本,了解其如何自动执行软件包更新、GPU 驱动程序安装、系统重启以及 Ollama 服务初始化。

[12:26–14:49] 执行 Terraform 调配:运行 terraform apply 来创建云基础架构,并快速演示整个调配过程(约 5 分钟)。

[14:49–16:07] Spin 应用程序清单 (spin.toml):检查 spin.toml,详细了解 HTTP 触发器、组件路由、环境变量、键值存储访问权限以及出站主机权限。

[16:07–17:53] API 实施和安全护栏:逐步解析 index.ts、handler.ts 和 guardrails.ts 中的代码,说明请求验证、输入长度限制(500 个字符)以及如何通过正则表达式匹配来防范提示词注入攻击。

[17:53–19:30] 会话历史和键值缓存:介绍如何通过 Cookie 跟踪会话,以及如何实施 kvService.ts,从键值存储中查找并返回已缓存的查询结果。

[19:30–20:54] 通过 LangChain 调用 LLM: 详细解析 llaService.ts,介绍如何组合提示词(系统提示词、会话历史和用户查询),以及如何通过 LangChain JS 和 Ollama 软件包调用 LLM。

[20:54–21:38] 软件包依赖项:检查 package.json,重点了解构建 WebAssembly 应用程序所需的 Spin SDK 和 LangChain 依赖项。

[21:38–22:27] 编译到 WebAssembly:在终端中执行 spin build,将前端和 API 组件编译到 .wasm 目标中。

[22:27–23:59] 部署到 Akamai Functions:通过 spin aka login 完成身份验证,然后执行 spin aka deploy 并配置环境变量,将 WebAssembly 应用程序发布到全球各地。

分享