- 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
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.
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.
Accede 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 de acceso 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.
Ejecute 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 e implementar 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:
- Valida el mensaje entrante.
- Aplica restricciones tanto en la entrada como en el tema.
- Carga el historial de la sesión.
- Comprueba la caché de respuestas.
- Envía la solicitud a Ollama cuando no existe una respuesta almacenada en caché.
- Almacena la respuesta para futuras solicitudes.
- 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.
*Consulte las Reglas y condiciones de canje de promociones
Preguntas frecuentes
Preguntas frecuentes
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 arranque 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 GPU y los recursos asociados hayan sido eliminados de tu cuenta.