COMO USAR RAG E VECTOR STORES NO LANGFLOW (TUTORIAL COMPLETO)

1.74k views3567 WordsCopy TextShare
YAITEC Solutions
Fala, pessoal! No vídeo de hoje, vamos mergulhar fundo na utilização do RAG (Retrieval Augmented Gen...
Video Transcript:
fala pessoal tudo certo aqui é o João da IEC e hoje pessoal eu gostaria de dar seguimo aí a nossa série de vídeos sobre o leng flow né vídeo passado a gente viu um pouquinho sobre a instalação do leng Flow usando PIP usando docker e também utilizando o ambiente aí do Astra date stacks Beleza então no vídeo de hoje eu gostaria de apresentar para vocês dois conceitos muito importantes aí principalmente quando a gente tá lidando com dados que são os conceitos de hag e Vector Stories beleza Ah João o que seria a ser o hag Né o termo hag ele vem do inglês de retrieval augmented Generation que é basicamente o seguinte pessoal a gente utiliza hag quando a gente tem uma quantidade de dados muito maior do que os modelos de llm suportam como parâmetros de entrada então vamos supor que seu modelo suporta no máximo 496 tokens de entrada mas o seu documento tem o equivalente ali é bem mais do que isso com rag o que que é feito em vez de carregar esse documento totalmente na entrada do seu modelo ou no contexto do modelo que normalmente é um pouco maior que que é feito se carregam pequenos trechos desse documento e são os mais correlacionados de acordo com a busca do usuário beleza para fazer o então é necessário um outro componente que são as Vector Stories que armazenam os dados em formato vetorial para possibilitar o seguinte a partir da entrada do usuário a gente fazer uma conversão dos dados de texto para um formato vetorial para o formato de edss E então uma vez tendo os embeds da entrada do usuário e os embeds de um documento a gente consiga fazer uma operação matemática de correlação né que pode ser de vários tipos aí e dependendo da implementação então tem alguns bens famosos que pode ser a partir do Cosseno e a partir de uma correlação euclidiana também então existem diferentes tipos de implementação para essa correlação beleza e a Vector histó Ali vai influenciar o quê a qualidade com que esses dados são armazenados a questão da confiabilidade e a questão e de como os vetores estão Estão dispostos os e as arquiteturas suportadas E por aí vai partindo desse ponto inicial desses conceitos vamos pra prática aqui mostrar como é que funciona então partindo do ponto anterior e do do primeiro vídeo tutorial a gente tá aqui nessa página inicial do do L Flow E inicialize ele via PIP aqui mas poderia ser via DOC ou também no ambiente da datx Beleza então primeiro passo vou vir aqui em new Project e Blank Project beleza Então vamos lá galera pra gente fazer o hag primeiramente eu gostaria de mostrar um pouquinho a vocês alguns componentes aqui do L Flow podem ser úteis e como a gente então faria o r Beleza então vindo aqui em data eu vou pegar o componente de arquivo file beleza logo perceba que o formato de saída desse arquivo é data certo e também vou pegar aqui uma Vector Story beleza para iniciar vou começar com chroma DB qual é a vantagem do chrom DB é uma é uma base vetorial local então você não precisa ter nenhum serviço adicional rodando de antemão para executar o croma porém Existem algumas limitações também por isso né então você não tem porte de nenhuma outra eh plataforma ou ou aplicação seja também integração justamente pelo chroma se local tendo esse arquivo a gente consegue colocar os dados desse arquivo diretamente no no no componente do chroma por exemplo E aí como eu falei para vocês o arquivo tá em formato data mas eu preciso de em beds para colocar esses arquivos aqui dentro por isso que nos componentes de Vector ST vocês vão observar esse outro essa outra entrada esse outro parâmetro de entrada aqui de embed é justamente o modelo que vai fazer a conversão desse arquivo de entrada para o formato vetorial que a gente precisa para o cálculo de correlação desses textos Beleza então vamos aqui em bed certo V aqui em bed vamos até Open em bed vou conectar bom nesse ponto pess importante que a gente tenha uma chave da Open a aqui para fazer a utilização né do desses embeds no caso você pode criar seguindo o o passo a passo do primeiro vídeo ou você pode simplesmente copiar e colar aqui ou vem aqui adicionar nova variável credenti coloca um nome aqui e bota o valor aqui beleza então ambas as abordagens aí são possíveis e funcionam certo e lá o se só para exemplificar galera eu vou colocar um chat input aqui indicando o seguinte indicando que essa busca vetorial será dada a partir da entrada do usuário certo essa é uma possibilidade a outra é a seguinte eu gostaria de fazer a ingestão dos dados mas não gostaria de consultar agora por exemplo não tem problema então você não colocaria esse arquivo aqui de só deixaria o inest e o b e os dados sairiam aqui normalmente uma vez feito isso eu vou pedir aqui para que esses dados sejam persistentes Então vou salvar no ponto barra certo ou seja indicando que eu quero que salve no meu diretório atual bom uma vez feito isso eu posso definir o nome da Collection então lank Flow aqui por exemplo ilegal eu vou conectar isso aqui em um outro componente pessoal que é o passe data que que o pass data vai fazer vai pegar os dados de saída no formato de data e vai converter para um padrão dependendo do do formato de template nesse formato padrão aqui eu vou basicamente converter para um string tudo que for saindo daqui certo trechos de string E então vamos pegar agora o chat output só pra gente visualizar lembrando eu tô pesquisando aqui por agilidade mas também é possível buscar aqui ind aument output chat output beleza pronto vamos tentar executar isso aqui pessoal para ver o que que dá beleza ele reclamou aqui que eu não fiz o upload de nenhum arquivo no componente file faz sentido eu vou pessoal carregar aqui é um documento. pdf ok vou executar isso daqui todos os componentes rodaram aí bem rápido e falou que a saída foi construída com sucesso beleza posso pegar aqui um outro arquivo vamos pegar um outro arquivo aqui por exemplo certo vamos pegar esse aqui que é um histórico escolar por exemplo consigo rodar aqui Normalmente também certo e inclusive consigo visualizar e a saída né do modelo e consigo perceber o seguinte não houve saída aqui nos componentes ó tá vendo por quê Porque eu não coloquei nenhum parâmetro de busca vetorial então e vou colocar um número aqui por exemplo no no componente do playground Né tava rodando lá e diretamente nos componentes E aí Vocês conseguem observar o qu que já tem dado saindo por fez o cálculo da correlação viu que tem alguma coisa lá covid-19 e jogou aqui pra gente tá então aqui ele conseguiu pegar o número 2019 é aqu ele conseguiu pegar outras informações do do documento né tendo esse processo aqui feito tem um pequeno problema aqui em como esses dados estão organizados que é o seguinte da forma que tá feito eu tô carregando o documento todo em uma uma única Collection porém sem dividir esses dados em pedaços porque pra gente fazer um h que seja eficiente é necessário dividir os dados em pedaços senão o que que vai acontecer vou ter aqui poucos pedaços de dados para puxar de uma vez só e esses poucos pedaços quando a gente jogar num llm vai haver aí um consumo muito alto de token por exemplo Beleza então o que que pode ser feito pra gente dividir esses esses dados em pedaços a gente pode usar aqui ó um um componente de de de ajuda né de de help chamado split text que que o split text vai fazer ele vai pegar um um um componente data de entrada e vai dividir ele em chunks são chunks né galera é você dividir esse arquivo em pedaços de dados e o que seria o Chunk overlap Chunk overlap é o seguinte quando você divide esses pedaços Pode ser que algum pedacinho de informação eh fique restante na nas chunks anteriores você você pode pensar isso como se fossem listas de dados né então vamos supor que tem uma informação crucial que ficou numa lista anterior por isso que se usa o overlap para pegar aquela diferença jogar tanto na Chunk anterior quanto posterior para fazer a ingestão dos dados eu venho do split text em vez de vi de eh diretamente pelo file certo Então essa é uma opção Vamos jogar aqui então aqui já vieram outros dados certo eh bom uma vez feito isso a partir desses dados a gente consegue fazer nossos fluxos por exemplo tá e a gente consegue verificar aqui ó as as chunks Então a partir dessas chunks aqui a gente consegue trabalhar construindo mais informações Então vamos supor que você tem uma aplicação que recebe históricos escolares de estudantes e a partir desses históricos você ali como coordenador de curso por exemplo gostaria de consultar informações a partir da matrícula do nome enfim então eu vou dar uma melhorada aqui nesse nosso rag né Aliás o HG em si ele meio que já tá feito aqui porque a gente tá pegando ali os segmentos dos dados de acordo com a correlação do termo de entrada beleza vindo aqui nesses três botões a gente também tem mais parâmetros aqui que são avançados então vê lá que eu tenho até 10 resultados os 10 resultados mais correlatos de chunks mas se eu quisesse só dois por exemplo poderia trocar aqui e aplicar certo no caso eu vou manter aqui sei lá quatro Ah verdade vou deixar seis para que a gente tenha um bom volume de informações consigo por exemplo re executar isso aqui então eu já tenho um pouco menos de informações aqui beleza então aqui eu tenho as seis mais correlatas agora legal pessoal então completar esse fluxo que que tá faltando tá faltando o LM n Então vou pegar aqui por exemplo um Open Open e vou pegar um promt Afinal eu gostaria de ter um promp guiando O que é que o modelo deve fazer perceba que não temuma entrada PR por o PR aqui vai construo de um como que então para usar as variáveis do template do promp a gente usa essa sintaxe aqui com as duas Chaves vamos construir o seguinte exemplo aqui ó baseado nos dados dispostos em vou chamar aqui de dados histórico Universidade não só dados históric baseado nos dados dispostos em avaliar o desempenho do Estudante e fazer uma análise fazer uma análise disso em poucas palavras beleza galera vou aplicar aqui ó percebe que já surgiu aqui quem dados histórico por eu passei aqui no template só puxando um Gancho falando no no primeiro vídeo galera uma uma das grandes vantagens do leng Flow é que você consegue simplesmente entrar no no no código do componente e adaptar de acordo com a sua necessidade mais para frente a gente eu a gente vai fazer alguns vídeos exemplificando o riso ou seja fazendo nossos próprios componentes mas ainda não é o momento beleza Ou seja para qualquer aplicação que você necessite do L Flow hoje aí com com o chat GPT né e e e outros meios a gente consegue facilmente construir novos componentes isso aqui tá bom então um pass data eu vou passar os dados do histórico de João para cá e vou pegar esses dados vou conectar no no no input do meu componente de llm Então eu tenho um prompt tenho a chave tem a temperatura tem o nome do modelo tenho o shat output tenho um sistemazione colocar Qual o desempenho de eh qual o desempenho de João na universidade I colocar a matrícula mas vou colocar o nome aqui pra gente ver o que que acontece vai demorar um pouquinho porque ele tá fazendo o hag tá pegando ali as informações pegando as chunks então ele respondeu aqui pra gente ó eh João concluir o curso em 2023. 2 prazo regular o coeficiente ele calculou de forma errada por exemplo Ah mas por que isso por causa das chunks como a gente pegou chunks e relativamente pequenas ali talvez aumentando o overlap talvez aumentando a quantidade de chunks ou talvez utilizando um agente aqui especialista eaz operações matemáticas a gente tivesse um um desempenho melhor então aqui a gente consegue em resumo João teve um desempenho acadêmico excelente com notas consistentes então essa parte errada foi a de de reasoning por a gente não ter definido nenhuma parte de code intérprete aqui no nosso L Flow mas o rag tá funcionando ou seja ele tá pegando as informações aqui de forma bem assertiva e a partir disso gente a gente consegue brincar aqui então a gente e ó só para exemplificar isso eu vou aumentar um pouco o overlap vou aumentar pouco o tamanho das chunks e vou aumentar aqui também a quantidade de resultados para ver no que é que o desempenho que a gente consegue vou apagar ali a mensagem anterior acho que eu digitei errado o nome Universidade É mas não faz mal a busca vai funcionar então a gente tá usando ó percebe o seguinte galera quando eu aumentei ali a quantidade eh o tamanho do Chunk size ele veio precisamente com o cra correto né que é de fato O cra que eu obtive na universidade e além disso ele trouxe mais informações né mais disciplinas e etc por qu porque ele teve acesso a mais dados pessoal né então aqui em chunks V quanto mais dados ele teve teve acesso a mais informações Ah beleza João eu tava usando aqui o chroma cara mas eu quero agora partir para um ambiente de Deploy né então o o o l Flow é muito bem integrado com várias opções de Vector Stories que tem uma característica de serem mais enterprise né então o chroma aqui é legal pra gente prototipar tem o kedr também muito legal pra gente testar existem outras outros bancos vetoriais né outras Vector stor também que a gente pode testar esse sisteminha aqui de hag beleza Porém Aqui a gente validou o funcionamento para finalizar pessoal eu queria mostrar para vocês como fazer esse processo em um componente eh do Astra DB beleza que é aí a Vector Story da date stacks parceira do L Flow Então vou aqui no site da extra.
dat stack V eu já tenho a minha base de dados criada mas senão você pode criar um aqui legal que eles oferecem 200 de crédito para você testar então é bem tranquilo Beleza então consigo vir aqui galera em Create Database se eu não tiver uma ou consigo utilizar a minha E aí você seleciona como vetorial certo uma vez construído o seu seu banco de dados aqui no Extra datx você vem aqui em data Explorer e você pode criar então um coleção de dados e Vector enable Collection porque a gente precisa que seja compatível com vetores supor Ed que nada mais são do que vetores vetores você pode pensar basicamente como a gigantes ou seja uma lista ali de números basicamente isso então vamos aqui Collection name vou dar o nome de L Flow underline teste porque ele não suporta o traço Então vou vir aqui com com underline mesmo beleza no embed Generation mod você pode usar o disponibilizado pela própria date STX que é acelerado por GPU mas eu vou construir aqui o meu próprio já que eu tô usando o open Ed lá vou colocar aqui o formato compatível com o open beds que é 1536 e a métrica de similaridade e também é possível escolher aqui então cossenoidal produto escalar ou euclidiano aí vocês podem dar uma pesquisada mais a fundo sobre isso E aí eu venho em Create Collection P vai demorar aqui alguns segundos mas já vamos pegando lá o componente e no L Flow Beleza então vamos vir aqui em e Vector Stories vamos aqui no Astra DB tá beleza Vamos nas chunks eu vou carregar no mesmo local inest data vou colocar em embeds aqui e vou colocar a mensagem é em se input do mesmo jeito percebe que tem dois parâmetros aqui que a gente tem que alimentar que é o DB token né que é um token específico da sua base de dados Então posso vir aqui genere to posso criar uma variável colocar isso daí ou posso só colar aqui direto como Secret né e no endp eu venho aqui ó C end Point Collection name é o nome lá da nome da colection que a gente criou que é L Flow under test aguard aqui termin de ser criada e pronto a gente já trocou de R aqui de chroma para o as DB bem simples bem rápido e é isso vamos aguardar aqui o Deploy da da da nossa Collection aqui a página então aqui Teoricamente a gente já pode utilizar vamos ver aqui como que vai ser saída Lembrando que agora em vez de salvar os dados localmente vai fazer o ingestion desses dados aí e lá no Astra DB beleza bom a gente teve um errinho aí buildando o componente aparentemente e beleza não sei se foi algo relacionado a chave Vamos eu saí lá da saída só pra gente acompanhar aqui componente a componente talvez tenha sido a minha conexão que caiu É acho que foi isso mesmo galera então aqui ele trouxe e claro como é um llm tem uma Sid diferente nunca vai vir a mesma resposta mas trouxe também uma ótima análise dos dados aí Lembrando que a quantidade de chunks que eu tô passando aqui tem que ser ajustado também né só tá com quatro vou colocar 10 aqui por exemplo beleza Ah eu ainda tinha passado eh prompt ruim mas vamos aqui de novo quau o desempenho Qual o desempenho de João é um pouco mais lento já que a gente tá colocando os dados aí na nuvem né porém depois eu V vou mostrar para vocês que uma vez colocado os dados também eles persistem normalmente Então aqui tem mais informações também bom como eu já fiz o ingestion dos dados algo bem legal aqui no L Flow é a modularidade então pô se eu já coloquei dado lá não preciso mais colocar dado eu preciso o quê pegar de volta esses dados beleza para pegar de volta eu só preciso dos embeds para que esse modelo de embeds para pegar a entrada que tá em e eh eh perdão pegar a saída do componente do Astra que tá em Bedin e converter de novo para um formato compatível com texto fazer a mesma pergunta aqui só mais uma vez pra gente finalizar e mostrar esse acho que eu acabei clicando duas vezes aqui sem querer mas só pra gente validar a questão da saída certo bom ele trouxe mais uma vez aqui a questão da an desses dados legal esse vídeo aqui foi feito na versão 1. 0.
Related Videos
COMO USAR O LANGFLOW DO ZERO - #01 INSTALAÇÃO E CONFIGURAÇÃO  (TUTORIAL)
18:28
COMO USAR O LANGFLOW DO ZERO - #01 INSTALA...
YAITEC Solutions
1,367 views
Step by step no-code RAG application using Langflow.
40:52
Step by step no-code RAG application using...
Underfitted
18,631 views
Fine Tuning, RAG e Prompt Engineering: Qual é melhor? e Quando Usar?
24:31
Fine Tuning, RAG e Prompt Engineering: Qua...
tech mumus
3,233 views
Fomos para O MAIOR evento de STARTUPS do BRASIL!!!! | YAITEC Vlogs EP.01
9:30
Fomos para O MAIOR evento de STARTUPS do B...
YAITEC Solutions
1,075 views
DOMINE OS AGENTES COM IA: 5 MODELOS DE FLOWS ESSENCIAIS
11:08
DOMINE OS AGENTES COM IA: 5 MODELOS DE FLO...
YAITEC Solutions
240 views
Local RAG with Llama 3.1 for PDFs | Private Chat with Your Documents using LangChain & Streamlit
42:17
Local RAG with Llama 3.1 for PDFs | Privat...
Venelin Valkov
7,290 views
RAG + Langchain Python Project: Easy AI/Chat For Your Docs
16:42
RAG + Langchain Python Project: Easy AI/Ch...
pixegami
163,909 views
O Poder do Contexto Langflow & CrewAi com Guilherme Janku Achcar no Mundo Automatik®
2:16:24
O Poder do Contexto Langflow & CrewAi com ...
Mundo AUTOMATIK
1,878 views
GraphRAG: The Most Incredible RAG Strategy Revealed
10:38
GraphRAG: The Most Incredible RAG Strategy...
Mervin Praison
31,357 views
Como usar o GPT com seus próprios dados?
27:42
Como usar o GPT com seus próprios dados?
Asimov Academy
69,623 views
Intro to RAG for AI (Retrieval Augmented Generation)
14:31
Intro to RAG for AI (Retrieval Augmented G...
Matthew Berman
52,082 views
Llama3 Full Rag - API with Ollama, LangChain and ChromaDB with Flask API and PDF upload
47:09
Llama3 Full Rag - API with Ollama, LangCha...
Fast and Simple Development
37,890 views
Langchain na prática: com Gabriel Almeida criador do Langflow
2:14:50
Langchain na prática: com Gabriel Almeida ...
GPT Topics
2,204 views
Build Anything with LangGraph Studio, Here’s How
16:38
Build Anything with LangGraph Studio, Here...
David Ondrej
6,692 views
Build a RAG app in minutes using Langflow OpenAI and Azure | StudioFP101
16:12
Build a RAG app in minutes using Langflow ...
Microsoft Developer
35,630 views
Building Production-Ready RAG Applications: Jerry Liu
18:35
Building Production-Ready RAG Applications...
AI Engineer
301,503 views
Como Usar CrewAI com Programação Visual Usando LangFlow | Incrívelmente Fácil #langflow #iadevs
16:18
Como Usar CrewAI com Programação Visual Us...
Inteligência Mil Grau
3,206 views
Langchain - Crie sua Inteligência Artificial LLM
43:29
Langchain - Crie sua Inteligência Artifici...
Hashtag Programação
9,739 views
Combine MULTIPLE LLMs to build an AI API! (super simple!!!) Langflow | LangChain | Groq | OpenAI
36:31
Combine MULTIPLE LLMs to build an AI API! ...
Code with Ania Kubów
101,253 views
Langflow, Maritalk, Astra DB e NVidia - Criando Fluxos RAG e customizando componentes
9:46
Langflow, Maritalk, Astra DB e NVidia - Cr...
Samuel Matioli
325 views
Copyright © 2024. Made with ♥ in London by YTScribe.com