Bases de conhecimento sobre rochas com vetores S3: A [Preview] CDK QuickStart

Introdução Eu estou no ecossistema da AWS há um tempo, e uma das coisas que eu gostei é como as bases de conhecimento da rocha proporcionam uma maneira relativamente proibida de levantar pipelines de rag, sem que o duto tivesse meia dúzia de serviços juntos. A captura sempre foi armazenamento vetorial. Até agora, suas opções prontas para uso eram OpenSearch (simples, mas caras) ou aurora sem servidor (flexível, mas com a configuração pesada, mesmo que seja escalada para zero). Em julho de 25, a AWS lançou algo novo para a pré -visualização: vetores da Amazon S3. É uma loja de vetores nativos projetada para ser barata (a AWS reivindica até 90% de custo menor que outras opções) às custas de algum desempenho. As latências são mais altas, mas para muitas cargas de trabalho, e especialmente a experimentação ou a pré-produção, deve ser “bom o suficiente”. No momento, os vetores S3 aparecem como uma opção quando você cria novas bases de conhecimento no console … ainda não há um construto L2 CDK oficial. Link de repetição: Construindo a base de conhecimento de rocha com vetores S3 Objetivo É aí que entra esse construto CDK. Eu reuni uma pilha relativamente simples, mas configurável, que se encaixa: um balde de ingestão S3 A ​​Bedrock Base Base de Conhecimento de Rock), assim como o seu standleding de vetores de rock), o seu standing apropriado não é que o seu standing de Lambra. Ainda não está totalmente L2, porque a maioria das peças dos vetores S3 é tão fresca que ainda exige a base do InstallLatesTawssdk: True, e a limpeza teve que ser carregada em um lambda porque o CloudFormation exclui a ordem errada de outra forma. Espero que tudo isso seja abstraído em uma futura lançamento do CDK, mas, por enquanto, esse construto deve fornecer uma maneira reprodutível e de baixo custo de implantar bases de conhecimento com vetores S3. Valor para quem é isso? Praticamente qualquer pessoa que queira explorar KBs Bedrock sem queimar dinheiro em infra que você ainda não precisa: entusiasmo e estudantes: pode construir e testar pipelines de rag por conta própria sem se tornar um especialista em aurora ou queimar mais de 100 dólares mensais no OpenSearch. Devs independentes e pequenas equipes: pode protótipo de fluxos de trabalho, integrações de testes ou recursos de demonstração sem uma conta da AWS em fuga. Equipes corporativas: podem aumentar uma configuração de pré-produção para experimentação, os ambientes posteriores podem utilizar o OpenSearch, Pinecone ou Aurora, mais executivos, sem reescrever seu aplicativo, já que a API da Bedrock abstrata a loja de vetores, portanto a troca mais tarde está sempre na tabela sem alterações no código subjacente. ⚠️ Uma ressalva precoce: se você espera ir além desse padrão, é melhor trazer seu próprio balde de ingestão S3. As bases de conhecimento estão ligadas às suas lojas vetoriais, portanto, mudar mais tarde pode ser destrutiva. Aperte o solo em funcionamento (Investir rápido) além da conta AWS usual + bootstrap CDK, há duas coisas que você precisa para se unir antes de implantar: Região: A partir da visualização (julho ’25), os vetores S3 estão disponíveis apenas em: Modelo US-East-1, Modelo US-EAST-2, US-WEST-2, EU Central-1, Model-Soutemeast-2 Modelo de embeding-1, você pode ter o Model-REFED-REUTOD-RIEFT-RIPERD-RIEFT-REAST-REAST-REAST-REAST-REAST-REAST-REAST-REAST-REAST-REAST-REAST-REAST-REAST-REAST-REAST-REAST-REAST-REAST-2. No momento da redação deste artigo, isso significa: Amazon Titan Text Incorpore V2: suporta 256, 512 ou 1024 Dimensões Amazon Titan Text Incorporação v1: requer 1536 dimensões se você tentar outro modelo, a ingestão falhará porque as dimensões não serão alinhadas. Implante a construção Depois de clonar o repositório e revisar os adereços que você pode querer ajustar (prefixos, analisar o modelo, comportamento de exclusão etc.), você pode seguir em frente e sintetizar/implantar: NPM Instale # ou Yarn/pnpm CDK Synth # Opcional, para revisar a geração gerada como a geração #, no entanto, no primeiro passe ‘ CDK Implante Enter Modo de tela Full Screen Modo de tela completa No sucesso Você obterá saídas da pilha: KnowledgeBaseId KnowledgeBaseEarn ingestionbucketName (carregue documentos aqui; padrão para documentos /) VectorbucketName / VectorIndexName Adicione documentos agora retiram algum conteúdo no bucket. Por padrão, isso significa S3: /// docs/. Para o meu primeiro teste, enviei algumas páginas curtas da Wikipedia sobre molhos (Pipian, Mole, Béchamel) apenas para ter algo divertido para se consultar. Inicie um trabalho de ingestão em seguida, diga a Bedrock para ingerir o que você acabou de enviar: aws bedrock-agent iniciar-job \-knowledge-base-id $ kb_id \–data-source-id ods_id insair o modo de tela completa, o modo de tela completa e depois que você vê-awsddrock-bedrock-bedrock-bedrock-bedrlock \-Data-source-ID $ ds_id \ –ingestion-job-id $ JOB_ID Digite Modo de tela cheia de tela FullScreen Experimente uma recuperação simples quando o trabalho estiver concluído, você pode executar uma consulta somente para recuperação (sem embrulho LLM): AWS Bedrock-Agent-Runtime Retrieve \-Knowledge-Base-Id $ kb_id \–reval-quadrigey ‘{“text”: “O que é o molho pipian?”}’ \–retrivedcon {“NumberOfResults”: 3}} ‘Digite o modo de saída de tela cheia de tela cheia, isso retornará pedaços de documentos brutos com suas referências de origem. Avise-se para o RAG (recuperando e generalizado) agora vamos tentar um ciclo completo de pano com um LLM no topo: AWS Bedrock-Agent-Runtime Recuir-e-Gerate \–input ‘{“text”: “Resumindo o molho de figural, em duas frases”}’ \—reterie e Generate-Connfiguration “{\” “” Type “}} \—reterie: Generate-Configuration” {\ \ “” \ “KnowledgeBaseConfiguration \”: {\ “KnowledgeBaseId \”: \ “$ kb_id \”, \ “Modelarn \”: \ “arn: aws: Bedrock: US-EAST-1 :: Foundation-Model/Anthropic.Claude-3-Sonnet -2024022229-V1: \ “VectorSearchConfiguration \”: {\ “numberOfResults \”: 3}}}} “Digite o modo de saída do modo de tela cheia, se tudo correr bem, você deverá ver uma resposta curta e gerada com base nos seus documentos. E assim, você tem uma base de conhecimento de vetores S3 -> S3 funcionando na AWS. Agora você pode conectá -lo a fluxos de trabalho, embrulhá -lo com agentes ou consultar seu próprio código. Se você permanecer por aí, as próximas seções cobrem algumas advertências e bordas afiadas que economizarão a dor na linha. Considerações e vigilância (antes de você ser comprometida) O bloqueio da loja de vetores da sua base de conhecimento está colado à sua loja de vetores. Você não pode trocar mais tarde; portanto, se decidir se mudar para o OpenSearch, Pinecone, Aurora sem servidor, etc., estará reconstruindo e reinvestindo. Por causa disso, sugiro fortemente trazer seu próprio balde de ingestão S3 na frente. Dessa forma, se o KB tiver que ir, seus documentos não vão com ele. Model + Dimension Choice O mesmo lidar com modelos e dimensões: depois de definir, é isso. O Titan V2 é flexível (256/512/1024), o Titan V1 está bloqueado em 1536. Mude de mente mais tarde? Você está derrubando o KB e indexando e começando de novo. Os padrões de construção para o Titan V2 em 1024 se você não se importa o suficiente para escolher. Preço vs. Performance S3 Vectors é barato e, no momento, eles são a opção de loja de vetores mais barata, mas a latência é mais lenta. Tanto a ingestão quanto a recuperação demoram mais em comparação com o OpenEarch ou Aurora. Para mexer, prototipagem e aplicativos de baixa intensidade, é mais do que bom. Mas se você estiver construindo algo crítico de latência, provavelmente o superará. Vetores S3: Subsendring Recuperação Opensearch Sem servidor: dezenas baixas de MS Recuperação Aurora PGVECTOR: Os avisos de previsão com tensão baixa não esquecem que isso ainda está em visualização. As APIs não são finais. As permissões são amplas, as chamadas do SDK podem mudar e, se você começar a ver erros estranhos sobre chamadas de API malformadas surgindo do nada, isso provavelmente está mudando as coisas sob o capô. Espero ter que refatorar esse construto um pouco antes da liberação geral, então você provavelmente precisará fazer o mesmo se puxá -lo para o seu ecossistema. Com tudo isso em mente, você deve ser bom para ir às corridas! Se você deseja os detalhes mais profundos de por que o construto está conectado do jeito que é, fique por aí para o mergulho profundo. Dive Deep (por que o construto está conectado do jeito que é) Recursos personalizados e APIs frescas A primeira coisa que você notará quando abrir o código: um monte de blocos AwScustomResource com o InstallLatestawssdk: true. Isso ocorre porque os vetores S3 são tão novos que as APIs ainda não estão no SDK de tempo de execução do Lambda padrão. Este é um problema somente para visualização e desaparecerá quando os vetores S3 aterrissarem no SDK gerenciado. Pequeno de lado: a execução do InstallLatestawssdk também desempenha engraçado com a forma como os papéis são conectados. Em vez de confiar no CDK para anexar funções de maneira limpa, tive que cair em algumas políticas de embutimento explícitas para garantir que esses lambdas pudessem realmente conversar com os serviços. Não é bonito, mas mantém as coisas funcionando até a AWS suavizar isso. Os baldes normais de limpeza lambda S3 não podem ser excluídos se ainda tiverem objetos, e os baldes/inxexes de vetor S3 não são diferentes. O CloudFormation não sabe disso – apenas tenta rasgar as coisas na ordem inversa e falha. Para corrigir isso, os fios de construção em recursos personalizados para excluir o índice antes do balde e adicionam um lambda de limpeza para lidar com os bits de rocha (DataSource + Knowledge Base) na sequência correta. No CDK Destroy, os dois trabalham juntos, então a desmontagem termina de maneira limpa, em vez de deixá -lo com lojas vetoriais pendentes ou pilhas quebradas. Permissões amplas, por enquanto, você também verá algumas declarações abertas do IAM, especialmente em torno de S3Vectores:*. Isso ocorre porque a visualização suporta apenas * escopo para ações do plano de dados. Eu não seria razoavelmente capaz de confiar na segmentação do ARN, pois o recurso persiste através da visualização. Espere que isso se aperte após a liberação geral, mas, enquanto isso, é “melhor funcionar do que quebrado”. Analisar opções por padrão, a ingestão apenas pedaços e indexa seus documentos. Mas eu conectei o modelo de base opcional: Execute o conteúdo através do claude Sonnet (ou outro modelo) com um prompt personalizável antes da vetorização. Isso está desativado por padrão, porque pode acumular custos rapidamente, dependendo do modelo. Se você o violar, verifique se o modelo está ativado em sua conta/região e verifique as permissões + gastar as expectativas. Visualize advertência de todas as opções acima (os recursos personalizados, limpeza lambda, IAM Broad, opções de análise) estão conectadas dessa maneira porque estamos em visualização. Espere atualizações do SDK, suporte CDK L2 (para vetores/índices S3 e o DataSource) e mais apertados para pousar ao longo do tempo. Novamente, estarei assistindo e atualizando com o tempo como viável, mas se eu perder uma atualização, fique à vontade para me manter honesto no repositório! Conclusão (onde isso se encaixa, onde não)), no final do dia, estou lançando esse construto para ajudar as pessoas enquanto o apoio total está pendente. Está aqui para fornecer o caminho mais barato e limpo para experimentar bases de conhecimento sobre rochas, enquanto a AWS faz o que eles fazem para produzir a versão de lançamento dos vetores S3 no SDKS & CDK. Se você é um hobby, estudante ou equipe pequena, essa é a sua maneira de obter práticas sem incendiar um orçamento em nuvem. Se você é uma loja empresarial, esse é o tipo de coisa que você aponta para prototipagem, demos internos e ambientes de pré-produção, sabendo que provavelmente pulará para o OpenSearch, Pinecone ou Aurora para produção quando a latência e a conformidade comecem a importar mais. Além do ponto, não é o ajuste certo se você estiver criando aplicativos críticos de latência, onde sub-100ms é não negociável e você precisa de APIs estáveis ​​e prontas para conformidade hoje (os vetores S3 ainda são visualizados). Mas é o ajuste certo, se você quiser entender o que os KBs podem fazer, mexem com seus próprios documentos e comece a construir a memória muscular em torno do pano na AWS sem queimar dólares desnecessariamente. Sinta -se à vontade para dar uma volta, deixe -me saber como foi. Estarei iterando esse repositório à medida que a pré-visualização evolui, mas o feedback do mundo real é sempre o melhor! REFERÊNCIAS AWS DIRECT DOCs Comunidade / blog Postagens é isso! Você tem o rápido início, as advertências, as entranhas e os corrimãos. Dê um giro e, se você acertar algo estranho (ou encontrar uma maneira mais nítida de resolver os pontos de limpeza/permissões), jogue um problema ou relações públicas no repositório. Eu adoraria manter este honesto à medida que os vetores S3 amadurecem.

Fonte

Você pode ter perdido