- Compte Akamai Cloud et jeton API
- Clé API OpenAI
- Installation locale de Terraform
- Installation locale de kubectl
- Installation locale de s3cmd
- Accès au dépôt GitHub
- Paire de clés SSH pour la clé de déploiement
Avant de commencer
Rassemblez les identifiants et les outils en ligne de commande nécessaires pour provisionner l'infrastructure, importer des documents et déployer l'application.
Développer le chatbot RAG en quatre étapes
Provisionnez l'infrastructure, importez la base de connaissances, déployez l'application et validez le chatbot une fois terminé.
Clonez le projet :
git clone https://github.com/akamai-developers/rag-langgraph-k8s-quickstart.git
cd rag-langgraph-k8s-quickstart
Copiez le fichier d'exemple Terraform et configurez-le avec votre jeton API Akamai Cloud et vos paramètres de ressources préférés :
cp terraform/terraform.tfvars.example terraform/terraform.tfvars
Provisionnez le cluster LKE, deux bases de données PostgreSQL et un bucket de stockage en mode objet :
cd terraform
terraform init
terraform plan
terraform apply
Veillez à la sécurité des sorties Terraform. Elles contiennent des informations de connexion sensibles.
Chargez les sorties Terraform dans des variables d'environnement :
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)
Importez les documents relatifs aux règles de la compagnie aérienne fournis :
s3cmd sync ../documents/ s3://${S3_BUCKET}/ \
--host=${S3_ENDPOINT} \
--host-bucket=${S3_ENDPOINT} \
--access_key=${S3_ACCESS_KEY} \
--secret_key=${S3_SECRET_KEY}
Vous pouvez remplacer les exemples de règles par vos propres documents au format PDF, HTML ou texte.
Configurez le fichier kubeconfig généré :
export KUBECONFIG=./kubeconfig.yaml
Récupérez les identifiants initiaux d'App Platform dans l'espace de noms keycloak, puis connectez-vous.
Dans App Platform :
- Installez le registre de conteneurs Harbor.
- Générez une clé de déploiement GitHub.
- Ajoutez la clé publique au dépôt.
- Stockez la clé privée sous forme de Sealed Secret.
- Connectez le dépôt de code.
- Développez l'image de l'application.
- Créez des Sealed Secrets pour OpenAI, PostgreSQL, le stockage en mode objet et la clé API d'administration.
- Ajoutez des règles réseau pour les deux bases de données PostgreSQL.
- Créez la charge de travail à l'aide du fichier charts/workflow.example.yaml.
- Créez un service public pour l'application.
Ne codez pas en dur les identifiants dans le dépôt ou la configuration de la charge de travail.
Vérifiez que l'application est en cours d'exécution :
curl http://<your-service-endpoint>/api/health
Initialisez les bases de données :
curl -X POST \
--header "x-api-key: <your-admin-api-key>" \
http://<your-service-endpoint>/api/admin/initialize_databases
Indexez les documents de règles :
curl -X POST \
--header "x-api-key: <your-admin-api-key>" \
http://<your-service-endpoint>/api/admin/index_documents
Utilisez l'ID de tâche renvoyé pour vérifier la progression :
curl -X GET \
--header "x-api-key: <your-admin-api-key>" \
http://<your-service-endpoint>/api/admin/index_documents/<job-id>
Une fois l'indexation terminée, accédez au point de terminaison du service et posez une question concernant les règles importées.
Foire aux questions (FAQ)
Foire aux questions (FAQ)
L'application peut traiter les fichiers PDF, HTML et texte stockés dans un système de stockage en mode objet.
L'une stocke les plongements vectoriels pour la recherche sémantique. L'autre stocke l'historique des conversations et l'état de LangGraph.
Non. Le projet actuel utilise les API OpenAI pour les plongements vectoriels et la complétion du chat. Vous pourrez ultérieurement l'adapter pour exécuter un modèle open source sur des nœuds LKE appuyés par un GPU.
Oui. Remplacez les exemples de règles des compagnies aériennes du répertoire documents par vos propres fichiers pris en charge avant de les importer.
Le projet utilise des Sealed Secrets pour les identifiants OpenAI, la base de données, le stockage en mode objet, la clé de déploiement et les identifiants d'administrateur.
Le point de terminaison d'indexation renvoie un ID de tâche. Utilisez le point de terminaison d'état pour surveiller la tâche avant de tester le chatbot.
Non. Les crédits Akamai Cloud s'appliquent à l'infrastructure Akamai Cloud éligible. L'utilisation de l'API OpenAI est facturée séparément.