AutoRAG 0.2.9__tar.gz → 0.2.11__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.9 → autorag-0.2.11}/AutoRAG.egg-info/PKG-INFO +2 -2
- {autorag-0.2.9 → autorag-0.2.11}/AutoRAG.egg-info/SOURCES.txt +0 -7
- {autorag-0.2.9 → autorag-0.2.11}/AutoRAG.egg-info/requires.txt +1 -1
- {autorag-0.2.9 → autorag-0.2.11}/PKG-INFO +2 -2
- autorag-0.2.11/autorag/VERSION +1 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/generator/openai_llm.py +2 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/retrieval/__init__.py +0 -2
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/retrieval/base.py +3 -4
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/retrieval/bm25.py +35 -6
- autorag-0.2.11/autorag/nodes/retrieval/hybrid_cc.py +137 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/retrieval/hybrid_rrf.py +14 -5
- autorag-0.2.11/autorag/nodes/retrieval/run.py +338 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/retrieval/vectordb.py +61 -18
- {autorag-0.2.9 → autorag-0.2.11}/autorag/support.py +0 -2
- {autorag-0.2.9 → autorag-0.2.11}/autorag/utils/util.py +16 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.nodes.retrieval.rst +0 -16
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/evaluate_metrics/generation.md +16 -5
- autorag-0.2.11/docs/source/nodes/retrieval/hybrid_cc.md +59 -0
- autorag-0.2.11/docs/source/nodes/retrieval/hybrid_rrf.md +34 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/retrieval/retrieval.md +5 -10
- {autorag-0.2.9 → autorag-0.2.11}/requirements.txt +1 -1
- {autorag-0.2.9 → autorag-0.2.11}/sample_config/compact_local.yaml +1 -7
- autorag-0.2.11/sample_config/compact_openai.yaml +59 -0
- {autorag-0.2.9 → autorag-0.2.11}/sample_config/full.yaml +4 -19
- {autorag-0.2.9 → autorag-0.2.11}/sample_config/simple_ollama.yaml +2 -19
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/generator/test_openai.py +2 -2
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/retrieval/test_bm25.py +44 -1
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/retrieval/test_hybrid_base.py +18 -1
- autorag-0.2.11/tests/autorag/nodes/retrieval/test_hybrid_cc.py +54 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/retrieval/test_hybrid_rrf.py +3 -3
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/retrieval/test_retrieval_base.py +7 -1
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/retrieval/test_run_retrieval_node.py +17 -38
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/retrieval/test_vectordb.py +55 -2
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/test_evaluator.py +9 -13
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/full.yaml +4 -7
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/3/config.yaml +1 -2
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/simple.yaml +1 -2
- autorag-0.2.9/autorag/VERSION +0 -1
- autorag-0.2.9/autorag/nodes/retrieval/hybrid_cc.py +0 -63
- autorag-0.2.9/autorag/nodes/retrieval/hybrid_dbsf.py +0 -70
- autorag-0.2.9/autorag/nodes/retrieval/hybrid_rsf.py +0 -96
- autorag-0.2.9/autorag/nodes/retrieval/run.py +0 -217
- autorag-0.2.9/docs/source/nodes/retrieval/hybrid_cc.md +0 -44
- autorag-0.2.9/docs/source/nodes/retrieval/hybrid_dbsf.md +0 -131
- autorag-0.2.9/docs/source/nodes/retrieval/hybrid_rrf.md +0 -40
- autorag-0.2.9/docs/source/nodes/retrieval/hybrid_rsf.md +0 -134
- autorag-0.2.9/docs/source/optimization/sample_full_config.yaml +0 -78
- autorag-0.2.9/sample_config/compact_openai.yaml +0 -65
- autorag-0.2.9/tests/autorag/nodes/retrieval/test_hybrid_cc.py +0 -33
- autorag-0.2.9/tests/autorag/nodes/retrieval/test_hybrid_dbsf.py +0 -20
- autorag-0.2.9/tests/autorag/nodes/retrieval/test_hybrid_rsf.py +0 -20
- {autorag-0.2.9 → autorag-0.2.11}/.github/FUNDING.yml +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/.github/dependabot.yml +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/.github/workflows/publish.yml +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/.github/workflows/sphinx.yml +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/.github/workflows/test.yml +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/.gitignore +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/AutoRAG.egg-info/dependency_links.txt +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/AutoRAG.egg-info/entry_points.txt +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/AutoRAG.egg-info/top_level.txt +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/CODE_OF_CONDUCT.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/CONTRIBUTING.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/LICENSE +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/README.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/__init__.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/cli.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/dashboard.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/data/__init__.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/data/corpus/__init__.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/data/corpus/langchain.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/data/corpus/llama_index.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/data/qacreation/__init__.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/data/qacreation/base.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/data/qacreation/llama_index.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/data/qacreation/llama_index_default_prompt.txt +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/data/qacreation/ragas.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/data/qacreation/simple.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/data/utils/__init__.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/data/utils/util.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/deploy.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/evaluation/__init__.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/evaluation/generation.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/evaluation/metric/__init__.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/evaluation/metric/g_eval_prompts/coh_detailed.txt +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/evaluation/metric/g_eval_prompts/con_detailed.txt +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/evaluation/metric/g_eval_prompts/flu_detailed.txt +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/evaluation/metric/g_eval_prompts/rel_detailed.txt +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/evaluation/metric/generation.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/evaluation/metric/retrieval.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/evaluation/metric/retrieval_contents.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/evaluation/metric/util.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/evaluation/retrieval.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/evaluation/retrieval_contents.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/evaluation/util.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/evaluator.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/node_line.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/__init__.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/generator/__init__.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/generator/base.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/generator/llama_index_llm.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/generator/run.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/generator/vllm.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passageaugmenter/__init__.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passageaugmenter/base.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passageaugmenter/pass_passage_augmenter.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passageaugmenter/prev_next_augmenter.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passageaugmenter/run.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagecompressor/__init__.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagecompressor/base.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagecompressor/longllmlingua.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagecompressor/pass_compressor.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagecompressor/refine.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagecompressor/run.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagecompressor/tree_summarize.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagefilter/__init__.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagefilter/base.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagefilter/pass_passage_filter.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagefilter/percentile_cutoff.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagefilter/recency.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagefilter/run.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagefilter/similarity_percentile_cutoff.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagefilter/similarity_threshold_cutoff.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagefilter/threshold_cutoff.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/__init__.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/base.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/cohere.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/colbert.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/flag_embedding.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/flag_embedding_llm.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/jina.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/koreranker.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/monot5.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/pass_reranker.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/rankgpt.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/run.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/sentence_transformer.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/tart/__init__.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/tart/modeling_enc_t5.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/tart/tart.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/tart/tokenization_enc_t5.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/time_reranker.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/upr.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/promptmaker/__init__.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/promptmaker/base.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/promptmaker/fstring.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/promptmaker/long_context_reorder.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/promptmaker/run.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/promptmaker/window_replacement.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/queryexpansion/__init__.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/queryexpansion/base.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/queryexpansion/hyde.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/queryexpansion/multi_query_expansion.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/queryexpansion/pass_query_expansion.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/queryexpansion/query_decompose.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/queryexpansion/run.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/schema/__init__.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/schema/module.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/schema/node.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/strategy.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/utils/__init__.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/utils/preprocess.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/autorag/web.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/Makefile +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/make.bat +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/requirements.txt +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/CNAME +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/data_creation.png +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/data_folder.png +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/dcg.png +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/f1_score.png +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/map.png +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/mrr.png +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/ndcg.png +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/ndcg_formula.png +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/node_folder.png +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/node_line_folder.png +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/node_line_summary.png +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/node_lines.png +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/node_summary.png +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/normal_distribution.png +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/project_folder_example.png +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/project_folders.png +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/resources_folder.png +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/roadmap/RAG_paradigms.png +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/roadmap/advanced_RAG.png +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/roadmap/cycle.png +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/roadmap/merger.png +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/roadmap/node_line_modular.png +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/roadmap/policy.png +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/samsung_sundae.jpeg +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/score_fusion.png +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/trial_folder.png +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/trial_json.png +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/trial_summary.png +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/web_interface.png +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.data.corpus.rst +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.data.qacreation.rst +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.data.rst +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.data.utils.rst +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.evaluation.metric.rst +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.evaluation.rst +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.nodes.generator.rst +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.nodes.passageaugmenter.rst +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.nodes.passagecompressor.rst +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.nodes.passagefilter.rst +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.nodes.passagereranker.rst +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.nodes.passagereranker.tart.rst +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.nodes.promptmaker.rst +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.nodes.queryexpansion.rst +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.nodes.rst +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.rst +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.schema.rst +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.utils.rst +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/modules.rst +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/conf.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/data_creation/data_format.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/data_creation/ragas.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/data_creation/tutorial.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/deploy/api_endpoint.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/deploy/web.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/evaluate_metrics/retrieval.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/evaluate_metrics/retrieval_contents.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/index.rst +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/install.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/local_model.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/generator/generator.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/generator/llama_index_llm.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/generator/openai_llm.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/generator/vllm.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/index.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_augmenter/passage_augmenter.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_augmenter/prev_next_augmenter.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_compressor/longllmlingua.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_compressor/passage_compressor.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_compressor/refine.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_compressor/tree_summarize.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_filter/passage_filter.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_filter/percentile_cutoff.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_filter/recency_filter.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_filter/similarity_percentile_cutoff.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_filter/similarity_threshold_cutoff.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_filter/threshold_cutoff.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_reranker/cohere.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_reranker/colbert.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_reranker/flag_embedding_llm_reranker.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_reranker/flag_embedding_reranker.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_reranker/jina_reranker.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_reranker/koreranker.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_reranker/monot5.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_reranker/passage_reranker.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_reranker/rankgpt.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_reranker/sentence_transformer_reranker.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_reranker/tart.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_reranker/time_reranker.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_reranker/upr.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/prompt_maker/fstring.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/prompt_maker/long_context_reorder.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/prompt_maker/prompt_maker.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/prompt_maker/window_replacement.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/query_expansion/hyde.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/query_expansion/multi_query_expansion.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/query_expansion/query_decompose.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/query_expansion/query_expansion.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/retrieval/bm25.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/retrieval/vectordb.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/optimization/custom_config.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/optimization/folder_structure.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/optimization/optimization.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/optimization/strategies.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/roadmap/modular_rag.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/structure.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/troubleshooting.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/docs/source/tutorial.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/pyproject.toml +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/sample_config/config_korean.yaml +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/sample_config/extracted_sample.yaml +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/sample_config/simple_local.yaml +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/sample_config/simple_openai.yaml +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/sample_dataset/README.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/sample_dataset/eli5/load_eli5_dataset.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/sample_dataset/hotpotqa/load_hotpotqa_dataset.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/sample_dataset/msmarco/load_msmarco_dataset.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/sample_dataset/triviaqa/load_triviaqa_dataset.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/setup.cfg +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/data/corpus/test_base.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/data/corpus/test_langchain.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/data/corpus/test_llama_index_corpus.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/data/qacreation/test_base_qacreation.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/data/qacreation/test_llama_index_qacreation.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/data/qacreation/test_ragas_qa_creation.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/data/qacreation/test_simple.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/evaluate/metric/test_generation_metric.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/evaluate/metric/test_retrieval_contents_metric.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/evaluate/metric/test_retrieval_metric.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/evaluate/test_evaluate_util.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/evaluate/test_generation_evaluate.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/evaluate/test_retrieval_contents_evaluate.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/evaluate/test_retrieval_evaluate.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/generator/test_generator_base.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/generator/test_llama_index_llm.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/generator/test_run_generator_node.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/generator/test_vllm.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passageaugmenter/test_base_passage_augmenter.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passageaugmenter/test_pass_passage_augmenter.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passageaugmenter/test_prev_next_augmenter.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passageaugmenter/test_run_passage_augmenter.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagecompressor/test_base_passage_compressor.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagecompressor/test_longllmlingua.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagecompressor/test_pass_compressor.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagecompressor/test_refine.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagecompressor/test_run_passage_compressor_node.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagecompressor/test_tree_summarize.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagefilter/test_pass_passage_filter.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagefilter/test_passage_filter_base.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagefilter/test_passage_filter_run.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagefilter/test_percentile_cutoff.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagefilter/test_recency_filter.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagefilter/test_similarity_percentile_cutoff.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagefilter/test_similarity_threshold_cutoff.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagefilter/test_threshold_cutoff.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagereranker/test_cohere_reranker.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagereranker/test_colbert_reranker.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagereranker/test_flag_embedding.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagereranker/test_flag_embedding_llm.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagereranker/test_jina_reranker.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagereranker/test_koreranker.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagereranker/test_monot5.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagereranker/test_pass_reranker.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagereranker/test_passage_reranker_base.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagereranker/test_passage_reranker_run.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagereranker/test_rankgpt.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagereranker/test_sentence_transformer.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagereranker/test_tart.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagereranker/test_time_reranker.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagereranker/test_upr.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/promptmaker/test_fstring.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/promptmaker/test_long_context_reorder.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/promptmaker/test_prompt_maker_base.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/promptmaker/test_prompt_maker_run.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/promptmaker/test_window_replacement.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/queryexpansion/test_hyde.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/queryexpansion/test_multi_query_expansion.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/queryexpansion/test_pass_query_expansion.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/queryexpansion/test_query_decompose.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/queryexpansion/test_query_expansion_base.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/queryexpansion/test_query_expansion_run.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/schema/test_module_schema.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/schema/test_node_schema.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/test_cli.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/test_dashboard.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/test_deploy.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/test_strategy.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/test_support.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/test_web.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/utils/test_preprocess.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/utils/test_util.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/conftest.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/delete_tests.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/mock.py +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/requirements.txt +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/README.md +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/corpus_data_sample.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/data_creation/raw_dir/sample1.txt +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/data_creation/raw_dir/sample2.txt +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/data_creation/raw_dir/sample3.txt +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/qa_data_sample.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/qa_gen_prompts/prompt1.txt +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/qa_gen_prompts/prompt2.txt +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/qa_gen_prompts/prompt3.txt +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/qa_test_data_sample.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/config.yaml +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/post_retrieve_node_line/generator/0.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/post_retrieve_node_line/generator/1.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/post_retrieve_node_line/generator/2.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/post_retrieve_node_line/generator/3.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/post_retrieve_node_line/generator/4.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/post_retrieve_node_line/generator/5.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/post_retrieve_node_line/generator/best_5.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/post_retrieve_node_line/generator/summary.csv +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/post_retrieve_node_line/prompt_maker/0.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/post_retrieve_node_line/prompt_maker/1.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/post_retrieve_node_line/prompt_maker/best_0.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/post_retrieve_node_line/prompt_maker/summary.csv +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/post_retrieve_node_line/summary.csv +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/0.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/1.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/2.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/best_0.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/summary.csv +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/pre_retrieve_node_line/summary.csv +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/retrieve_node_line/passage_compressor/0.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/retrieve_node_line/passage_compressor/best_0.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/retrieve_node_line/passage_compressor/summary.csv +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/retrieve_node_line/passage_reranker/0.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/retrieve_node_line/passage_reranker/1.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/retrieve_node_line/passage_reranker/best_0.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/retrieve_node_line/passage_reranker/summary.csv +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/retrieve_node_line/retrieval/0.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/retrieve_node_line/retrieval/1.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/retrieve_node_line/retrieval/best_0.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/retrieve_node_line/retrieval/summary.csv +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/retrieve_node_line/summary.csv +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/summary.csv +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/config.yaml +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/0.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/1.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/2.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/best_0.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/summary.csv +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/pre_retrieve_node_line/summary.csv +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/retrieve_node_line/passage_filter/0.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/retrieve_node_line/passage_reranker/0.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/retrieve_node_line/passage_reranker/1.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/retrieve_node_line/passage_reranker/best_0.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/retrieve_node_line/passage_reranker/summary.csv +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/retrieve_node_line/retrieval/0.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/retrieve_node_line/retrieval/1.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/retrieve_node_line/retrieval/best_0.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/retrieve_node_line/retrieval/summary.csv +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/config.yaml +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/post_retrieve_node_line/prompt_maker/0.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/0.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/1.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/2.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/best_0.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/summary.csv +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/pre_retrieve_node_line/summary.csv +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/retrieve_node_line/passage_compressor/0.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/retrieve_node_line/passage_compressor/best_0.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/retrieve_node_line/passage_compressor/summary.csv +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/retrieve_node_line/passage_reranker/0.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/retrieve_node_line/passage_reranker/1.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/retrieve_node_line/passage_reranker/best_0.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/retrieve_node_line/passage_reranker/summary.csv +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/retrieve_node_line/retrieval/0.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/retrieve_node_line/retrieval/1.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/retrieve_node_line/retrieval/best_0.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/retrieve_node_line/retrieval/summary.csv +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/retrieve_node_line/summary.csv +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/best.yaml +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/data/corpus.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/data/qa.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/resources/bm25_porter_stemmer.pkl +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/resources/chroma/6595d304-5270-4d9f-a267-c191366804ce/data_level0.bin +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/resources/chroma/6595d304-5270-4d9f-a267-c191366804ce/header.bin +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/resources/chroma/6595d304-5270-4d9f-a267-c191366804ce/length.bin +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/resources/chroma/6595d304-5270-4d9f-a267-c191366804ce/link_lists.bin +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/resources/chroma/chroma.sqlite3 +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/trial.json +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/sample_contents_nqa.csv +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/sample_project/data/corpus.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/sample_project/data/qa.parquet +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/sample_project/resources/bm25_gpt2.pkl +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/tests/resources/sample_project/resources/bm25_porter_stemmer.pkl +0 -0
- {autorag-0.2.9 → autorag-0.2.11}/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.11
|
|
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
|
|
@@ -256,7 +256,7 @@ Requires-Dist: llama-index-core>=0.10.1
|
|
|
256
256
|
Requires-Dist: llama-index-readers-file
|
|
257
257
|
Requires-Dist: llama-index-embeddings-openai
|
|
258
258
|
Requires-Dist: llama-index-embeddings-huggingface
|
|
259
|
-
Requires-Dist: llama-index-llms-openai
|
|
259
|
+
Requires-Dist: llama-index-llms-openai>=0.1.26
|
|
260
260
|
Requires-Dist: llama-index-llms-huggingface
|
|
261
261
|
Requires-Dist: llama-index-llms-openai-like
|
|
262
262
|
Requires-Dist: llama-index-llms-ollama
|
|
@@ -116,9 +116,7 @@ autorag/nodes/retrieval/__init__.py
|
|
|
116
116
|
autorag/nodes/retrieval/base.py
|
|
117
117
|
autorag/nodes/retrieval/bm25.py
|
|
118
118
|
autorag/nodes/retrieval/hybrid_cc.py
|
|
119
|
-
autorag/nodes/retrieval/hybrid_dbsf.py
|
|
120
119
|
autorag/nodes/retrieval/hybrid_rrf.py
|
|
121
|
-
autorag/nodes/retrieval/hybrid_rsf.py
|
|
122
120
|
autorag/nodes/retrieval/run.py
|
|
123
121
|
autorag/nodes/retrieval/vectordb.py
|
|
124
122
|
autorag/schema/__init__.py
|
|
@@ -235,15 +233,12 @@ docs/source/nodes/query_expansion/query_decompose.md
|
|
|
235
233
|
docs/source/nodes/query_expansion/query_expansion.md
|
|
236
234
|
docs/source/nodes/retrieval/bm25.md
|
|
237
235
|
docs/source/nodes/retrieval/hybrid_cc.md
|
|
238
|
-
docs/source/nodes/retrieval/hybrid_dbsf.md
|
|
239
236
|
docs/source/nodes/retrieval/hybrid_rrf.md
|
|
240
|
-
docs/source/nodes/retrieval/hybrid_rsf.md
|
|
241
237
|
docs/source/nodes/retrieval/retrieval.md
|
|
242
238
|
docs/source/nodes/retrieval/vectordb.md
|
|
243
239
|
docs/source/optimization/custom_config.md
|
|
244
240
|
docs/source/optimization/folder_structure.md
|
|
245
241
|
docs/source/optimization/optimization.md
|
|
246
|
-
docs/source/optimization/sample_full_config.yaml
|
|
247
242
|
docs/source/optimization/strategies.md
|
|
248
243
|
docs/source/roadmap/modular_rag.md
|
|
249
244
|
sample_config/compact_local.yaml
|
|
@@ -336,9 +331,7 @@ tests/autorag/nodes/queryexpansion/test_query_expansion_run.py
|
|
|
336
331
|
tests/autorag/nodes/retrieval/test_bm25.py
|
|
337
332
|
tests/autorag/nodes/retrieval/test_hybrid_base.py
|
|
338
333
|
tests/autorag/nodes/retrieval/test_hybrid_cc.py
|
|
339
|
-
tests/autorag/nodes/retrieval/test_hybrid_dbsf.py
|
|
340
334
|
tests/autorag/nodes/retrieval/test_hybrid_rrf.py
|
|
341
|
-
tests/autorag/nodes/retrieval/test_hybrid_rsf.py
|
|
342
335
|
tests/autorag/nodes/retrieval/test_retrieval_base.py
|
|
343
336
|
tests/autorag/nodes/retrieval/test_run_retrieval_node.py
|
|
344
337
|
tests/autorag/nodes/retrieval/test_vectordb.py
|
|
@@ -34,7 +34,7 @@ llama-index-core>=0.10.1
|
|
|
34
34
|
llama-index-readers-file
|
|
35
35
|
llama-index-embeddings-openai
|
|
36
36
|
llama-index-embeddings-huggingface
|
|
37
|
-
llama-index-llms-openai
|
|
37
|
+
llama-index-llms-openai>=0.1.26
|
|
38
38
|
llama-index-llms-huggingface
|
|
39
39
|
llama-index-llms-openai-like
|
|
40
40
|
llama-index-llms-ollama
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: AutoRAG
|
|
3
|
-
Version: 0.2.
|
|
3
|
+
Version: 0.2.11
|
|
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
|
|
@@ -256,7 +256,7 @@ Requires-Dist: llama-index-core>=0.10.1
|
|
|
256
256
|
Requires-Dist: llama-index-readers-file
|
|
257
257
|
Requires-Dist: llama-index-embeddings-openai
|
|
258
258
|
Requires-Dist: llama-index-embeddings-huggingface
|
|
259
|
-
Requires-Dist: llama-index-llms-openai
|
|
259
|
+
Requires-Dist: llama-index-llms-openai>=0.1.26
|
|
260
260
|
Requires-Dist: llama-index-llms-huggingface
|
|
261
261
|
Requires-Dist: llama-index-llms-openai-like
|
|
262
262
|
Requires-Dist: llama-index-llms-ollama
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.2.11
|
|
@@ -13,6 +13,8 @@ from autorag.utils.util import process_batch
|
|
|
13
13
|
logger = logging.getLogger("AutoRAG")
|
|
14
14
|
|
|
15
15
|
MAX_TOKEN_DICT = { # model name : token limit
|
|
16
|
+
'gpt-4o-mini': 128_000,
|
|
17
|
+
'gpt-4o-mini-2024-07-18': 128_000,
|
|
16
18
|
'gpt-4o': 128_000,
|
|
17
19
|
'gpt-4o-2024-05-13': 128_000,
|
|
18
20
|
'gpt-4-turbo': 128_000,
|
|
@@ -32,7 +32,6 @@ def retrieval_node(func):
|
|
|
32
32
|
project_dir: Union[str, Path],
|
|
33
33
|
previous_result: pd.DataFrame,
|
|
34
34
|
**kwargs) -> Tuple[List[List[str]], List[List[str]], List[List[float]]]:
|
|
35
|
-
logger.info(f"Running retrieval node - {func.__name__} module...")
|
|
36
35
|
validate_qa_dataset(previous_result)
|
|
37
36
|
resources_dir = os.path.join(project_dir, "resources")
|
|
38
37
|
data_dir = os.path.join(project_dir, "data")
|
|
@@ -75,10 +74,10 @@ def retrieval_node(func):
|
|
|
75
74
|
del embedding_model
|
|
76
75
|
if torch.cuda.is_available():
|
|
77
76
|
torch.cuda.empty_cache()
|
|
78
|
-
elif func.__name__ in ["hybrid_rrf", "hybrid_cc"
|
|
79
|
-
if 'ids' in kwargs and 'scores' in kwargs:
|
|
77
|
+
elif func.__name__ in ["hybrid_rrf", "hybrid_cc"]:
|
|
78
|
+
if 'ids' in kwargs and 'scores' in kwargs: # ordinary run_evaluate
|
|
80
79
|
ids, scores = func(**kwargs)
|
|
81
|
-
else:
|
|
80
|
+
else: # => for Runner.run
|
|
82
81
|
if not ('target_modules' in kwargs and 'target_module_params' in kwargs):
|
|
83
82
|
raise ValueError(
|
|
84
83
|
f"If there are no ids and scores specified, target_modules and target_module_params must be specified for using {func.__name__}.")
|
|
@@ -2,7 +2,7 @@ import asyncio
|
|
|
2
2
|
import os
|
|
3
3
|
import pickle
|
|
4
4
|
import re
|
|
5
|
-
from typing import List, Dict, Tuple, Callable, Union, Iterable
|
|
5
|
+
from typing import List, Dict, Tuple, Callable, Union, Iterable, Optional
|
|
6
6
|
|
|
7
7
|
import numpy as np
|
|
8
8
|
import pandas as pd
|
|
@@ -51,7 +51,8 @@ BM25_TOKENIZER = {
|
|
|
51
51
|
|
|
52
52
|
|
|
53
53
|
@retrieval_node
|
|
54
|
-
def bm25(queries: List[List[str]], top_k: int, bm25_corpus: Dict, bm25_tokenizer: str = 'porter_stemmer'
|
|
54
|
+
def bm25(queries: List[List[str]], top_k: int, bm25_corpus: Dict, bm25_tokenizer: str = 'porter_stemmer',
|
|
55
|
+
ids: Optional[List[List[str]]] = None) -> \
|
|
55
56
|
Tuple[List[List[str]], List[List[float]]]:
|
|
56
57
|
"""
|
|
57
58
|
BM25 retrieval function.
|
|
@@ -74,6 +75,9 @@ def bm25(queries: List[List[str]], top_k: int, bm25_corpus: Dict, bm25_tokenizer
|
|
|
74
75
|
It supports 'porter_stemmer', 'ko_kiwi', and huggingface `AutoTokenizer`.
|
|
75
76
|
You can pass huggingface tokenizer name.
|
|
76
77
|
Default is porter_stemmer.
|
|
78
|
+
:param ids: The optional list of ids that you want to retrieve.
|
|
79
|
+
You don't need to specify this in the general use cases.
|
|
80
|
+
Default is None.
|
|
77
81
|
:return: The 2-d list contains a list of passage ids that retrieved from bm25 and 2-d list of its scores.
|
|
78
82
|
It will be a length of queries. And each element has a length of top_k.
|
|
79
83
|
"""
|
|
@@ -85,6 +89,12 @@ def bm25(queries: List[List[str]], top_k: int, bm25_corpus: Dict, bm25_tokenizer
|
|
|
85
89
|
(f"The bm25 corpus tokenizer is {bm25_corpus['tokenizer_name']}, but your input is {bm25_tokenizer}. "
|
|
86
90
|
f"You need to ingest again. Delete bm25 pkl file and re-ingest it.")
|
|
87
91
|
bm25_instance = BM25Okapi(bm25_corpus["tokens"])
|
|
92
|
+
|
|
93
|
+
if ids is not None:
|
|
94
|
+
score_result = list(map(lambda query_list, id_list: get_bm25_scores(
|
|
95
|
+
query_list, id_list, tokenizer, bm25_instance, bm25_corpus), queries, ids))
|
|
96
|
+
return ids, score_result
|
|
97
|
+
|
|
88
98
|
# run async bm25_pure function
|
|
89
99
|
tasks = [bm25_pure(input_queries, top_k, tokenizer, bm25_instance, bm25_corpus) for input_queries in queries]
|
|
90
100
|
loop = asyncio.get_event_loop()
|
|
@@ -116,10 +126,7 @@ async def bm25_pure(queries: List[str], top_k: int, tokenizer, bm25_api: BM25Oka
|
|
|
116
126
|
:return: The tuple contains a list of passage ids that retrieved from bm25 and its scores.
|
|
117
127
|
"""
|
|
118
128
|
# I don't make queries operation to async, because queries length might be small, so it will occur overhead.
|
|
119
|
-
|
|
120
|
-
tokenized_queries = tokenizer(queries).input_ids
|
|
121
|
-
else:
|
|
122
|
-
tokenized_queries = tokenizer(queries)
|
|
129
|
+
tokenized_queries = tokenize(queries, tokenizer)
|
|
123
130
|
id_result = []
|
|
124
131
|
score_result = []
|
|
125
132
|
for query in tokenized_queries:
|
|
@@ -139,6 +146,28 @@ async def bm25_pure(queries: List[str], top_k: int, tokenizer, bm25_api: BM25Oka
|
|
|
139
146
|
return list(id_result), list(score_result)
|
|
140
147
|
|
|
141
148
|
|
|
149
|
+
def get_bm25_scores(queries: List[str], ids: List[str], tokenizer,
|
|
150
|
+
bm25_api: BM25Okapi, bm25_corpus: Dict) -> List[float]:
|
|
151
|
+
if len(ids) == 0 or not bool(ids):
|
|
152
|
+
return []
|
|
153
|
+
tokenized_queries = tokenize(queries, tokenizer)
|
|
154
|
+
result_dict = {id_: [] for id_ in ids}
|
|
155
|
+
for query in tokenized_queries:
|
|
156
|
+
scores = bm25_api.get_scores(query)
|
|
157
|
+
for i, id_ in enumerate(ids):
|
|
158
|
+
result_dict[id_].append(scores[bm25_corpus['passage_id'].index(id_)])
|
|
159
|
+
result_df = pd.DataFrame(result_dict)
|
|
160
|
+
return result_df.max(axis=0).tolist()
|
|
161
|
+
|
|
162
|
+
|
|
163
|
+
def tokenize(queries: List[str], tokenizer) -> List[List[int]]:
|
|
164
|
+
if isinstance(tokenizer, PreTrainedTokenizerBase):
|
|
165
|
+
tokenized_queries = tokenizer(queries).input_ids
|
|
166
|
+
else:
|
|
167
|
+
tokenized_queries = tokenizer(queries)
|
|
168
|
+
return tokenized_queries
|
|
169
|
+
|
|
170
|
+
|
|
142
171
|
def bm25_ingest(corpus_path: str, corpus_data: pd.DataFrame, bm25_tokenizer: str = 'porter_stemmer'):
|
|
143
172
|
if not corpus_path.endswith('.pkl'):
|
|
144
173
|
raise ValueError(f"Corpus path {corpus_path} is not a pickle file.")
|
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
from typing import Tuple, List
|
|
2
|
+
|
|
3
|
+
import numpy as np
|
|
4
|
+
import pandas as pd
|
|
5
|
+
|
|
6
|
+
from autorag.nodes.retrieval import retrieval_node
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
def normalize_mm(scores: List[str], fixed_min_value: float = 0):
|
|
10
|
+
arr = np.array(scores)
|
|
11
|
+
max_value = np.max(arr)
|
|
12
|
+
min_value = np.min(arr)
|
|
13
|
+
norm_score = (arr - min_value) / (max_value - min_value)
|
|
14
|
+
return norm_score
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def normalize_tmm(scores: List[str], fixed_min_value: float):
|
|
18
|
+
arr = np.array(scores)
|
|
19
|
+
max_value = np.max(arr)
|
|
20
|
+
norm_score = (arr - fixed_min_value) / (max_value - fixed_min_value)
|
|
21
|
+
return norm_score
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def normalize_z(scores: List[str], fixed_min_value: float = 0):
|
|
25
|
+
arr = np.array(scores)
|
|
26
|
+
mean_value = np.mean(arr)
|
|
27
|
+
std_value = np.std(arr)
|
|
28
|
+
norm_score = (arr - mean_value) / std_value
|
|
29
|
+
return norm_score
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
def normalize_dbsf(scores: List[str], fixed_min_value: float = 0):
|
|
33
|
+
arr = np.array(scores)
|
|
34
|
+
mean_value = np.mean(arr)
|
|
35
|
+
std_value = np.std(arr)
|
|
36
|
+
min_value = mean_value - 3 * std_value
|
|
37
|
+
max_value = mean_value + 3 * std_value
|
|
38
|
+
norm_score = (arr - min_value) / (max_value - min_value)
|
|
39
|
+
return norm_score
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
normalize_method_dict = {
|
|
43
|
+
'mm': normalize_mm,
|
|
44
|
+
'tmm': normalize_tmm,
|
|
45
|
+
'z': normalize_z,
|
|
46
|
+
'dbsf': normalize_dbsf,
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
@retrieval_node
|
|
51
|
+
def hybrid_cc(
|
|
52
|
+
ids: Tuple,
|
|
53
|
+
scores: Tuple,
|
|
54
|
+
top_k: int,
|
|
55
|
+
weight: float,
|
|
56
|
+
normalize_method: str = 'mm',
|
|
57
|
+
semantic_theoretical_min_value: float = -1.0,
|
|
58
|
+
lexical_theoretical_min_value: float = 0.0,
|
|
59
|
+
) -> Tuple[List[List[str]], List[List[float]]]:
|
|
60
|
+
"""
|
|
61
|
+
Hybrid CC function.
|
|
62
|
+
CC (convex combination) is a method to fuse lexical and semantic retrieval results.
|
|
63
|
+
It is a method that first normalizes the scores of each retrieval result,
|
|
64
|
+
and then combines them with the given weights.
|
|
65
|
+
It is uniquer than other retrieval modules, because it does not really execute retrieval,
|
|
66
|
+
but just fuse the results of other retrieval functions.
|
|
67
|
+
So you have to run more than two retrieval modules before running this function.
|
|
68
|
+
And collect ids and scores result from each retrieval module.
|
|
69
|
+
Make it as tuple and input it to this function.
|
|
70
|
+
|
|
71
|
+
:param ids: The tuple of ids that you want to fuse.
|
|
72
|
+
The length of this must be the same as the length of scores.
|
|
73
|
+
The semantic retrieval ids must be the first index.
|
|
74
|
+
:param scores: The retrieve scores that you want to fuse.
|
|
75
|
+
The length of this must be the same as the length of ids.
|
|
76
|
+
The semantic retrieval scores must be the first index.
|
|
77
|
+
:param top_k: The number of passages to be retrieved.
|
|
78
|
+
:param normalize_method: The normalization method to use.
|
|
79
|
+
There are some normalization method that you can use at the hybrid cc method.
|
|
80
|
+
AutoRAG support following.
|
|
81
|
+
- `mm`: Min-max scaling
|
|
82
|
+
- `tmm`: Theoretical min-max scaling
|
|
83
|
+
- `z`: z-score normalization
|
|
84
|
+
- `dbsf`: 3-sigma normalization
|
|
85
|
+
:param weight: The weight value. If the weight is 1.0, it means the
|
|
86
|
+
weight to the semantic module will be 1.0 and weight to the lexical module will be 0.0.
|
|
87
|
+
:param semantic_theoretical_min_value: This value used by `tmm` normalization method. You can set the
|
|
88
|
+
theoretical minimum value by yourself. Default is -1.
|
|
89
|
+
:param lexical_theoretical_min_value: This value used by `tmm` normalization method. You can set the
|
|
90
|
+
theoretical minimum value by yourself. Default is 0.
|
|
91
|
+
:return: The tuple of ids and fused scores that fused by CC. Plus, the third element is selected weight value.
|
|
92
|
+
"""
|
|
93
|
+
assert len(ids) == len(scores), "The length of ids and scores must be the same."
|
|
94
|
+
assert len(ids) > 1, "You must input more than one retrieval results."
|
|
95
|
+
assert top_k > 0, "top_k must be greater than 0."
|
|
96
|
+
assert weight >= 0, "The weight must be greater than 0."
|
|
97
|
+
assert weight <= 1, "The weight must be less than 1."
|
|
98
|
+
|
|
99
|
+
df = pd.DataFrame({
|
|
100
|
+
'semantic_ids': ids[0],
|
|
101
|
+
'lexical_ids': ids[1],
|
|
102
|
+
'semantic_score': scores[0],
|
|
103
|
+
'lexical_score': scores[1],
|
|
104
|
+
})
|
|
105
|
+
|
|
106
|
+
def cc_pure_apply(row):
|
|
107
|
+
return fuse_per_query(row['semantic_ids'], row['lexical_ids'],
|
|
108
|
+
row['semantic_score'], row['lexical_score'],
|
|
109
|
+
normalize_method=normalize_method,
|
|
110
|
+
weight=weight, top_k=top_k,
|
|
111
|
+
semantic_theoretical_min_value=semantic_theoretical_min_value,
|
|
112
|
+
lexical_theoretical_min_value=lexical_theoretical_min_value)
|
|
113
|
+
|
|
114
|
+
# fixed weight
|
|
115
|
+
df[['cc_id', 'cc_score']] = df.apply(lambda row: cc_pure_apply(row), axis=1,
|
|
116
|
+
result_type='expand')
|
|
117
|
+
return df['cc_id'].tolist(), df['cc_score'].tolist()
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
def fuse_per_query(semantic_ids: List[str], lexical_ids: List[str],
|
|
121
|
+
semantic_scores: List[float], lexical_scores: List[float],
|
|
122
|
+
normalize_method: str,
|
|
123
|
+
weight: float,
|
|
124
|
+
top_k: int,
|
|
125
|
+
semantic_theoretical_min_value: float,
|
|
126
|
+
lexical_theoretical_min_value: float):
|
|
127
|
+
normalize_func = normalize_method_dict[normalize_method]
|
|
128
|
+
norm_semantic_scores = normalize_func(semantic_scores, semantic_theoretical_min_value)
|
|
129
|
+
norm_lexical_scores = normalize_func(lexical_scores, lexical_theoretical_min_value)
|
|
130
|
+
ids = [semantic_ids, lexical_ids]
|
|
131
|
+
scores = [norm_semantic_scores, norm_lexical_scores]
|
|
132
|
+
df = pd.concat([pd.Series(dict(zip(_id, score))) for _id, score in zip(ids, scores)], axis=1)
|
|
133
|
+
df.columns = ['semantic', 'lexical']
|
|
134
|
+
df = df.fillna(0)
|
|
135
|
+
df['weighted_sum'] = df.mul((weight, 1.0 - weight)).sum(axis=1)
|
|
136
|
+
df = df.sort_values(by='weighted_sum', ascending=False)
|
|
137
|
+
return df.index.tolist()[:top_k], df['weighted_sum'][:top_k].tolist()
|
|
@@ -10,7 +10,8 @@ def hybrid_rrf(
|
|
|
10
10
|
ids: Tuple,
|
|
11
11
|
scores: Tuple,
|
|
12
12
|
top_k: int,
|
|
13
|
-
|
|
13
|
+
weight: int = 60,
|
|
14
|
+
rrf_k: int = -1, ) -> Tuple[List[List[str]], List[List[float]]]:
|
|
14
15
|
"""
|
|
15
16
|
Hybrid RRF function.
|
|
16
17
|
RRF (Rank Reciprocal Fusion) is a method to fuse multiple retrieval results.
|
|
@@ -27,15 +28,23 @@ def hybrid_rrf(
|
|
|
27
28
|
:param scores: The retrieve scores that you want to fuse.
|
|
28
29
|
The length of this must be the same as the length of ids.
|
|
29
30
|
:param top_k: The number of passages to be retrieved.
|
|
30
|
-
:param
|
|
31
|
+
:param weight: Hyperparameter for RRF.
|
|
32
|
+
It was originally rrf_k value.
|
|
31
33
|
Default is 60.
|
|
32
34
|
For more information, please visit our documentation.
|
|
35
|
+
:param rrf_k: (Deprecated) Hyperparameter for RRF.
|
|
36
|
+
It was originally rrf_k value. Will remove at further version.
|
|
33
37
|
:return: The tuple of ids and fused scores that fused by RRF.
|
|
34
38
|
"""
|
|
35
39
|
assert len(ids) == len(scores), "The length of ids and scores must be the same."
|
|
36
40
|
assert len(ids) > 1, "You must input more than one retrieval results."
|
|
37
41
|
assert top_k > 0, "top_k must be greater than 0."
|
|
38
|
-
assert
|
|
42
|
+
assert weight > 0, "rrf_k must be greater than 0."
|
|
43
|
+
|
|
44
|
+
if rrf_k != -1:
|
|
45
|
+
weight = int(rrf_k)
|
|
46
|
+
else:
|
|
47
|
+
weight = int(weight)
|
|
39
48
|
|
|
40
49
|
id_df = pd.DataFrame({f'id_{i}': id_list for i, id_list in enumerate(ids)})
|
|
41
50
|
score_df = pd.DataFrame({f'score_{i}': score_list for i, score_list in enumerate(scores)})
|
|
@@ -44,9 +53,9 @@ def hybrid_rrf(
|
|
|
44
53
|
def rrf_pure_apply(row):
|
|
45
54
|
ids_tuple = tuple(row[[f'id_{i}' for i in range(len(ids))]].values)
|
|
46
55
|
scores_tuple = tuple(row[[f'score_{i}' for i in range(len(scores))]].values)
|
|
47
|
-
return pd.Series(rrf_pure(ids_tuple, scores_tuple,
|
|
56
|
+
return pd.Series(rrf_pure(ids_tuple, scores_tuple, weight, top_k))
|
|
48
57
|
|
|
49
|
-
df[['rrf_id', 'rrf_score']] = df.
|
|
58
|
+
df[['rrf_id', 'rrf_score']] = df.apply(rrf_pure_apply, axis=1)
|
|
50
59
|
return df['rrf_id'].tolist(), df['rrf_score'].tolist()
|
|
51
60
|
|
|
52
61
|
|