Repository navigation
feat: cache da data exploration por pergunta - #19
Open
Petroncini wants to merge 1 commit into
Open
Petroncini wants to merge 1 commit into
Petroncini wants to merge 1 commit into
Conversation
A cada falha de execução o retriever amplia o top_k e o nó de exploração recalculava as estatísticas de todas as tabelas, inclusive as já exploradas. Agora o estado guarda (cache_data_exploration) a contagem de linhas e a linha formatada de cada coluna já explorada, e cada execução só calcula tabelas/colunas novas. O texto enviado ao prompt é o mesmo de antes. - cache zerado por pergunta em construir_estado_inicial - granularidade por coluna (o exploration selector pode pedir colunas diferentes); exploração completa mantém a ordem original das colunas - funciona tanto com db_path quanto com db_engine Num banco do Spider 2 (Baseball, 26 tabelas), simulando 8/12/16 tabelas: 3.09s -> 1.23s de exploração (-60%).
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Resumo
A cada falha de execução o retriever amplia o
top_k(8 → 12 → 16 tabelas) e o nó de data exploration recalculava as estatísticas de todas as tabelas, inclusive as já exploradas na tentativa anterior. Foi uma das causas da latência subir de 13s para 31s por pergunta no BIRD.Agora o estado guarda
cache_data_exploration(contagem de linhas + linha formatada de cada coluna já explorada) e cada execução só calcula o que é novo. O texto enviado ao prompt é o mesmo de antes.construir_estado_inicial(o LangGraph mescla o input novo no estado salvo da mesmathread_id).db_pathe comdb_engine.Medição
Banco
Baseballdo Spider 2 (26 tabelas), simulando as 3 tentativas com 8/12/16 tabelas:Testes
tests/test_data_exploration.py: texto idêntico ao formatador sem cache, repetição sem reexplorar, expansão só das tabelas novas, só colunas faltantes, ordem original após exploração completa, cache serializável e não mutado, reset no estado inicial.