Pesquisa global semântica com vetores
Pesquisa global eficaz mistura UI onipresente (Cmd/K) com índice vetorial para intenção — além de match lexical.
Resposta direta
Pesquisa global com vetores semânticos em apps web. Esse csv, eu também o terei na repo do github e então eu posso upload-o aqui, então para o nome espaço, isso será o principal e então eu posso apenas ativar e desligar, como você vê aqui, há alguns setes de fichas que podem ser.
Por que busca clássica falha
Nesta parte do material sobre pesquisa global semantica web, o foco é «Por que busca clássica falha». Em vez de teoria genérica, o raciocínio parte do que acontece quando você executa de verdade.
É apenas uma pesquisa local, uma pesquisa de database ou eu fui em todo e implementei um database de vectores e, mais importante, como você pode implementar uma pesquisa global com capacidades semânticas sem gastar uma semana nela? Bem, isso significa que eles têm algum tipo de fio json, This is Justin away com muitos objetos e então eles têm todos os seus componentes definidos dentro deles. Eu diria que implementar uma pesquisa local provavelmente leva cerca de 20 minutos ou mais, como máximo, porque você só tem que criar o arquivo json e então algum tipo de algoritmo para permitir uma pesquisa foda e é isso.
Agora, aqui está a coisa, há um problema com local search, porque agora você pode dizer, uau, local search é fácil de implementar, é quase instantâneo, ótimo, vamos usar local search. Mas, novamente, Shadzy e UI são uma pequena web ou uma web com uma pequena data set, e é por isso que a pesquisa local funciona bem para essa específica web. Mas se eu diria aqui em idioma natural, eu preciso de algum tipo de componente que me permita clicar em algo, então algo que descreva um botão, eu não recebo nenhum resultado, porque eles não têm semântica.
Índice vetorial + UI global
Nesta parte do material sobre pesquisa global semantica web, o foco é «Índice vetorial + UI global». Em vez de teoria genérica, o raciocínio parte do que acontece quando você executa de verdade.
E a última coisa é que também a pesquisa local tem capacidade de off-line, Isso significa que se eu desligar o meu Wi-Fi, tudo ainda funcionará e isso é porque não há pedidos de rede. Então agora nós conversamos sobre a pesquisa local e você sabe o que, para resumir, a pesquisa local é ótima, é rápida, é fácil de implementar, funciona offline, mas ao mesmo tempo não é muito escalável e não é muito avançado porque você só tem .exact and fuzzy search. I would use it if my dataset is small, like smaller than 1000, and also if I probably have some sort of documentation website.
Então, por exemplo, se você for para a minha página e se você procurar por LMS, você verá aqui que eu tenho um pequeno delay, um delay de 1 segundo. Se eu abrir o meu inspector e se eu for para o network, e se eu procurar, digamos, LMS, você verá aqui que eu tenho uma query, eu pego algo, eu pego dados. No entanto, ainda há dois problemas principais com o search de databases, e isso é que você A, ativa seu database, isso significa que você cria um monte de carga, e segundo, você não tem nenhuma search semântica.
Na prática
Pesquisa global com vetores semânticos em apps web.
Qualidade de embedding
Nesta parte do material sobre pesquisa global semantica web, o foco é «Qualidade de embedding». Em vez de teoria genérica, o raciocínio parte do que acontece quando você executa de verdade.
E é por isso que eu quero que você também olhe para a opção número 3, e é que você quer usar, novamente, um database. Sim, você quer usar um database, mas ao invés de usar um database normal como Postgres ou MySQL, ou, eu acho, SQLite, você quer, ao invés disso, usar um database vector. Ela retorna o valor correto sem realmente dizer ou sem você mesmo precisar mencionar o resultado, se você entende o que eu Então eu não tenho que mencionar o vermelho para obter o resultado vermelho.
Então, em vez de apenas matchar keywords, dados, isso significa artigos, produtos, filmes, o que quer, esse dados agora é mais ou menos convertido em vectores, usando um modelo de AI. Then you store these vectors in your vector database, and then when a user searches, you pretty much embed a query, a query do usuário, e então você encontra os vectores em seu database que são similares. Bem, eu diria que isso é uma ótima opção porque é mais rápido do que seu normal de database, é praticamente otimizado para pesquisa e a coisa legal é que você tem a capacidade de implementar pesquisa em texto completo, mas, claro, também pesquisa semântica, o que significa que é muito mais poderoso do que o standard.
Rollout sem travar o app
Nesta parte do material sobre pesquisa global semantica web, o foco é «Rollout sem travar o app». Em vez de teoria genérica, o raciocínio parte do que acontece quando você executa de verdade.
Database search and yes it does not have any offline support but i will be honest with you i don't care this website only works if you have an internet connection and if you don't have one well then good luck so yeah as you now see these are the three options that you have to implement search and now you might ask me hey jan what did you use to implement search local search or search de database ou talvez você implementou um database vector? Se eu for aqui e dizer, ei, eu quero criar um LMS, eu vou conseguir um resultado, porque isso aqui usa um database de vectores, o que significa que eu consegui resultados semânticos. E agora aqui está a coisa, você pode me perguntar, ei, Jan, você realmente vai e cria um database de vectores de vectores e depois faz tudo sozinho?
Não é apoiado e eu queria apenas ter algo que funciona agora aqui está a coisa search é não tão poderoso como por exemplo search elástico, mas novamente eu só preciso de search e para isso search works great e é por isso que eu uso em minha aplicação e agora eu quero implementar search com vocês então aqui eu criei esta aplicação movie marshall com muitos Não estou brincando, há zero filmes aqui, mas não se preocupe, nós vamos resolver isso. Então, se você for para a descrição do meu YouTube, você encontrará o link para esta repo e o primeiro passo é, primeiro de tudo, seedar nosso actual database. Como você pode ver aqui, meu database foi criado e também, se você se perguntar o que o Upstash usa no fundo, bem, eles usam um database de vectores, eles também têm o seu próprio oferecimento de vectores, mas novamente, isso seria bem baixo nível, a busca apenas se construiu em cima do database de vectores e praticamente simplifica e streamlaça tudo.
Sinais de que está funcionando
Nesta parte do material sobre pesquisa global semantica web, o foco é «Sinais de que está funcionando». Em vez de teoria genérica, o raciocínio parte do que acontece quando você executa de verdade.
Mas, como eu uso Neon, eu posso dizer aqui, eu quero selecionar tudo da minha tabela de filmes, e então, como você pode ver aqui, eu tenho 100 rows, 100 resultados. Esse csv, eu também o terei na repo do github e então eu posso upload-o aqui, então para o nome espaço, isso será o principal e então eu posso apenas ativar e desligar, como você vê aqui, há alguns setes de fichas que podem ser buscados porque nós temos uma ideia, um cast, um cast é uma série de todas as pessoas que jogam no filme ou que estão presentes no filme, então, o que será buscável? Então aqui eu quero ir para a documentação, eu quero ir para Search e aqui eles já têm um guia de recomeço e o primeiro passo é instalar o pacote UPS-Search.
Então eu quero copiar o ponto final, isso será igual ao label de envio URL do UPStash REST environment e então eu posso copiar o token de leitura única. Então, infelizmente, a busca por abstrato, na verdade, oferece um componente de UI muito legal que é acessível e também muito fácil de customizar pois se construiu em cima de radix ui e então esta biblioteca cmdk então o que podemos fazer é instalar ele aqui e uma vez instalado queremos então importar o componente e o css então eu vou copiar, eu vou abrir a barra nav e isso é porque eu quero render esta barra de search toggle na barra nav. Vamos criar um cliente de busca e então queremos criar este índice constante e isso nos ajudará a conseguir nosso índice, nossos dados.
O que evitar na primeira semana
Nesta parte do material sobre pesquisa global semantica web, o foco é «O que evitar na primeira semana». Em vez de teoria genérica, o raciocínio parte do que acontece quando você executa de verdade.
Então podemos usar nossos vables do ambiente aqui e, como este é usado no lado do cliente, queremos também prefixá-lo com next public. E sim, aqui nós temos uma barra de busca e se eu clicar nela, ela abrirá este modal, este dialogo e se eu agora dizer, por exemplo, filme de comédia, em teoria, ele deveria me dar um filme de comédia como um boss. Aqui podemos usar um handler de seleção de opções e uma vez que um usuário seleciona algo, eu quero redirecionar o usuário to slash movie slash the movie id because if we go back right here to the dashboard and to our data browser then you will see that there are three things we first of all have the id property this is generated by upstash then we have the content this is what we can search the title the year the cast, drawn with and extract the extract itself.
E também para este, em selecionar, podemos dizer, set open false, o que significa que quando nós, praticamente, ou quando um usuário clica no resultado, o diálogo irá fechar. E você sabe, a coisa que eu aprecio o mais sobre esta solução de busca é que tudo é Type Safe, pois eu adiciono meus tipos aqui, eu posso acessar tudo. Algo dinâmico, então aqui eu pego meu resultado como todos vocês sabem e a coisa legal é que tudo é tipo seguro eu pego meu conteúdo meu id meu metadata meu resultado tudo assim e isso pode parecer como uma coisa simples ou como uma coisa menor, mas acredite em mim, a segurança do tipo é enorme e a maioria dos fornecedores não oferece isso, então aqui como vamos render o resultado, eu acho que isso seria bastante interessante, então se agora voltarmos e se eu search for comedy, I should get a score down below.
Como explicar isso para o time
Nesta parte do material sobre pesquisa global semantica web, o foco é «Como explicar isso para o time». Em vez de teoria genérica, o raciocínio parte do que acontece quando você executa de verdade.
Eu tenho duas fontes de verdade e quando você tem duas fontes você tem que mantê-las em sincronização então agora eu tenho esta rota de criação slash criar e nesta rota de criação eu posso criar um filme um novo filme então aqui vamos voltar e deixe-me abrir esta rota de criar rapidamente então esta é a ui aqui eu implementei formato de reacção todas as minhas input e coisas do tipo uma vez que o usuário cria toda a informação Eu aqui tenho o handler onSubmit e o handler onSubmit chama de ação de server. Isso significa que o que você pode fazer aqui é criar um novo cliente de pesquisa, mas ao invés de usar o token client, o token read-only, você quer usar o token normal, o que também te permite escrever. Eu pego meu índice, uso o cliente de pesquisa do server, é assim que eu o chamei, o índice é o principal, e então, aqui, após atualizar meu database, eu adiciono um novo documento.
Então agora você tem que gerar a ideia sozinho, então aqui eu apenas uso o pacote de cripto, eu atualizo todo o conteúdo e adiciono meus metadados, então a ideia do filme, o thumb e então a altura e a altura, então, em teoria, isso agora deveria funcionar, então vamos testar o título será Jan na Matrix, então aqui eu adicionei toda a informação e agora eu posso clicar em submitação e em teoria deveria funcionar, isso significa que se eu abrir meu terminal, foi sucesso como você vê aqui e se eu for para a página do índice, eu deveria conseguir um novo filme e como Como você pode ver aqui, Jan no Matrix. Eu instalei o componente sharedCNUI, depois eu olhei para os dois arquivos e depois eu praticamente copiei todo o conteúdo desse componente para o componente de comando provido pelo sharedCNUI. E é assim que eu criei essa experiência de busca custom enquanto ainda está levando o poder da busca de opções, mas para ser específico, o poder da busca de vectores.
Na prática
Próximo passo: escolha uma métrica (taxa de sucesso, tempo, retries ou conversão) e rode um experimento de 7 dias antes de escalar o padrão.