- Conta do Akamai Cloud e token da API
- Chave de API da OpenAI
- Terraform instalado localmente
- kubectl installed locally
- s3cmd installed locally
- Acesso ao repositório do GitHub
- Par de chaves SSH para a chave de implantação
Antes de começar
Reúna as credenciais e as ferramentas de linha de comando necessárias para provisionar a infraestrutura, enviar documentos e implantar a aplicação.
Crie o chatbot RAG em quatro etapas
Provisione a infraestrutura, faça o upload da base de conhecimento, implante a aplicação e valide o chatbot concluído.
Clone o projeto:
git clone https://github.com/akamai-developers/rag-langgraph-k8s-quickstart.git
cd rag-langgraph-k8s-quickstart
Copie o arquivo de exemplo do Terraform e configure-o com seu token da API do Akamai Cloud e as configurações de recursos de sua preferência:
cp terraform/terraform.tfvars.example terraform/terraform.tfvars
Provisione o cluster LKE, dois bancos de dados PostgreSQL e um bucket de Object Storage:
cd terraform
terraform init
terraform plan
terraform apply
Mantenha as saídas do Terraform em segurança. Elas contêm detalhes confidenciais de conexão.
Carregue as saídas do Terraform em variáveis de ambiente:
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)
Carregue os documentos de política da companhia aérea incluídos:
s3cmd sync ../documents/ s3://${S3_BUCKET}/ \
--host=${S3_ENDPOINT} \
--host-bucket=${S3_ENDPOINT} \
--access_key=${S3_ACCESS_KEY} \
--secret_key=${S3_SECRET_KEY}
Você pode substituir as políticas de exemplo por seus próprios documentos em PDF, HTML ou texto.
Defina o kubeconfig gerado:
export KUBECONFIG=./kubeconfig.yaml
Recupere as credenciais iniciais da App Platform no namespace keycloak e faça login.
Na App Platform:
- Instale o registro de contêineres Harbor.
- Gere uma chave de implantação do GitHub.
- Adicione a chave pública ao repositório.
- Armazene a chave privada como um Segredo Selado.
- Conecte o repositório de código.
- Compile a imagem da aplicação.
- Crie Sealed Secrets para a OpenAI, o PostgreSQL, o Object Storage e a chave da API de administração.
- Adicione políticas de rede para ambos os bancos de dados PostgreSQL.
- Crie a workload usando charts/workflow.example.yaml.
- Crie um serviço público para a aplicação.
Não codifique credenciais no repositório ou na configuração da workload.
Verifique se a aplicação está em execução:
curl http://<your-service-endpoint>/api/health
Inicialize os bancos de dados:
curl -X POST \
--header "x-api-key: <your-admin-api-key>" \
http://<your-service-endpoint>/api/admin/initialize_databases
Indexe os documentos de política:
curl -X POST \
--header "x-api-key: <your-admin-api-key>" \
http://<your-service-endpoint>/api/admin/index_documents
Use o ID da tarefa retornado para verificar o andamento:
curl -X GET \
--header "x-api-key: <your-admin-api-key>" \
http://<your-service-endpoint>/api/admin/index_documents/<job-id>
Quando a indexação estiver concluída, acesse o endpoint do serviço e faça uma consulta sobre as políticas enviadas.
Perguntas frequentes (FAQ)
Perguntas frequentes (FAQ)
A aplicação pode processar arquivos PDF, HTML e de texto armazenados no Object Storage.
Um armazena representações vetoriais para recuperação semântica. O segundo armazena o histórico de conversas e o estado do LangGraph.
Não. O projeto atual usa APIs da OpenAI para representações vetoriais e autocompletar mensagens de chat. Posteriormente, você poderá adaptá-lo para executar um modelo de código aberto em nós LKE com suporte a GPU.
Sim. Substitua os exemplos de políticas de companhias aéreas no diretório documents pelos seus próprios arquivos compatíveis antes de enviá-los.
O projeto utiliza o Sealed Secrets para credenciais da OpenAI, do banco de dados, do Object Storage, da chave de implantação e de administrador.
O endpoint de indexação retorna um ID de tarefa. Use o endpoint de status para monitorar a tarefa antes de testar o chatbot.
Não. Os créditos do Akamai Cloud se aplicam à infraestrutura elegível do Akamai Cloud. O uso da API da OpenAI é cobrado separadamente.