Saltar al contenido principal
Background

Crea un chatbot LLM acelerado por borde

Implementa un chatbot global utilizando Akamai Functions en el edge y un modelo de código abierto que se ejecuta en una GPU dedicada.

Sigue una solicitud desde el borde hasta el modelo.

Observa cómo la aplicación verifica su caché, aplica medidas de seguridad, conserva el historial de conversaciones y envía nuevas solicitudes al modelo alojado en la GPU.

Antes de empezar

Conectarás con la instancia de GPU mediante SSH mientras verificas la implementación de Ollama, por lo que asegúrate de que tu clave pública esté disponible antes de configurar la infraestructura.

  • Cuenta en la nube de Akamai con acceso a las funciones de Akamai
  • Token de acceso personal a la nube de Akamai
  • Acceso de lectura y escritura para Linodes y firewalls
  • Acceso de lectura para eventos
  • Terraform instalado localmente
  • Spin CLI instalado localmente
  • Plugin aka para Spin
  • Node.js instalado localmente
  • Par de claves SSH

Construye el proyecto

Primero, configure el backend de inferencia y, a continuación, configure, pruebe e implemente la aplicación en el entorno de borde.

Clona la aplicación de ejemplo y revisa sus directorios de aplicación e infraestructura.

Clona el repositorio del proyecto:

git clone https://github.com/akamai-developers/akamai-functions-llm-chatbot.git
cd akamai-functions-llm-chatbot

El repositorio consta de dos partes principales:

  • Un directorio de infraestructura que contiene la configuración de Terraform y cloud-init.
  • Una aplicación Spin que incluye el front-end Astro y la API de TypeScript.

Revisa las variables de Terraform antes de realizar el aprovisionamiento. Puedes ajustar la región, el plan de GPU, el modelo y la configuración de la infraestructura relacionada con tu entorno.

Utiliza Terraform para crear la instancia con GPU y configurar el servicio de inferencia de Ollama.

Ve al directorio de infraestructura e inicializa Terraform:

cd infraestructura
terraform init

Configura tu token de acceso personal para Akamai Cloud:

exporta LINODE_TOKEN="tu-pat-aquí"

Proporcionar la infraestructura:

terraform aplicar

Terraform crea una instancia de GPU dedicada y utiliza cloud-init para:

  • Instala los controladores de la GPU necesarios.
  • Instala Ollama
  • Ejecute el modelo de código abierto configurado.
  • Exponer la API de Ollama en el puerto 11434.
  • Espera a que el modelo esté disponible.

Una vez finalizado el proceso de aprovisionamiento, Terraform devuelve el punto de conexión de Ollama.

La provisión y la carga del modelo suelen tardar varios minutos.

Conecta la aplicación de borde con el endpoint de Ollama y protege su API de gestión de caché.

Instala Spin CLI, Node.js y el plugin aka antes de continuar.

Instala o actualiza el plugin de Akamai Functions.

Actualizar plugins de
Spin Instalar el plugin "aka" en Spin

La aplicación utiliza dos variables de implementación:

  • ollama_url conecta la aplicación con la API de Ollama alojada en una GPU.
  • secret_sauce protege el punto final utilizado para borrar la caché de respuestas.

Genera un valor aleatorio seguro para secret_sauce. Las solicitudes al endpoint de gestión de caché deben incluir este valor en el encabezado HTTP X-SecretSauce.

No almacenes tokens, secretos ni credenciales de endpoints de producción en el repositorio.

Ejecuta la aplicación Spin localmente utilizando el mismo backend de inferencia remoto.

Inicia la aplicación y proporciona las variables necesarias:



Abre la aplicación local en tu navegador y envía un mensaje de prueba.

Verifique que:

  • El chatbot proporciona una respuesta generada por un modelo.
  • El historial de conversación se mantiene durante toda la sesión.
  • Las preguntas repetidas pueden recuperarse desde la caché.
  • Las solicitudes que incumplen las normas establecidas son rechazadas.
  • El navegador no controla ni envía el historial completo de la conversación.

Utilizar el backend remoto de Ollama durante el desarrollo local te permite probar el comportamiento de los modelos sin necesidad de una GPU local.

Compila la aplicación en WebAssembly y despliégala en Akamai Functions.

Asegúrate de que el acceso a Akamai Functions esté habilitado en tu cuenta antes de realizar el despliegue. Si aún no has sido aprobado, solicita acceso y continúa con la instalación local mientras se procesa tu solicitud.

Autenticarse con las funciones de Akamai:

spin aka login

Construir y desplegar la aplicación:



Una vez implementada la aplicación, abre la URL generada y formula una nueva pregunta.

La aplicación implementada utiliza Akamai Functions para alojar tanto su interfaz de usuario como su API. Las solicitudes se validan en el perímetro antes de que la aplicación compruebe el almacén de pares clave-valor o se comunique con el backend de inferencia de la GPU.

Confirma que el procesamiento en el borde reduce las solicitudes innecesarias al modelo.

Prueba la aplicación con preguntas tanto nuevas como repetidas.

Para formular una nueva pregunta, la aplicación:

  1. Valida el mensaje entrante.
  2. Aplica restricciones tanto en la entrada como en el tema.
  3. Carga el historial de la sesión.
  4. Comprueba la caché de respuestas.
  5. Envía la solicitud a Ollama cuando no existe una respuesta almacenada en caché.
  6. Almacena la respuesta para futuras solicitudes.
  7. Actualiza el historial de la sesión.

Para una pregunta repetida equivalente, la aplicación puede devolver directamente la respuesta almacenada en caché desde el borde, sin necesidad de realizar otro ciclo de inferencia en la GPU.

Una vez finalizadas las pruebas, elimina la infraestructura que ya no necesites.

cd infraestructura
terraform destroy

Los recursos de GPU dedicados siguen generando cargos hasta que se eliminan.

Preguntas frecuentes

Preguntas frecuentes

Akamai Functions gestiona el front-end y las API, valida las solicitudes, aplica medidas de seguridad, administra las sesiones de conversación y verifica la caché de respuestas distribuidas antes de interactuar con el modelo.

El modelo de código abierto es gestionado por Ollama en una instancia de la nube de Akamai, que cuenta con una GPU dedicada de NVIDIA. El modelo no funciona dentro de Akamai Functions.

La aplicación Spin se compila en WebAssembly para garantizar un inicio rápido, un aislamiento eficiente de la carga de trabajo y su implementación en la infraestructura distribuida de Akamai.

La aplicación normaliza cada pregunta y comprueba si existe una respuesta en el almacén de pares clave-valor de Akamai Functions. Un acierto en la caché devuelve la respuesta almacenada sin necesidad de enviar otra solicitud a la GPU.

El historial de conversaciones se almacena en el servidor, en el almacén de datos clave-valor de Akamai Functions, y se asocia a un identificador de sesión mediante una cookie segura. El historial de la muestra se limita a 20 mensajes.

Las pruebas incluyen verificaciones para detectar inyecciones de código, redirecciones de solicitudes secundarias y solicitudes de generación de código. Además, limita la longitud de los mensajes y utiliza un mensaje de sistema para mantener las respuestas dentro del ámbito previsto por la aplicación.

Sí. Puedes cambiar el modelo de Ollama a través de la configuración de la infraestructura, siempre que se cumplan los requisitos de hardware y memoria del modelo.

La oferta solo es aplicable a los servicios en la nube que cumplan los requisitos. Los servicios de GPU dedicados no están incluidos, por lo que es importante revisar las condiciones promocionales actuales antes de iniciar el proyecto.

Sí. La API de TypeScript utiliza LangChain.js y un endpoint compatible con Ollama, lo que permite ampliar el contexto estático del ejemplo mediante un cargador de documentos, un recuperador y un almacén de vectores.

Ejecuta el comando `terraform destroy` una vez que hayas finalizado el proyecto y verifica que la instancia de GPU y los recursos asociados hayan sido eliminados de tu cuenta.