Saltar al contenido principal
Background

Crea un chatbot RAG basado en evidencia utilizando Kubernetes

Utiliza Python, LangGraph, PostgreSQL y LKE para transformar las complejas políticas de las aerolíneas en respuestas contextualizadas y con citas.

Observa cómo se construye el chatbot RAG

Sigue todo el proceso de construcción, desde la configuración de la infraestructura de Kubernetes hasta la indexación de documentos de políticas y la prueba de respuestas basadas en evidencia.

Antes de empezar

Reúne las credenciales y las herramientas de línea de comandos necesarias para configurar la infraestructura, subir los documentos y desplegar la aplicación.

  • Cuenta en la nube de Akamai y token de API
  • Sin clave de API
  • Terraform instalado localmente
  • kubectl instalado localmente
  • s3cmd instalado localmente
  • Acceso al repositorio de GitHub
  • Par de claves SSH para la clave de implementación

Construye el chatbot RAG en cuatro fases

Proporciona la infraestructura, carga la base de conocimientos, implementa la aplicación y valida el chatbot una vez finalizado.

Clona el proyecto:

git clone https://github.com/akamai-developers/rag-langgraph-k8s-quickstart.git
cd rag-langgraph-k8s-quickstart

Copia el archivo de ejemplo de Terraform y configúralo con tu token de API de Akamai Cloud y las opciones de recursos que prefieras.

cp terraform/terraform.tfvars.example terraform/terraform.tfvars

Provisión del clúster LKE, dos bases de datos PostgreSQL y un bucket de almacenamiento de objetos.

cd terraform terraform
init
terraform plan terraform
aplicar

Mantén los resultados de Terraform protegidos. Contienen información confidencial sobre la conexión.

Carga los resultados de Terraform en variables de entorno:

export S3_BUCKET=$(terraform output -raw S3_BUCKET_NAME)
export S3_ENDPOINT=$(terraform output -raw S3_ENDPOINT)
export S3_ACCESS_KEY=$(terraform output -raw S3_ACCESS_KEY)
export S3_SECRET_KEY=$(terraform output -raw S3_SECRET_KEY)

Sube los documentos de políticas de la aerolínea incluidos:

s3cmd sync ../documentos/ s3://${S3_BUCKET}/ \
--host=${S3_ENDPOINT} \
--host-bucket=${S3_ENDPOINT} \
--access_key=${S3_ACCESS_KEY} \
--secret_key=${S3_SECRET_KEY}

Puedes reemplazar las políticas de ejemplo con tus propios documentos en formato PDF, HTML o texto.

Configura el archivo kubeconfig generado:

Exportar KUBECONFIG=./kubeconfig.yaml

Recupera las credenciales iniciales de la plataforma de aplicaciones desde el espacio de nombres de Keycloak e inicia sesión.

En App Platform:

  1. Instala el registro de contenedores Harbor.
  2. Genera una clave de implementación en GitHub.
  3. Añade la clave pública al repositorio.
  4. Guarda la clave privada como un secreto sellado.
  5. Conecta el repositorio de código.
  6. Construye la imagen de la aplicación.
  7. Crea secretos cifrados para OpenAI, PostgreSQL, el almacenamiento de objetos y la clave de la API de administración.
  8. Añade políticas de red para ambas bases de datos de PostgreSQL.
  9. Crea la carga de trabajo utilizando el archivo charts/workflow.example.yaml.
  10. Crea un servicio público para la aplicación.

No incluyas credenciales directamente en el código del repositorio ni en la configuración de la carga de trabajo.

Verifica que la aplicación esté en funcionamiento.

Inicialice las bases de datos:

curl -X POST \
--header "x-api-key:"

Indiza los documentos de políticas:

curl -X POST \
--header "x-api-key:"

Utilice el ID de trabajo devuelto para verificar el progreso.

curl -X GET \
--header "x-api-key:"

Una vez finalizado el proceso de indexación, abre el punto de acceso al servicio y formula una pregunta sobre las políticas que has subido.

Preguntas frecuentes

Preguntas frecuentes

Recupera las secciones relevantes de los documentos de políticas de las aerolíneas y las utiliza para generar respuestas con citas de apoyo.

La aplicación puede procesar archivos en formato PDF, HTML y de texto almacenados en Object Storage.

Una base de datos almacena vectores de incrustación para la recuperación semántica. La segunda almacena el historial de conversaciones y el estado de LangGraph.

No. El proyecto actual utiliza las API de OpenAI para generar incrustaciones y completar conversaciones. Más adelante, puedes adaptarlo para ejecutar un modelo de código abierto en nodos LKE con soporte de GPU.

Sí. Reemplaza las políticas de ejemplo de las aerolíneas en el directorio de documentos con tus propios archivos compatibles antes de subirlos.

El proyecto utiliza Sealed Secrets para OpenAI, la base de datos, el almacenamiento de objetos, la clave de implementación y las credenciales de administrador.

El punto de acceso de indexación devuelve un identificador de trabajo. Utilice el punto de control de estado para supervisar el trabajo antes de probar el chatbot.

No. Los créditos de Akamai Cloud son aplicables a la infraestructura de Akamai Cloud que cumpla los requisitos necesarios. El uso de la API de OpenAI se factura por separado.