Servidor Couchbase

Fale com seus dados: Um UDF que fala sua língua

A consulta acima fornece insights valiosos dos seus dados armazenados no Couchbase sobre os cinco principais usuários que geraram os pedidos mais concluídos nos últimos 30 dias. Mas e se você não for um desenvolvedor avançado de SQL++ e precisar das respostas até as 23h para um relatório? Então, você precisará esperar que um desenvolvedor escreva uma consulta SQL++ e obtenha as respostas.

Como alternativa, considere um caso em que você precise fazer uma depuração ad hoc para responder a perguntas como:

  • Há algum documento que não contenha a data de entrega do pedido?
  • Isso significa que o pedido foi cancelado? Ou o pedido foi colocado no lugar errado e nunca foi entregue? Ou estava tudo bem, mas simplesmente deixamos de adicionar o valor order_delivered no campo?

Nesse caso, você não precisa apenas pesquisar o campo order_delivered, mas também examinar order_cancelled ou investigar os comentários para descobrir se ele foi extraviado etc. Portanto, a consulta a ser escrita não é simples nem direta. 

Nesses casos, seria útil se você tivesse um assistente confiável disponível 24 horas por dia, 7 dias por semana, para obter todas essas respostas. O UDF descrito neste blog é um desses assistentes. Ele aceita suas perguntas da forma mais natural possível e retorna os resultados em JSON. Nos bastidores, ele se conecta a um modelo de sua escolha, juntamente com sua chave de API, para converter suas ideias em SQL++ e, em seguida, executá-las. E tudo o que você precisa para chamar esse assistente é usar o UDF.

Como funciona

1. Configure a biblioteca.
Primeiro, você cria uma biblioteca JavaScript usada pelo UDF.

Biblioteca:

2. Faça o upload da biblioteca.
Execute o comando curl depois de copiar o código da biblioteca fornecida em um arquivo, ou seja, usingailib.js.

3. Criar o UDF.
Use o comando create function abaixo para criar o UDF depois de criar a biblioteca:

O NL2SQL() agora atua como seu tradutor multilíngue entre a linguagem humana e o mecanismo de consulta do Couchbase. Basta fornecer a ele algum contexto e uma solicitação em linguagem natural, e ele retorna uma resposta.

Como o UDF pensa

Por trás disso, ele usa seu modelo preferido ao invocar o UDF para entender sua intenção e gerar uma consulta que o Couchbase pode executar.

A vantagem de usar a API de conclusão de bate-papo significa que você pode simplesmente conectar um modelo de outros provedores que estejam em conformidade com a mesma especificação de API. Você pode usar seu próprio LLM privado ou os conhecidos da Open AI, Gemini, Claude, etc.

O UDF invocado requer as seguintes informações de você:

  1. Espaços-chave - Uma matriz de strings, cada uma representando um espaço-chave do Couchbase (bucket.scope.collection). Use aspas com acento grave quando necessário para escapar de nomes especiais (como amostra de viagem.inventory.route). Isso informa ao UDF onde procurar seus dados.
  2. imediato - Sua solicitação em inglês simples (ou em qualquer outro idioma).
    Exemplo: “Mostre-me todos os usuários que fizeram uma compra nas últimas 24 horas”.”
  3. apikey - Sua chave de API usada para autenticação com o ponto de extremidade do modelo.
  4. ponto final do modelo - Por exemplo, URL de conclusões de bate-papo em conformidade com o Open AI.
  5. modelo - O nome do modelo que você deseja usar do provedor.
    Por exemplo, “gpt-4o-2024-05-13”

Há também várias funções disponíveis na biblioteca:

inferidor()

Antes de gerar uma consulta, o UDF tenta primeiro entender seus dados. A função auxiliar inferencer() chama a instrução INFER do Couchbase para recuperar o esquema de uma coleção:

Esse esquema é usado para ajudar a IA a entender que tipo de dados está contido em cada coleção.

A função principal: nl2sql()

  • Coleta todos os esquemas para os espaços-chave fornecidos usando o inferencer(). Constrói um prompt que inclui: o esquema inferido, sua consulta em linguagem natural e um prompt do Couchbase para estimular o LLM.
  • Envia para o LLM.
  • Extrai o SQL++ gerado da resposta do modelo.
  • Executa-o diretamente se for um comando SELECT e retorna o comando SQL++ gerado e os resultados da consulta.

O motivo para não executar instruções que não sejam de seleção é que você não quer que esse UDF insira, atualize ou exclua documentos em uma coleção sem que você o verifique. Portanto, o comando SQL++ permite que você o execute depois de ter sido verificado.

Exemplo de caso de uso:

Experimentação com modelos de outros provedores

O próximo exemplo usa a API compatível com Open AI da Gemini. Basta alterar o URL do provedor do modelo da API Open AI anterior para a API da Gemini. Além disso, certifique-se de alterar o parâmetro do modelo para um modelo que ele reconheça. Obviamente, você também precisa atualizar a chave api da chave do Open AI para a chave do Gemini.

O resultado é ilustrado a seguir:

Conclusão

Este blog oferece uma visão geral de como você pode aproveitar a IA para interagir com seus dados no Couchbase. Com esse UDF, a consulta em linguagem natural se torna uma realidade, sem necessidade de conhecimento em SQL++. Ele é agnóstico em relação ao modelo e seguro para consultas de produção.

E isso é apenas o começo. No futuro, esperamos estendê-lo para:

  • Imagem → SQL++
  • Voz → SQL++
  • Pipelines do tipo agente

... todos executados dentro dos fluxos de trabalho do Couchbase.

Referências
Capella IQ: https://docs.couchbase.com/cloud/get-started/capella-iq/get-started-with-iq.html
APIs de conclusão de bate-papo:
https://platform.openai.com/docs/api-reference/chat
https://ai.google.dev/gemini-api/docs/openai#rest

Compartilhe este artigo
Receba atualizações do blog do Couchbase em sua caixa de entrada
Esse campo é obrigatório.

Autor

Postado por Gaurav Jayaraj - Engenheiro de software

Gaurav Jayaraj é estagiário na equipe de consultas da Couchbase R&D. Gaurav está cursando bacharelado em Ciência da Computação na PES University, Bangalore.

Deixe um comentário

Pronto para começar a usar o Couchbase Capella?

Iniciar a construção

Confira nosso portal do desenvolvedor para explorar o NoSQL, procurar recursos e começar a usar os tutoriais.

Use o Capella gratuitamente

Comece a trabalhar com o Couchbase em apenas alguns cliques. O Capella DBaaS é a maneira mais fácil e rápida de começar.

Entre em contato

Deseja saber mais sobre as ofertas do Couchbase? Deixe-nos ajudar.