AutoRAG 0.2.0__tar.gz → 0.2.1__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {autorag-0.2.0 → autorag-0.2.1}/AutoRAG.egg-info/PKG-INFO +2 -1
- {autorag-0.2.0 → autorag-0.2.1}/AutoRAG.egg-info/SOURCES.txt +6 -0
- {autorag-0.2.0 → autorag-0.2.1}/AutoRAG.egg-info/requires.txt +1 -0
- {autorag-0.2.0 → autorag-0.2.1}/PKG-INFO +2 -1
- autorag-0.2.1/autorag/VERSION +1 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagecompressor/__init__.py +1 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagecompressor/base.py +9 -0
- autorag-0.2.1/autorag/nodes/passagecompressor/longllmlingua.py +87 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/queryexpansion/__init__.py +1 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/queryexpansion/base.py +21 -19
- autorag-0.2.1/autorag/nodes/queryexpansion/hyde.py +31 -0
- autorag-0.2.1/autorag/nodes/queryexpansion/multi_query_expansion.py +52 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/queryexpansion/query_decompose.py +23 -25
- {autorag-0.2.0 → autorag-0.2.1}/autorag/strategy.py +11 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/support.py +2 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/api_spec/autorag.nodes.passagecompressor.rst +8 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/api_spec/autorag.nodes.queryexpansion.rst +8 -0
- autorag-0.2.1/docs/source/nodes/passage_compressor/longllmlingua.md +25 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/passage_compressor/passage_compressor.md +1 -0
- autorag-0.2.1/docs/source/nodes/query_expansion/hyde.md +27 -0
- autorag-0.2.1/docs/source/nodes/query_expansion/multi_query_expansion.md +30 -0
- autorag-0.2.1/docs/source/nodes/query_expansion/query_decompose.md +26 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/query_expansion/query_expansion.md +1 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/optimization/strategies.md +18 -1
- {autorag-0.2.0 → autorag-0.2.1}/requirements.txt +1 -0
- {autorag-0.2.0 → autorag-0.2.1}/sample_config/full.yaml +9 -1
- autorag-0.2.1/tests/autorag/nodes/passagecompressor/test_longllmlingua.py +29 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/queryexpansion/test_hyde.py +9 -6
- autorag-0.2.1/tests/autorag/nodes/queryexpansion/test_multi_query_expansion.py +27 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/queryexpansion/test_query_decompose.py +9 -6
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/queryexpansion/test_query_expansion_run.py +38 -9
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/test_strategy.py +13 -1
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/full.yaml +4 -2
- autorag-0.2.0/autorag/VERSION +0 -1
- autorag-0.2.0/autorag/nodes/queryexpansion/hyde.py +0 -40
- autorag-0.2.0/docs/source/nodes/query_expansion/hyde.md +0 -22
- autorag-0.2.0/docs/source/nodes/query_expansion/query_decompose.md +0 -22
- {autorag-0.2.0 → autorag-0.2.1}/.github/dependabot.yml +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/.github/workflows/publish.yml +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/.github/workflows/sphinx.yml +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/.github/workflows/test.yml +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/.gitignore +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/AutoRAG.egg-info/dependency_links.txt +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/AutoRAG.egg-info/entry_points.txt +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/AutoRAG.egg-info/top_level.txt +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/CODE_OF_CONDUCT.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/CONTRIBUTING.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/LICENSE +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/README.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/__init__.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/cli.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/dashboard.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/data/__init__.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/data/corpus/__init__.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/data/corpus/langchain.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/data/corpus/llama_index.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/data/qacreation/__init__.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/data/qacreation/base.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/data/qacreation/llama_index.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/data/qacreation/llama_index_default_prompt.txt +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/data/qacreation/ragas.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/data/qacreation/simple.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/data/utils/__init__.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/data/utils/util.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/deploy.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/evaluate/__init__.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/evaluate/generation.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/evaluate/metric/__init__.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/evaluate/metric/g_eval_prompts/coh_detailed.txt +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/evaluate/metric/g_eval_prompts/con_detailed.txt +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/evaluate/metric/g_eval_prompts/flu_detailed.txt +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/evaluate/metric/g_eval_prompts/rel_detailed.txt +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/evaluate/metric/generation.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/evaluate/metric/retrieval.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/evaluate/metric/retrieval_contents.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/evaluate/metric/util.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/evaluate/retrieval.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/evaluate/retrieval_contents.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/evaluate/util.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/evaluator.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/node_line.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/__init__.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/generator/__init__.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/generator/base.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/generator/llama_index_llm.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/generator/openai_llm.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/generator/run.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/generator/vllm.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passageaugmenter/__init__.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passageaugmenter/base.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passageaugmenter/pass_passage_augmenter.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passageaugmenter/prev_next_augmenter.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passageaugmenter/run.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagecompressor/pass_compressor.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagecompressor/refine.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagecompressor/run.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagecompressor/tree_summarize.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagefilter/__init__.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagefilter/base.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagefilter/pass_passage_filter.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagefilter/percentile_cutoff.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagefilter/recency.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagefilter/run.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagefilter/similarity_percentile_cutoff.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagefilter/similarity_threshold_cutoff.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagefilter/threshold_cutoff.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagereranker/__init__.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagereranker/base.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagereranker/cohere.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagereranker/colbert.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagereranker/flag_embedding.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagereranker/flag_embedding_llm.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagereranker/jina.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagereranker/koreranker.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagereranker/monot5.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagereranker/pass_reranker.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagereranker/rankgpt.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagereranker/run.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagereranker/sentence_transformer.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagereranker/tart/__init__.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagereranker/tart/modeling_enc_t5.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagereranker/tart/tart.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagereranker/tart/tokenization_enc_t5.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagereranker/time_reranker.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/passagereranker/upr.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/promptmaker/__init__.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/promptmaker/base.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/promptmaker/fstring.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/promptmaker/long_context_reorder.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/promptmaker/run.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/queryexpansion/pass_query_expansion.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/queryexpansion/run.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/retrieval/__init__.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/retrieval/base.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/retrieval/bm25.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/retrieval/hybrid_cc.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/retrieval/hybrid_dbsf.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/retrieval/hybrid_rrf.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/retrieval/hybrid_rsf.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/retrieval/run.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/nodes/retrieval/vectordb.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/schema/__init__.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/schema/module.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/schema/node.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/utils/__init__.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/utils/preprocess.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/utils/util.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/autorag/web.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/Makefile +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/make.bat +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/requirements.txt +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/_static/data_creation.png +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/_static/data_folder.png +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/_static/dcg.png +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/_static/f1_score.png +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/_static/map.png +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/_static/mrr.png +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/_static/ndcg.png +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/_static/ndcg_formula.png +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/_static/node_folder.png +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/_static/node_line_folder.png +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/_static/node_line_summary.png +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/_static/node_lines.png +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/_static/node_summary.png +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/_static/project_folder_example.png +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/_static/project_folders.png +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/_static/resources_folder.png +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/_static/roadmap/RAG_paradigms.png +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/_static/roadmap/advanced_RAG.png +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/_static/roadmap/cycle.png +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/_static/roadmap/merger.png +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/_static/roadmap/node_line_modular.png +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/_static/roadmap/policy.png +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/_static/samsung_sundae.jpeg +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/_static/trial_folder.png +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/_static/trial_json.png +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/_static/trial_summary.png +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/_static/web_interface.png +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/api_spec/autorag.data.corpus.rst +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/api_spec/autorag.data.qacreation.rst +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/api_spec/autorag.data.rst +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/api_spec/autorag.data.utils.rst +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/api_spec/autorag.evaluate.metric.rst +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/api_spec/autorag.evaluate.rst +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/api_spec/autorag.nodes.generator.rst +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/api_spec/autorag.nodes.passageaugmenter.rst +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/api_spec/autorag.nodes.passagefilter.rst +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/api_spec/autorag.nodes.passagereranker.rst +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/api_spec/autorag.nodes.passagereranker.tart.rst +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/api_spec/autorag.nodes.promptmaker.rst +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/api_spec/autorag.nodes.retrieval.rst +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/api_spec/autorag.nodes.rst +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/api_spec/autorag.rst +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/api_spec/autorag.schema.rst +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/api_spec/autorag.utils.rst +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/api_spec/modules.rst +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/conf.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/data_creation/data_format.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/data_creation/ragas.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/data_creation/tutorial.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/deploy/api_endpoint.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/deploy/web.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/evaluate_metrics/generation.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/evaluate_metrics/retrieval.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/evaluate_metrics/retrieval_contents.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/index.rst +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/install.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/local_model.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/generator/generator.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/generator/llama_index_llm.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/generator/openai_llm.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/generator/vllm.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/index.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/passage_augmenter/passage_augmenter.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/passage_augmenter/prev_next_augmenter.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/passage_compressor/refine.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/passage_compressor/tree_summarize.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/passage_filter/passage_filter.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/passage_filter/percentile_cutoff.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/passage_filter/recency_filter.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/passage_filter/similarity_percentile_cutoff.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/passage_filter/similarity_threshold_cutoff.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/passage_filter/threshold_cutoff.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/passage_reranker/cohere.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/passage_reranker/colbert.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/passage_reranker/flag_embedding_llm_reranker.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/passage_reranker/flag_embedding_reranker.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/passage_reranker/jina_reranker.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/passage_reranker/koreranker.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/passage_reranker/monot5.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/passage_reranker/passage_reranker.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/passage_reranker/rankgpt.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/passage_reranker/sentence_transformer_reranker.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/passage_reranker/tart.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/passage_reranker/time_reranker.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/passage_reranker/upr.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/prompt_maker/fstring.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/prompt_maker/long_context_reorder.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/prompt_maker/prompt_maker.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/retrieval/bm25.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/retrieval/hybrid_cc.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/retrieval/hybrid_dbsf.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/retrieval/hybrid_rrf.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/retrieval/hybrid_rsf.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/retrieval/retrieval.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/nodes/retrieval/vectordb.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/optimization/custom_config.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/optimization/folder_structure.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/optimization/optimization.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/optimization/sample_full_config.yaml +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/roadmap/modular_rag.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/structure.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/troubleshooting.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/docs/source/tutorial.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/pyproject.toml +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/sample_config/compact_local.yaml +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/sample_config/compact_openai.yaml +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/sample_config/config_korean.yaml +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/sample_config/extracted_sample.yaml +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/sample_config/simple_local.yaml +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/sample_config/simple_openai.yaml +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/sample_dataset/README.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/sample_dataset/eli5/load_eli5_dataset.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/sample_dataset/msmarco/load_msmarco_dataset.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/sample_dataset/triviaqa/load_triviaqa_dataset.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/setup.cfg +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/data/corpus/test_base.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/data/corpus/test_langchain.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/data/corpus/test_llama_index_corpus.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/data/qacreation/test_base_qacreation.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/data/qacreation/test_llama_index_qacreation.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/data/qacreation/test_ragas_qa_creation.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/data/qacreation/test_simple.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/evaluate/metric/test_generation_metric.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/evaluate/metric/test_retrieval_contents_metric.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/evaluate/metric/test_retrieval_metric.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/evaluate/test_evaluate_util.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/evaluate/test_generation_evaluate.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/evaluate/test_retrieval_contents_evaluate.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/evaluate/test_retrieval_evaluate.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/generator/test_generator_base.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/generator/test_llama_index_llm.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/generator/test_openai.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/generator/test_run_generator_node.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/generator/test_vllm.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passageaugmenter/test_base_passage_augmenter.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passageaugmenter/test_pass_passage_augmenter.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passageaugmenter/test_prev_next_augmenter.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passageaugmenter/test_run_passage_augmenter.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passagecompressor/test_base_passage_compressor.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passagecompressor/test_pass_compressor.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passagecompressor/test_refine.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passagecompressor/test_run_passage_compressor_node.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passagecompressor/test_tree_summarize.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passagefilter/test_pass_passage_filter.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passagefilter/test_passage_filter_base.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passagefilter/test_passage_filter_run.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passagefilter/test_percentile_cutoff.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passagefilter/test_recency_filter.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passagefilter/test_similarity_percentile_cutoff.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passagefilter/test_similarity_threshold_cutoff.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passagefilter/test_threshold_cutoff.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passagereranker/test_cohere_reranker.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passagereranker/test_colbert_reranker.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passagereranker/test_flag_embedding.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passagereranker/test_flag_embedding_llm.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passagereranker/test_jina_reranker.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passagereranker/test_koreranker.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passagereranker/test_monot5.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passagereranker/test_pass_reranker.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passagereranker/test_passage_reranker_base.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passagereranker/test_passage_reranker_run.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passagereranker/test_rankgpt.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passagereranker/test_sentence_transformer.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passagereranker/test_tart.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passagereranker/test_time_reranker.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/passagereranker/test_upr.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/promptmaker/test_fstring.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/promptmaker/test_long_context_reorder.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/promptmaker/test_prompt_maker_base.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/promptmaker/test_prompt_maker_run.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/queryexpansion/test_pass_query_expansion.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/queryexpansion/test_query_expansion_base.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/retrieval/test_bm25.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/retrieval/test_hybrid_base.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/retrieval/test_hybrid_cc.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/retrieval/test_hybrid_dbsf.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/retrieval/test_hybrid_rrf.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/retrieval/test_hybrid_rsf.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/retrieval/test_retrieval_base.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/retrieval/test_run_retrieval_node.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/nodes/retrieval/test_vectordb.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/schema/test_module_schema.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/schema/test_node_schema.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/test_cli.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/test_dashboard.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/test_deploy.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/test_evaluator.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/test_support.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/test_web.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/utils/test_preprocess.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/autorag/utils/test_util.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/conftest.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/delete_tests.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/mock.py +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/requirements.txt +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/README.md +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/corpus_data_sample.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/data_creation/raw_dir/sample1.txt +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/data_creation/raw_dir/sample2.txt +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/data_creation/raw_dir/sample3.txt +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/qa_data_sample.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/qa_gen_prompts/prompt1.txt +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/qa_gen_prompts/prompt2.txt +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/qa_gen_prompts/prompt3.txt +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/qa_test_data_sample.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/config.yaml +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/post_retrieve_node_line/generator/0.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/post_retrieve_node_line/generator/1.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/post_retrieve_node_line/generator/2.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/post_retrieve_node_line/generator/3.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/post_retrieve_node_line/generator/4.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/post_retrieve_node_line/generator/5.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/post_retrieve_node_line/generator/best_5.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/post_retrieve_node_line/generator/summary.csv +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/post_retrieve_node_line/prompt_maker/0.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/post_retrieve_node_line/prompt_maker/1.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/post_retrieve_node_line/prompt_maker/best_0.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/post_retrieve_node_line/prompt_maker/summary.csv +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/post_retrieve_node_line/summary.csv +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/0.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/1.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/2.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/best_0.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/summary.csv +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/pre_retrieve_node_line/summary.csv +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/retrieve_node_line/passage_compressor/0.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/retrieve_node_line/passage_compressor/best_0.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/retrieve_node_line/passage_compressor/summary.csv +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/retrieve_node_line/passage_reranker/0.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/retrieve_node_line/passage_reranker/1.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/retrieve_node_line/passage_reranker/best_0.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/retrieve_node_line/passage_reranker/summary.csv +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/retrieve_node_line/retrieval/0.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/retrieve_node_line/retrieval/1.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/retrieve_node_line/retrieval/best_0.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/retrieve_node_line/retrieval/summary.csv +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/retrieve_node_line/summary.csv +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/0/summary.csv +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/1/config.yaml +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/0.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/1.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/2.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/best_0.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/summary.csv +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/1/pre_retrieve_node_line/summary.csv +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/1/retrieve_node_line/passage_filter/0.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/1/retrieve_node_line/passage_reranker/0.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/1/retrieve_node_line/passage_reranker/1.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/1/retrieve_node_line/passage_reranker/best_0.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/1/retrieve_node_line/passage_reranker/summary.csv +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/1/retrieve_node_line/retrieval/0.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/1/retrieve_node_line/retrieval/1.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/1/retrieve_node_line/retrieval/best_0.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/1/retrieve_node_line/retrieval/summary.csv +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/2/config.yaml +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/2/post_retrieve_node_line/prompt_maker/0.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/0.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/1.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/2.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/best_0.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/summary.csv +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/2/pre_retrieve_node_line/summary.csv +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/2/retrieve_node_line/passage_compressor/0.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/2/retrieve_node_line/passage_compressor/best_0.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/2/retrieve_node_line/passage_compressor/summary.csv +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/2/retrieve_node_line/passage_reranker/0.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/2/retrieve_node_line/passage_reranker/1.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/2/retrieve_node_line/passage_reranker/best_0.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/2/retrieve_node_line/passage_reranker/summary.csv +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/2/retrieve_node_line/retrieval/0.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/2/retrieve_node_line/retrieval/1.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/2/retrieve_node_line/retrieval/best_0.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/2/retrieve_node_line/retrieval/summary.csv +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/2/retrieve_node_line/summary.csv +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/3/config.yaml +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/best.yaml +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/data/corpus.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/data/qa.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/resources/bm25_porter_stemmer.pkl +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/resources/chroma/6595d304-5270-4d9f-a267-c191366804ce/data_level0.bin +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/resources/chroma/6595d304-5270-4d9f-a267-c191366804ce/header.bin +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/resources/chroma/6595d304-5270-4d9f-a267-c191366804ce/length.bin +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/resources/chroma/6595d304-5270-4d9f-a267-c191366804ce/link_lists.bin +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/resources/chroma/chroma.sqlite3 +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/result_project/trial.json +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/sample_contents_nqa.csv +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/sample_project/data/corpus.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/sample_project/data/qa.parquet +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/sample_project/resources/bm25_gpt2.pkl +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/sample_project/resources/bm25_porter_stemmer.pkl +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/simple.yaml +0 -0
- {autorag-0.2.0 → autorag-0.2.1}/tests/resources/test_bm25_retrieval.pkl +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: AutoRAG
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.1
|
|
4
4
|
Summary: Automatically Evaluate RAG pipelines with your own data. Find optimal structure for new RAG product.
|
|
5
5
|
Author-email: Marker-Inc <vkehfdl1@gmail.com>
|
|
6
6
|
License: Apache License
|
|
@@ -250,6 +250,7 @@ Requires-Dist: FlagEmbedding
|
|
|
250
250
|
Requires-Dist: ragas
|
|
251
251
|
Requires-Dist: ray
|
|
252
252
|
Requires-Dist: kiwipiepy
|
|
253
|
+
Requires-Dist: llmlingua
|
|
253
254
|
Requires-Dist: llama-index>=0.10.1
|
|
254
255
|
Requires-Dist: llama-index-core>=0.10.1
|
|
255
256
|
Requires-Dist: llama-index-embeddings-openai
|
|
@@ -65,6 +65,7 @@ autorag/nodes/passageaugmenter/prev_next_augmenter.py
|
|
|
65
65
|
autorag/nodes/passageaugmenter/run.py
|
|
66
66
|
autorag/nodes/passagecompressor/__init__.py
|
|
67
67
|
autorag/nodes/passagecompressor/base.py
|
|
68
|
+
autorag/nodes/passagecompressor/longllmlingua.py
|
|
68
69
|
autorag/nodes/passagecompressor/pass_compressor.py
|
|
69
70
|
autorag/nodes/passagecompressor/refine.py
|
|
70
71
|
autorag/nodes/passagecompressor/run.py
|
|
@@ -105,6 +106,7 @@ autorag/nodes/promptmaker/run.py
|
|
|
105
106
|
autorag/nodes/queryexpansion/__init__.py
|
|
106
107
|
autorag/nodes/queryexpansion/base.py
|
|
107
108
|
autorag/nodes/queryexpansion/hyde.py
|
|
109
|
+
autorag/nodes/queryexpansion/multi_query_expansion.py
|
|
108
110
|
autorag/nodes/queryexpansion/pass_query_expansion.py
|
|
109
111
|
autorag/nodes/queryexpansion/query_decompose.py
|
|
110
112
|
autorag/nodes/queryexpansion/run.py
|
|
@@ -195,6 +197,7 @@ docs/source/nodes/generator/openai_llm.md
|
|
|
195
197
|
docs/source/nodes/generator/vllm.md
|
|
196
198
|
docs/source/nodes/passage_augmenter/passage_augmenter.md
|
|
197
199
|
docs/source/nodes/passage_augmenter/prev_next_augmenter.md
|
|
200
|
+
docs/source/nodes/passage_compressor/longllmlingua.md
|
|
198
201
|
docs/source/nodes/passage_compressor/passage_compressor.md
|
|
199
202
|
docs/source/nodes/passage_compressor/refine.md
|
|
200
203
|
docs/source/nodes/passage_compressor/tree_summarize.md
|
|
@@ -221,6 +224,7 @@ docs/source/nodes/prompt_maker/fstring.md
|
|
|
221
224
|
docs/source/nodes/prompt_maker/long_context_reorder.md
|
|
222
225
|
docs/source/nodes/prompt_maker/prompt_maker.md
|
|
223
226
|
docs/source/nodes/query_expansion/hyde.md
|
|
227
|
+
docs/source/nodes/query_expansion/multi_query_expansion.md
|
|
224
228
|
docs/source/nodes/query_expansion/query_decompose.md
|
|
225
229
|
docs/source/nodes/query_expansion/query_expansion.md
|
|
226
230
|
docs/source/nodes/retrieval/bm25.md
|
|
@@ -282,6 +286,7 @@ tests/autorag/nodes/passageaugmenter/test_pass_passage_augmenter.py
|
|
|
282
286
|
tests/autorag/nodes/passageaugmenter/test_prev_next_augmenter.py
|
|
283
287
|
tests/autorag/nodes/passageaugmenter/test_run_passage_augmenter.py
|
|
284
288
|
tests/autorag/nodes/passagecompressor/test_base_passage_compressor.py
|
|
289
|
+
tests/autorag/nodes/passagecompressor/test_longllmlingua.py
|
|
285
290
|
tests/autorag/nodes/passagecompressor/test_pass_compressor.py
|
|
286
291
|
tests/autorag/nodes/passagecompressor/test_refine.py
|
|
287
292
|
tests/autorag/nodes/passagecompressor/test_run_passage_compressor_node.py
|
|
@@ -314,6 +319,7 @@ tests/autorag/nodes/promptmaker/test_long_context_reorder.py
|
|
|
314
319
|
tests/autorag/nodes/promptmaker/test_prompt_maker_base.py
|
|
315
320
|
tests/autorag/nodes/promptmaker/test_prompt_maker_run.py
|
|
316
321
|
tests/autorag/nodes/queryexpansion/test_hyde.py
|
|
322
|
+
tests/autorag/nodes/queryexpansion/test_multi_query_expansion.py
|
|
317
323
|
tests/autorag/nodes/queryexpansion/test_pass_query_expansion.py
|
|
318
324
|
tests/autorag/nodes/queryexpansion/test_query_decompose.py
|
|
319
325
|
tests/autorag/nodes/queryexpansion/test_query_expansion_base.py
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: AutoRAG
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.1
|
|
4
4
|
Summary: Automatically Evaluate RAG pipelines with your own data. Find optimal structure for new RAG product.
|
|
5
5
|
Author-email: Marker-Inc <vkehfdl1@gmail.com>
|
|
6
6
|
License: Apache License
|
|
@@ -250,6 +250,7 @@ Requires-Dist: FlagEmbedding
|
|
|
250
250
|
Requires-Dist: ragas
|
|
251
251
|
Requires-Dist: ray
|
|
252
252
|
Requires-Dist: kiwipiepy
|
|
253
|
+
Requires-Dist: llmlingua
|
|
253
254
|
Requires-Dist: llama-index>=0.10.1
|
|
254
255
|
Requires-Dist: llama-index-core>=0.10.1
|
|
255
256
|
Requires-Dist: llama-index-embeddings-openai
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.2.1
|
|
@@ -46,6 +46,15 @@ def passage_compressor_node(func):
|
|
|
46
46
|
)
|
|
47
47
|
del llm
|
|
48
48
|
result = list(map(lambda x: [x], result))
|
|
49
|
+
elif func.__name__ == 'longllmlingua':
|
|
50
|
+
result = func(
|
|
51
|
+
queries=queries,
|
|
52
|
+
contents=retrieved_contents,
|
|
53
|
+
scores=retrieve_scores,
|
|
54
|
+
ids=retrieved_ids,
|
|
55
|
+
**kwargs
|
|
56
|
+
)
|
|
57
|
+
result = list(map(lambda x: [x], result))
|
|
49
58
|
elif func.__name__ == 'pass_compressor':
|
|
50
59
|
result = func(contents=retrieved_contents)
|
|
51
60
|
else:
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
from typing import List, Optional
|
|
2
|
+
|
|
3
|
+
import torch
|
|
4
|
+
from llmlingua import PromptCompressor
|
|
5
|
+
|
|
6
|
+
from autorag.nodes.passagecompressor.base import passage_compressor_node
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@passage_compressor_node
|
|
10
|
+
def longllmlingua(queries: List[str],
|
|
11
|
+
contents: List[List[str]],
|
|
12
|
+
scores,
|
|
13
|
+
ids,
|
|
14
|
+
model_name: str = "NousResearch/Llama-2-7b-hf",
|
|
15
|
+
instructions: Optional[str] = None,
|
|
16
|
+
target_token: int = 300,
|
|
17
|
+
**kwargs,
|
|
18
|
+
) -> List[str]:
|
|
19
|
+
"""
|
|
20
|
+
Compresses the retrieved texts using LongLLMLingua.
|
|
21
|
+
For more information, visit https://github.com/microsoft/LLMLingua.
|
|
22
|
+
|
|
23
|
+
:param queries: The queries for retrieved passages.
|
|
24
|
+
:param contents: The contents of retrieved passages.
|
|
25
|
+
:param scores: The scores of retrieved passages.
|
|
26
|
+
Do not use in this function, so you can pass an empty list.
|
|
27
|
+
:param ids: The ids of retrieved passages.
|
|
28
|
+
Do not use in this function, so you can pass an empty list.
|
|
29
|
+
:param model_name: The model name to use for compression.
|
|
30
|
+
Default is "NousResearch/Llama-2-7b-hf".
|
|
31
|
+
:param instructions: The instructions for compression.
|
|
32
|
+
Default is None. When it is None, it will use default instructions.
|
|
33
|
+
:param target_token: The target token for compression.
|
|
34
|
+
Default is 300.
|
|
35
|
+
:param kwargs: Additional keyword arguments.
|
|
36
|
+
:return: The list of compressed texts.
|
|
37
|
+
"""
|
|
38
|
+
if instructions is None:
|
|
39
|
+
instructions = "Given the context, please answer the final question"
|
|
40
|
+
llm_lingua = PromptCompressor(
|
|
41
|
+
model_name=model_name,
|
|
42
|
+
)
|
|
43
|
+
results = [llmlingua_pure(query, contents_, llm_lingua, instructions, target_token, **kwargs)
|
|
44
|
+
for query, contents_ in zip(queries, contents)]
|
|
45
|
+
|
|
46
|
+
del llm_lingua
|
|
47
|
+
if torch.cuda.is_available():
|
|
48
|
+
torch.cuda.empty_cache()
|
|
49
|
+
|
|
50
|
+
return results
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
def llmlingua_pure(query: str,
|
|
54
|
+
contents: List[str],
|
|
55
|
+
llm_lingua: PromptCompressor,
|
|
56
|
+
instructions: str,
|
|
57
|
+
target_token: int = 300,
|
|
58
|
+
**kwargs,
|
|
59
|
+
) -> str:
|
|
60
|
+
"""
|
|
61
|
+
Return the compressed text.
|
|
62
|
+
|
|
63
|
+
:param query: The query for retrieved passages.
|
|
64
|
+
:param contents: The contents of retrieved passages.
|
|
65
|
+
:param llm_lingua: The llm instance that will be used to compress.
|
|
66
|
+
:param instructions: The instructions for compression.
|
|
67
|
+
:param target_token: The target token for compression.
|
|
68
|
+
Default is 300.
|
|
69
|
+
:param kwargs: Additional keyword arguments.
|
|
70
|
+
:return: The compressed text.
|
|
71
|
+
"""
|
|
72
|
+
# split by "\n\n" (recommended by LongLLMLingua authors)
|
|
73
|
+
new_context_texts = [c for context in contents for c in context.split("\n\n")]
|
|
74
|
+
compressed_prompt = llm_lingua.compress_prompt(
|
|
75
|
+
new_context_texts,
|
|
76
|
+
question=query,
|
|
77
|
+
instruction=instructions,
|
|
78
|
+
rank_method="longllmlingua",
|
|
79
|
+
target_token=target_token,
|
|
80
|
+
**kwargs,
|
|
81
|
+
)
|
|
82
|
+
compressed_prompt_txt = compressed_prompt["compressed_prompt"]
|
|
83
|
+
|
|
84
|
+
# separate out the question and instruction
|
|
85
|
+
result = '\n\n'.join(compressed_prompt_txt.split("\n\n")[1:-1])
|
|
86
|
+
|
|
87
|
+
return result
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import functools
|
|
2
2
|
import logging
|
|
3
3
|
from pathlib import Path
|
|
4
|
-
from typing import List, Union
|
|
4
|
+
from typing import List, Union, Dict, Optional
|
|
5
5
|
|
|
6
6
|
import pandas as pd
|
|
7
7
|
|
|
8
|
-
from autorag import
|
|
8
|
+
from autorag.support import get_support_modules
|
|
9
9
|
from autorag.utils import result_to_dataframe, validate_qa_dataset
|
|
10
10
|
|
|
11
11
|
logger = logging.getLogger("AutoRAG")
|
|
@@ -28,31 +28,33 @@ def query_expansion_node(func):
|
|
|
28
28
|
if func.__name__ == "pass_query_expansion":
|
|
29
29
|
return func(queries=queries)
|
|
30
30
|
|
|
31
|
-
# set module parameters
|
|
32
|
-
llm_str = kwargs.pop("llm")
|
|
33
|
-
|
|
34
31
|
# pop prompt from kwargs
|
|
35
32
|
if "prompt" in kwargs.keys():
|
|
36
33
|
prompt = kwargs.pop("prompt")
|
|
37
34
|
else:
|
|
38
35
|
prompt = ""
|
|
39
36
|
|
|
40
|
-
#
|
|
41
|
-
|
|
42
|
-
batch = kwargs.pop("batch")
|
|
43
|
-
else:
|
|
44
|
-
batch = 16
|
|
45
|
-
|
|
46
|
-
# set llm model for query expansion
|
|
47
|
-
if llm_str in generator_models:
|
|
48
|
-
llm = generator_models[llm_str](**kwargs)
|
|
49
|
-
else:
|
|
50
|
-
logger.error(f"llm_str {llm_str} does not exist.")
|
|
51
|
-
raise KeyError(f"llm_str {llm_str} does not exist.")
|
|
37
|
+
# set generator module for query expansion
|
|
38
|
+
generator_callable, generator_param = make_generator_callable_param(kwargs)
|
|
52
39
|
|
|
53
40
|
# run query expansion function
|
|
54
|
-
expanded_queries = func(queries=queries,
|
|
55
|
-
|
|
41
|
+
expanded_queries = func(queries=queries,
|
|
42
|
+
prompt=prompt,
|
|
43
|
+
generator_func=generator_callable,
|
|
44
|
+
generator_params=generator_param)
|
|
56
45
|
return expanded_queries
|
|
57
46
|
|
|
58
47
|
return wrapper
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
def make_generator_callable_param(generator_dict: Optional[Dict]):
|
|
51
|
+
if 'generator_module_type' not in generator_dict.keys():
|
|
52
|
+
generator_dict = {
|
|
53
|
+
'generator_module_type': 'llama_index_llm',
|
|
54
|
+
'llm': 'openai',
|
|
55
|
+
'model': 'gpt-3.5-turbo',
|
|
56
|
+
}
|
|
57
|
+
module_str = generator_dict.pop('generator_module_type')
|
|
58
|
+
module_callable = get_support_modules(module_str)
|
|
59
|
+
module_param = generator_dict
|
|
60
|
+
return module_callable, module_param
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
from typing import List, Dict, Callable
|
|
2
|
+
|
|
3
|
+
import pandas as pd
|
|
4
|
+
|
|
5
|
+
from autorag.nodes.queryexpansion.base import query_expansion_node
|
|
6
|
+
|
|
7
|
+
hyde_prompt = "Please write a passage to answer the question"
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
@query_expansion_node
|
|
11
|
+
def hyde(queries: List[str],
|
|
12
|
+
generator_func: Callable,
|
|
13
|
+
generator_params: Dict,
|
|
14
|
+
prompt: str = hyde_prompt) -> List[List[str]]:
|
|
15
|
+
"""
|
|
16
|
+
HyDE, which inspired by "Precise Zero-shot Dense Retrieval without Relevance Labels" (https://arxiv.org/pdf/2212.10496.pdf)
|
|
17
|
+
LLM model creates a hypothetical passage.
|
|
18
|
+
And then, retrieve passages using hypothetical passage as a query.
|
|
19
|
+
:param queries: List[str], queries to retrieve.
|
|
20
|
+
:param generator_func: Callable, generator functions.
|
|
21
|
+
:param generator_params: Dict, generator parameters.
|
|
22
|
+
:param prompt: prompt to use when generating hypothetical passage
|
|
23
|
+
:return: List[List[str]], List of hyde results.
|
|
24
|
+
"""
|
|
25
|
+
full_prompts = list(
|
|
26
|
+
map(lambda x: (prompt if not bool(prompt) else hyde_prompt) + f"\nQuestion: {x}\nPassage:", queries))
|
|
27
|
+
input_df = pd.DataFrame({"prompts": full_prompts})
|
|
28
|
+
result_df = generator_func(project_dir=None, previous_result=input_df, **generator_params)
|
|
29
|
+
answers = result_df['generated_texts'].tolist()
|
|
30
|
+
results = list(map(lambda x: [x], answers))
|
|
31
|
+
return results
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
from typing import List, Dict, Callable
|
|
2
|
+
|
|
3
|
+
import pandas as pd
|
|
4
|
+
|
|
5
|
+
from autorag.nodes.queryexpansion.base import query_expansion_node
|
|
6
|
+
|
|
7
|
+
multi_query_expansion_prompt = """You are an AI language model assistant.
|
|
8
|
+
Your task is to generate 3 different versions of the given user
|
|
9
|
+
question to retrieve relevant documents from a vector database.
|
|
10
|
+
By generating multiple perspectives on the user question,
|
|
11
|
+
your goal is to help the user overcome some of the limitations
|
|
12
|
+
of distance-based similarity search. Provide these alternative
|
|
13
|
+
questions separated by newlines. Original question: {question}"""
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
@query_expansion_node
|
|
17
|
+
def multi_query_expansion(queries: List[str],
|
|
18
|
+
generator_func: Callable,
|
|
19
|
+
generator_params: Dict,
|
|
20
|
+
prompt: str = multi_query_expansion_prompt) -> List[List[str]]:
|
|
21
|
+
"""
|
|
22
|
+
Expand a list of queries using a multi-query expansion approach.
|
|
23
|
+
LLM model generate 3 different versions queries for each input query.
|
|
24
|
+
|
|
25
|
+
:param queries: List[str], queries to decompose.
|
|
26
|
+
:param generator_func: Callable, generator functions.
|
|
27
|
+
:param generator_params: Dict, generator parameters.
|
|
28
|
+
:param prompt: str, prompt to use for multi-query expansion.
|
|
29
|
+
default prompt comes from langchain MultiQueryRetriever default query prompt.
|
|
30
|
+
:return: List[List[str]], list of expansion query.
|
|
31
|
+
"""
|
|
32
|
+
full_prompts = []
|
|
33
|
+
for query in queries:
|
|
34
|
+
if bool(prompt):
|
|
35
|
+
full_prompt = f"prompt: {prompt}\n\n question: {query}"
|
|
36
|
+
else:
|
|
37
|
+
full_prompt = multi_query_expansion_prompt.format(question=query)
|
|
38
|
+
full_prompts.append(full_prompt)
|
|
39
|
+
input_df = pd.DataFrame({"prompts": full_prompts})
|
|
40
|
+
result_df = generator_func(project_dir=None, previous_result=input_df, **generator_params)
|
|
41
|
+
answers = result_df['generated_texts'].tolist()
|
|
42
|
+
results = list(map(lambda x: get_multi_query_expansion(x[0], x[1]), zip(queries, answers)))
|
|
43
|
+
return results
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
def get_multi_query_expansion(query: str, answer: str) -> List[str]:
|
|
47
|
+
try:
|
|
48
|
+
queries = answer.split("\n")
|
|
49
|
+
queries.insert(0, query)
|
|
50
|
+
return queries
|
|
51
|
+
except:
|
|
52
|
+
return [query]
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
import
|
|
2
|
-
from typing import List
|
|
1
|
+
from typing import List, Callable, Dict
|
|
3
2
|
|
|
4
|
-
|
|
3
|
+
import pandas as pd
|
|
5
4
|
|
|
6
5
|
from autorag.nodes.queryexpansion.base import query_expansion_node
|
|
7
|
-
from autorag.utils.util import process_batch
|
|
8
6
|
|
|
9
7
|
decompose_prompt = """Decompose a question in self-contained sub-questions. Use \"The question needs no decomposition\" when no decomposition is needed.
|
|
10
8
|
|
|
@@ -54,44 +52,44 @@ decompose_prompt = """Decompose a question in self-contained sub-questions. Use
|
|
|
54
52
|
|
|
55
53
|
|
|
56
54
|
@query_expansion_node
|
|
57
|
-
def query_decompose(queries: List[str],
|
|
58
|
-
|
|
59
|
-
|
|
55
|
+
def query_decompose(queries: List[str],
|
|
56
|
+
generator_func: Callable,
|
|
57
|
+
generator_params: Dict,
|
|
58
|
+
prompt: str = decompose_prompt) -> List[List[str]]:
|
|
60
59
|
"""
|
|
61
60
|
decompose query to little piece of questions.
|
|
62
61
|
:param queries: List[str], queries to decompose.
|
|
63
|
-
:param
|
|
62
|
+
:param generator_func: Callable, generator functions.
|
|
63
|
+
:param generator_params: Dict, generator parameters.
|
|
64
64
|
:param prompt: str, prompt to use for query decomposition.
|
|
65
65
|
default prompt comes from Visconde's StrategyQA few-shot prompt.
|
|
66
|
-
:param batch: int, batch size for llm.
|
|
67
|
-
Default is 16.
|
|
68
66
|
:return: List[List[str]], list of decomposed query. Return input query if query is not decomposable.
|
|
69
67
|
"""
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
68
|
+
full_prompts = []
|
|
69
|
+
for query in queries:
|
|
70
|
+
if bool(prompt):
|
|
71
|
+
full_prompt = f"prompt: {prompt}\n\n question: {query}"
|
|
72
|
+
else:
|
|
73
|
+
full_prompt = decompose_prompt.format(question=query)
|
|
74
|
+
full_prompts.append(full_prompt)
|
|
75
|
+
input_df = pd.DataFrame({"prompts": full_prompts})
|
|
76
|
+
result_df = generator_func(project_dir=None, previous_result=input_df, **generator_params)
|
|
77
|
+
answers = result_df['generated_texts'].tolist()
|
|
78
|
+
results = list(map(lambda x: get_query_decompose(x[0], x[1]), zip(queries, answers)))
|
|
74
79
|
return results
|
|
75
80
|
|
|
76
81
|
|
|
77
|
-
|
|
78
|
-
prompt: str = decompose_prompt) -> List[str]:
|
|
82
|
+
def get_query_decompose(query: str, answer: str) -> List[str]:
|
|
79
83
|
"""
|
|
80
84
|
decompose query to little piece of questions.
|
|
81
85
|
:param query: str, query to decompose.
|
|
82
|
-
:param
|
|
83
|
-
:param prompt: str, prompt to use for query decomposition.
|
|
84
|
-
default prompt comes from Visconde's StrategyQA few-shot prompt.
|
|
86
|
+
:param answer: str, answer from query_decompose function.
|
|
85
87
|
:return: List[str], list of a decomposed query. Return input query if query is not decomposable.
|
|
86
88
|
"""
|
|
87
|
-
if
|
|
88
|
-
prompt = decompose_prompt
|
|
89
|
-
full_prompt = "prompt: " + prompt + "\n\n" "question: " + query
|
|
90
|
-
answer = await llm.acomplete(full_prompt)
|
|
91
|
-
if answer.text == "the question needs no decomposition.":
|
|
89
|
+
if answer.lower() == "the question needs no decomposition":
|
|
92
90
|
return [query]
|
|
93
91
|
try:
|
|
94
|
-
lines = [line.strip() for line in answer.
|
|
92
|
+
lines = [line.strip() for line in answer.splitlines() if line.strip()]
|
|
95
93
|
if lines[0].startswith("Decompositions:"):
|
|
96
94
|
lines.pop(0)
|
|
97
95
|
questions = [line.split(':', 1)[1].strip() for line in lines if ':' in line]
|
|
@@ -93,6 +93,7 @@ def select_best(results: List[pd.DataFrame],
|
|
|
93
93
|
strategy_func_dict = {
|
|
94
94
|
'mean': select_best_average,
|
|
95
95
|
'rank': select_best_rr,
|
|
96
|
+
'normalize_mean': select_normalize_mean,
|
|
96
97
|
}
|
|
97
98
|
if strategy_name not in strategy_func_dict:
|
|
98
99
|
raise ValueError(f'Input strategy name {strategy_name} is not in {strategy_func_dict.keys()}')
|
|
@@ -129,3 +130,13 @@ def select_best_rr(results: List[pd.DataFrame], columns: Iterable[str],
|
|
|
129
130
|
rr_df = rank_df.applymap(lambda x: 1 / x)
|
|
130
131
|
best_index = np.array(rr_df.sum(axis=1)).argmax()
|
|
131
132
|
return results[best_index], metadatas[best_index]
|
|
133
|
+
|
|
134
|
+
|
|
135
|
+
def select_normalize_mean(results: List[pd.DataFrame], columns: Iterable[str],
|
|
136
|
+
metadatas: Optional[List[Any]] = None) -> Tuple[pd.DataFrame, Any]:
|
|
137
|
+
results, columns, metadatas = validate_strategy_inputs(results, columns, metadatas)
|
|
138
|
+
each_mean_df = pd.DataFrame([df[columns].mean(axis=0).to_dict() for df in results])
|
|
139
|
+
normalized_means = (each_mean_df - each_mean_df.min()) / (each_mean_df.max() - each_mean_df.min())
|
|
140
|
+
normalized_mean_sums = normalized_means.sum(axis=1)
|
|
141
|
+
best_index = normalized_mean_sums.argmax()
|
|
142
|
+
return results[best_index], metadatas[best_index]
|
|
@@ -18,6 +18,7 @@ def get_support_modules(module_name: str) -> Callable:
|
|
|
18
18
|
'query_decompose': ('autorag.nodes.queryexpansion', 'query_decompose'),
|
|
19
19
|
'hyde': ('autorag.nodes.queryexpansion', 'hyde'),
|
|
20
20
|
'pass_query_expansion': ('autorag.nodes.queryexpansion', 'pass_query_expansion'),
|
|
21
|
+
'multi_query_expansion': ('autorag.nodes.queryexpansion', 'multi_query_expansion'),
|
|
21
22
|
# retrieval
|
|
22
23
|
'bm25': ('autorag.nodes.retrieval', 'bm25'),
|
|
23
24
|
'vectordb': ('autorag.nodes.retrieval', 'vectordb'),
|
|
@@ -53,6 +54,7 @@ def get_support_modules(module_name: str) -> Callable:
|
|
|
53
54
|
'tree_summarize': ('autorag.nodes.passagecompressor', 'tree_summarize'),
|
|
54
55
|
'pass_compressor': ('autorag.nodes.passagecompressor', 'pass_compressor'),
|
|
55
56
|
'refine': ('autorag.nodes.passagecompressor', 'refine'),
|
|
57
|
+
'longllmlingua': ('autorag.nodes.passagecompressor', 'longllmlingua'),
|
|
56
58
|
# prompt_maker
|
|
57
59
|
'fstring': ('autorag.nodes.promptmaker', 'fstring'),
|
|
58
60
|
'long_context_reorder': ('autorag.nodes.promptmaker', 'long_context_reorder'),
|
|
@@ -12,6 +12,14 @@ autorag.nodes.passagecompressor.base module
|
|
|
12
12
|
:undoc-members:
|
|
13
13
|
:show-inheritance:
|
|
14
14
|
|
|
15
|
+
autorag.nodes.passagecompressor.longllmlingua module
|
|
16
|
+
----------------------------------------------------
|
|
17
|
+
|
|
18
|
+
.. automodule:: autorag.nodes.passagecompressor.longllmlingua
|
|
19
|
+
:members:
|
|
20
|
+
:undoc-members:
|
|
21
|
+
:show-inheritance:
|
|
22
|
+
|
|
15
23
|
autorag.nodes.passagecompressor.pass\_compressor module
|
|
16
24
|
-------------------------------------------------------
|
|
17
25
|
|
|
@@ -20,6 +20,14 @@ autorag.nodes.queryexpansion.hyde module
|
|
|
20
20
|
:undoc-members:
|
|
21
21
|
:show-inheritance:
|
|
22
22
|
|
|
23
|
+
autorag.nodes.queryexpansion.multi\_query\_expansion module
|
|
24
|
+
-----------------------------------------------------------
|
|
25
|
+
|
|
26
|
+
.. automodule:: autorag.nodes.queryexpansion.multi_query_expansion
|
|
27
|
+
:members:
|
|
28
|
+
:undoc-members:
|
|
29
|
+
:show-inheritance:
|
|
30
|
+
|
|
23
31
|
autorag.nodes.queryexpansion.pass\_query\_expansion module
|
|
24
32
|
----------------------------------------------------------
|
|
25
33
|
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
# Long LLM Lingua
|
|
2
|
+
|
|
3
|
+
The `Long LLM Lingua` module is compressor based on [llmlingua](https://github.com/microsoft/LLMLingua).
|
|
4
|
+
|
|
5
|
+
Compresses the retrieved texts using LongLLMLingua.
|
|
6
|
+
|
|
7
|
+
## **Module Parameters**
|
|
8
|
+
|
|
9
|
+
**model_name**: The name of the LLM to be used for compression, defaulting to "NousResearch/Llama-2-7b-hf".
|
|
10
|
+
|
|
11
|
+
**instructions**: Optional instructions for the LLM, defaulting to "Given the context, please answer the final
|
|
12
|
+
question".
|
|
13
|
+
|
|
14
|
+
**target_token**: The target token count for the output, default to 300.
|
|
15
|
+
|
|
16
|
+
- **Additional Parameters**:
|
|
17
|
+
You can put any additional parameters at llm_lingua.
|
|
18
|
+
Find additional parameters [here](https://github.com/microsoft/LLMLingua)
|
|
19
|
+
|
|
20
|
+
## **Example config.yaml**
|
|
21
|
+
|
|
22
|
+
```yaml
|
|
23
|
+
modules:
|
|
24
|
+
- module_type: longllmlingua
|
|
25
|
+
```
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# HyDE
|
|
2
|
+
|
|
3
|
+
The HyDE is inspired by the paper "[Precise Zero-shot Dense Retrieval without Relevance Labels](https://arxiv.org/abs/2212.10496)". It uses a LLM model to generate a hypothetical passage for a given query.
|
|
4
|
+
|
|
5
|
+
## **Module Parameters**
|
|
6
|
+
|
|
7
|
+
**llm**: The query expansion node requires setting parameters related to our generator modules.
|
|
8
|
+
|
|
9
|
+
- **generator_module_type**: The type of the generator module to use.
|
|
10
|
+
- **llm**: The type of llm.
|
|
11
|
+
- Other LLM-related parameters such as `model`, `temperature`, and `max_token` can be set. These are passed as keyword
|
|
12
|
+
arguments (`kwargs`) to the LLM object, allowing for further customization of the LLM's behavior.
|
|
13
|
+
|
|
14
|
+
**Additional Parameters**:
|
|
15
|
+
|
|
16
|
+
- **prompt**: You can use your own custom prompt for the LLM model.
|
|
17
|
+
Default prompt is come from the
|
|
18
|
+
paper "[Precise Zero-shot Dense Retrieval without Relevance Labels](https://arxiv.org/abs/2212.10496)".
|
|
19
|
+
|
|
20
|
+
## **Example config.yaml**
|
|
21
|
+
```yaml
|
|
22
|
+
modules:
|
|
23
|
+
- module_type: hyde
|
|
24
|
+
generator_module_type: llama_index_llm
|
|
25
|
+
llm: openai
|
|
26
|
+
max_token: 64
|
|
27
|
+
```
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Multi Query Expansion
|
|
2
|
+
|
|
3
|
+
The `multi_query_expansion` automates the process of prompt tuning by using an LLM to generate multiple queries from
|
|
4
|
+
different perspectives for a given user input query. The module uses a default multi-query prompt from
|
|
5
|
+
the [langchain MultiQueryRetriever](https://python.langchain.com/v0.1/docs/modules/data_connection/retrievers/MultiQueryRetriever/)'
|
|
6
|
+
s default query prompt.
|
|
7
|
+
|
|
8
|
+
## **Module Parameters**
|
|
9
|
+
|
|
10
|
+
**llm**: The query expansion node requires setting parameters related to our generator modules.
|
|
11
|
+
|
|
12
|
+
- **generator_module_type**: The type of the generator module to use.
|
|
13
|
+
- **llm**: The type of llm.
|
|
14
|
+
- Other LLM-related parameters such as `model`, `temperature`, and `max_token` can be set. These are passed as keyword
|
|
15
|
+
arguments (`kwargs`) to the LLM object, allowing for further customization of the LLM's behavior.
|
|
16
|
+
|
|
17
|
+
**Additional Parameters**:
|
|
18
|
+
|
|
19
|
+
- **prompt**: You can use your own custom prompt for the LLM model.
|
|
20
|
+
Default prompt comes from langchain MultiQueryRetriever default query prompt.
|
|
21
|
+
|
|
22
|
+
## **Example config.yaml**
|
|
23
|
+
|
|
24
|
+
```yaml
|
|
25
|
+
modules:
|
|
26
|
+
- module_type: multi_query_expansion
|
|
27
|
+
generator_module_type: llama_index_llm
|
|
28
|
+
llm: openai
|
|
29
|
+
model: [ gpt-3.5-turbo-16k, gpt-3.5-turbo-1106 ]
|
|
30
|
+
```
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Query Decompose
|
|
2
|
+
|
|
3
|
+
The `query_decompose` is used to decompose a ‘multi-hop question’ into ‘multiple single-hop questions’ using a LLM model. The module uses a default decomposition prompt from the [Visconde paper](https://arxiv.org/pdf/2212.09656.pdf)'s StrategyQA few-shot prompt.
|
|
4
|
+
|
|
5
|
+
## **Module Parameters**
|
|
6
|
+
|
|
7
|
+
**llm**: The query expansion node requires setting parameters related to our generator modules.
|
|
8
|
+
|
|
9
|
+
- **generator_module_type**: The type of the generator module to use.
|
|
10
|
+
- **llm**: The type of llm.
|
|
11
|
+
- Other LLM-related parameters such as `model`, `temperature`, and `max_token` can be set. These are passed as keyword
|
|
12
|
+
arguments (`kwargs`) to the LLM object, allowing for further customization of the LLM's behavior.
|
|
13
|
+
|
|
14
|
+
**Additional Parameters**:
|
|
15
|
+
|
|
16
|
+
- **prompt**: You can use your own custom prompt for the LLM model.
|
|
17
|
+
default prompt comes from Visconde's StrategyQA few-shot prompt.
|
|
18
|
+
|
|
19
|
+
## **Example config.yaml**
|
|
20
|
+
```yaml
|
|
21
|
+
modules:
|
|
22
|
+
- module_type: query_decompose
|
|
23
|
+
generator_module_type: llama_index_llm
|
|
24
|
+
llm: openai
|
|
25
|
+
model: [ gpt-3.5-turbo-16k, gpt-3.5-turbo-1106 ]
|
|
26
|
+
```
|