Como implementar o Vector Search do SQL Database
Implemente mecanismos de busca semântica usando Langchain e a SQL Database API da Azion em uma application TypeScript.
Vector Search é um recurso do SQL Database da Azion que permite aos clientes implementar mecanismos de busca semântica. Enquanto os modelos de busca tradicionais visam encontrar correspondências exatas, como correspondências de palavras-chave, os modelos de busca vetorial usam algoritmos especializados para identificar itens semelhantes com base em suas representações matemáticas, ou embeddings vetoriais.
Saiba mais sobre o Vector SearchComo exemplo de implementação, este guia abordará a configuração da lógica de busca vetorial em uma aplicação TypeScript, com um banco de dados usando a biblioteca Langchain com OpenAI e a SQL Database API da Azion.
Pré-requisitos
- Gere um personal token da Azion.
- Gere uma OpenAI API Key.
- Instale a Azion CLI.
- Crie uma aplicação TypeScript.
- Como no exemplo, você pode usar a Azion CLI para criar uma aplicação Simple Typescript Router.
- Configure o SQL Database.
- Instale as Azion Libraries.
Configure o arquivo main.ts
A primeira etapa é configurar o arquivo main.ts, o ponto de entrada para sua implementação. Ele estabelece a conexão com a API da Azion e a OpenAI, configura o ambiente usando credenciais e contém a lógica principal para realizar e testar consultas de busca baseadas em vetores.
- No arquivo
.env, adicione seu personal token da Azion e a OpenAI API Key como variáveis. - Configure o arquivo
main.ts, usando a seguinte estrutura como exemplo:
Em resumo, este código cria uma função TypeScript chamada vectorSearch, que implementa um recurso de busca semântica no SQL Database da Azion:
- Configuração do banco de dados: conecta-se a um banco de dados (
vectorDatabase) e cria uma tabeladocumentscomcontente uma columnaembedding, indexando os embeddings para buscas vetoriais mais rápidas. - Modelo de embedding: utiliza o modelo
text-embedding-3-smallpara gerar embeddings vetoriais para cada documento. - Inserção de dados: insere dados de texto de exemplo com embeddings no banco de dados.
- Execução de consultas: busca os documentos mais relevantes relacionados a uma consulta dada, usando similaridade para classificar os resultados.
- Tratamento de erros: cada operação principal possui uma configuração de tratamento de erros, garantindo que uma mensagem de erro em JSON seja retornada se ocorrer um erro.
Execute e teste a busca vetorial
Agora, é hora de executar sua aplicação e testar a implementação da busca vetorial. Para fazer isso:
- Crie sua aplicação localmente usando o comando
azion build. - Inicie um servidor de desenvolvimento local para a aplicação com o comando
azion dev. - Com a aplicação em execução, faça um query no SQL Database da Azion para criar o banco de dados na plataforma.
- Envie seu query para o localhost com o valor.
- Por exemplo:
What is the capital of Brazil?
- Por exemplo:
- O servidor deve interpretar a consulta e retornar uma resposta apropriada.
- Neste caso, o servidor retorna uma representação vetorial do query e você receberá uma lista dos documentos mais semelhantes à consulta.
- Se estiver pesquisando no shell do SQL Database, você pode encontrar as informações inseridas na tabela do banco de dados
vectorDatabase.
Pronto! Você implementou uma busca vetorial em sua aplicação. Agora você pode refiná-la e adaptá-la para atender melhor ao seu caso de uso.