Anteriormente, mostramos como usar os recursos do Couchbase RAG por meio de um aplicativo Python que permite que o usuário "converse com seu PDF ou com X. É simples de construir, mas será que podemos construí-lo de forma mais simples? Tenho brincado bastante com o Couchbase Shell recentemente e ele deve me permitir fazer algo semelhante.

Configurar um escopo e uma coleção

Presumo que você já esteja familiarizado com Shell do Couchbase (cbsh) e ter um cluster e um modelo configurados.

Crie e selecione um escopo e uma coleção e, em seguida, crie um índice primário:

Transformar um PDF em texto dividido em partes

Há uma variedade de ferramentas que permitem converter um PDF em texto. Na maioria das distribuições Linux, você deve encontrar pdftotext.

Isso criará uma versão de texto do arquivo com o mesmo caminho, mas com um .txt extensão.

Com Nushell (o cbsh é baseado no Nushell), é fácil dividir o texto graças ao comando split. O problema é encontrar o delimitador correto que você precisa para dividir o arquivo. Felizmente, ele suporta strings de várias linhas, então copiei e colei o texto do arquivo entre dois parágrafos. Entretanto, você deve ser capaz de fazer algo mais sofisticado usando regex. Essa é a diferença entre o material do blog e a produção 😇.

Isso lhe dará uma tabela de strings de texto. Para importá-la para o Couchbase, nós as envolvemos em um campo de texto, em um objeto JSON de conteúdo, adicionamos um UUID gerado aleatoriamente e inserimos o resultado.

A próxima etapa é criar embeddings, ou representações vetoriais do texto:

Em seguida, crie o índice de pesquisa vetorial. Aqui ele é chamado de pdf, indexa o campo textVectorcrie um vetor de 1536 dimensões e use l2_norm para o algoritmo de similaridade, pois é o padrão.

Eu importei as regras do Monopoly e estou perguntando como sair da cadeia. No exemplo original, tínhamos uma resposta com contexto e outra sem.

E com contexto:

Vamos simplificar isso colocando tudo em um script. Este é o conteúdo de myScript.nu:

Você pode criar o arquivo de script e, em seguida, chamar essas funções:

Aqui, você pode ver o mesmo tipo de resultado que obtivemos na demonstração do Python RAG, mas desta vez usando o Couchbase Shell. Deve ser mais fácil manipular, alterar ou estender, porque você não precisa implantar um aplicativo ou conhecer Python. No entanto, ele será menos flexível do que o que você pode obter com Python e Langchain.

Se isso for do seu interesse, fique ligado - mais conteúdo sobre IA e Couchbase Shell está a caminho!

Autor

A ordem da postagem em relação a outras postagens. Laurent Doguin, Advogado do desenvolvedor, Couchbase

Laurent é um Developer Advocate baseado em Paris, onde se concentra em ajudar os desenvolvedores Java e a comunidade francesa. Ele escreve código em Java e postagens de blog em Markdown. Antes de se juntar ao Couchbase, ele era o contato da comunidade Nuxeo, onde dedicou seu tempo e experiência para ajudar toda a comunidade Nuxeo a se tornar mais ativa e eficiente.

Posição vertical a partir do topo para iniciar o corte como uma porcentagem da altura da imagem.