AutoRAG 0.1.12__tar.gz → 0.2.0__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.1.12 → autorag-0.2.0}/.github/workflows/test.yml +0 -3
- {autorag-0.1.12 → autorag-0.2.0}/AutoRAG.egg-info/PKG-INFO +20 -6
- {autorag-0.1.12 → autorag-0.2.0}/AutoRAG.egg-info/SOURCES.txt +4 -3
- {autorag-0.1.12 → autorag-0.2.0}/AutoRAG.egg-info/requires.txt +5 -0
- {autorag-0.1.12 → autorag-0.2.0}/PKG-INFO +20 -6
- {autorag-0.1.12 → autorag-0.2.0}/README.md +14 -5
- autorag-0.2.0/autorag/VERSION +1 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/__init__.py +2 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/cli.py +8 -0
- autorag-0.2.0/autorag/dashboard.py +132 -0
- autorag-0.2.0/autorag/evaluate/retrieval.py +67 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/generator/run.py +3 -2
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passageaugmenter/run.py +3 -2
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagecompressor/run.py +12 -14
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagefilter/run.py +3 -2
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagereranker/run.py +3 -2
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/promptmaker/run.py +8 -5
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/queryexpansion/run.py +7 -5
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/retrieval/run.py +3 -2
- {autorag-0.1.12 → autorag-0.2.0}/autorag/strategy.py +39 -7
- {autorag-0.1.12 → autorag-0.2.0}/autorag/utils/util.py +65 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/api_spec/autorag.evaluate.metric.rst +0 -8
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/api_spec/autorag.rst +8 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/index.rst +1 -0
- autorag-0.2.0/docs/source/optimization/strategies.md +54 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/tutorial.md +9 -0
- {autorag-0.1.12 → autorag-0.2.0}/requirements.txt +7 -0
- {autorag-0.1.12 → autorag-0.2.0}/sample_config/full.yaml +1 -1
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/evaluate/test_retrieval_evaluate.py +39 -30
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/generator/test_run_generator_node.py +1 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passagecompressor/test_run_passage_compressor_node.py +6 -6
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/promptmaker/test_prompt_maker_run.py +1 -1
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/queryexpansion/test_query_expansion_run.py +1 -1
- autorag-0.2.0/tests/autorag/test_dashboard.py +32 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/test_evaluator.py +0 -2
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/test_strategy.py +22 -10
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/utils/test_util.py +62 -1
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/config.yaml +4 -9
- {autorag-0.1.12/tests/resources/result_project/2 → autorag-0.2.0/tests/resources/result_project/1}/config.yaml +8 -11
- {autorag-0.1.12/tests/resources/result_project/1 → autorag-0.2.0/tests/resources/result_project/2}/config.yaml +2 -5
- autorag-0.1.12/autorag/VERSION +0 -1
- autorag-0.1.12/autorag/evaluate/metric/retrieval_no_gt.py +0 -37
- autorag-0.1.12/autorag/evaluate/retrieval.py +0 -70
- autorag-0.1.12/tests/autorag/evaluate/metric/test_retrieval_no_gt_metric.py +0 -26
- {autorag-0.1.12 → autorag-0.2.0}/.github/dependabot.yml +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/.github/workflows/publish.yml +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/.github/workflows/sphinx.yml +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/.gitignore +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/AutoRAG.egg-info/dependency_links.txt +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/AutoRAG.egg-info/entry_points.txt +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/AutoRAG.egg-info/top_level.txt +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/CODE_OF_CONDUCT.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/CONTRIBUTING.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/LICENSE +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/data/__init__.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/data/corpus/__init__.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/data/corpus/langchain.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/data/corpus/llama_index.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/data/qacreation/__init__.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/data/qacreation/base.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/data/qacreation/llama_index.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/data/qacreation/llama_index_default_prompt.txt +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/data/qacreation/ragas.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/data/qacreation/simple.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/data/utils/__init__.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/data/utils/util.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/deploy.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/evaluate/__init__.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/evaluate/generation.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/evaluate/metric/__init__.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/evaluate/metric/g_eval_prompts/coh_detailed.txt +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/evaluate/metric/g_eval_prompts/con_detailed.txt +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/evaluate/metric/g_eval_prompts/flu_detailed.txt +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/evaluate/metric/g_eval_prompts/rel_detailed.txt +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/evaluate/metric/generation.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/evaluate/metric/retrieval.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/evaluate/metric/retrieval_contents.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/evaluate/metric/util.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/evaluate/retrieval_contents.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/evaluate/util.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/evaluator.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/node_line.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/__init__.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/generator/__init__.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/generator/base.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/generator/llama_index_llm.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/generator/openai_llm.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/generator/vllm.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passageaugmenter/__init__.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passageaugmenter/base.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passageaugmenter/pass_passage_augmenter.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passageaugmenter/prev_next_augmenter.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagecompressor/__init__.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagecompressor/base.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagecompressor/pass_compressor.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagecompressor/refine.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagecompressor/tree_summarize.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagefilter/__init__.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagefilter/base.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagefilter/pass_passage_filter.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagefilter/percentile_cutoff.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagefilter/recency.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagefilter/similarity_percentile_cutoff.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagefilter/similarity_threshold_cutoff.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagefilter/threshold_cutoff.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagereranker/__init__.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagereranker/base.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagereranker/cohere.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagereranker/colbert.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagereranker/flag_embedding.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagereranker/flag_embedding_llm.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagereranker/jina.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagereranker/koreranker.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagereranker/monot5.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagereranker/pass_reranker.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagereranker/rankgpt.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagereranker/sentence_transformer.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagereranker/tart/__init__.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagereranker/tart/modeling_enc_t5.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagereranker/tart/tart.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagereranker/tart/tokenization_enc_t5.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagereranker/time_reranker.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/passagereranker/upr.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/promptmaker/__init__.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/promptmaker/base.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/promptmaker/fstring.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/promptmaker/long_context_reorder.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/queryexpansion/__init__.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/queryexpansion/base.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/queryexpansion/hyde.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/queryexpansion/pass_query_expansion.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/queryexpansion/query_decompose.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/retrieval/__init__.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/retrieval/base.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/retrieval/bm25.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/retrieval/hybrid_cc.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/retrieval/hybrid_dbsf.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/retrieval/hybrid_rrf.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/retrieval/hybrid_rsf.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/nodes/retrieval/vectordb.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/schema/__init__.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/schema/module.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/schema/node.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/support.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/utils/__init__.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/utils/preprocess.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/autorag/web.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/Makefile +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/make.bat +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/requirements.txt +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/_static/data_creation.png +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/_static/data_folder.png +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/_static/dcg.png +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/_static/f1_score.png +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/_static/map.png +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/_static/mrr.png +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/_static/ndcg.png +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/_static/ndcg_formula.png +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/_static/node_folder.png +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/_static/node_line_folder.png +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/_static/node_line_summary.png +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/_static/node_lines.png +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/_static/node_summary.png +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/_static/project_folder_example.png +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/_static/project_folders.png +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/_static/resources_folder.png +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/_static/roadmap/RAG_paradigms.png +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/_static/roadmap/advanced_RAG.png +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/_static/roadmap/cycle.png +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/_static/roadmap/merger.png +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/_static/roadmap/node_line_modular.png +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/_static/roadmap/policy.png +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/_static/samsung_sundae.jpeg +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/_static/trial_folder.png +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/_static/trial_json.png +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/_static/trial_summary.png +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/_static/web_interface.png +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/api_spec/autorag.data.corpus.rst +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/api_spec/autorag.data.qacreation.rst +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/api_spec/autorag.data.rst +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/api_spec/autorag.data.utils.rst +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/api_spec/autorag.evaluate.rst +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/api_spec/autorag.nodes.generator.rst +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/api_spec/autorag.nodes.passageaugmenter.rst +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/api_spec/autorag.nodes.passagecompressor.rst +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/api_spec/autorag.nodes.passagefilter.rst +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/api_spec/autorag.nodes.passagereranker.rst +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/api_spec/autorag.nodes.passagereranker.tart.rst +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/api_spec/autorag.nodes.promptmaker.rst +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/api_spec/autorag.nodes.queryexpansion.rst +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/api_spec/autorag.nodes.retrieval.rst +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/api_spec/autorag.nodes.rst +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/api_spec/autorag.schema.rst +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/api_spec/autorag.utils.rst +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/api_spec/modules.rst +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/conf.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/data_creation/data_format.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/data_creation/ragas.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/data_creation/tutorial.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/deploy/api_endpoint.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/deploy/web.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/evaluate_metrics/generation.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/evaluate_metrics/retrieval.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/evaluate_metrics/retrieval_contents.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/install.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/local_model.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/generator/generator.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/generator/llama_index_llm.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/generator/openai_llm.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/generator/vllm.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/index.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/passage_augmenter/passage_augmenter.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/passage_augmenter/prev_next_augmenter.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/passage_compressor/passage_compressor.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/passage_compressor/refine.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/passage_compressor/tree_summarize.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/passage_filter/passage_filter.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/passage_filter/percentile_cutoff.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/passage_filter/recency_filter.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/passage_filter/similarity_percentile_cutoff.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/passage_filter/similarity_threshold_cutoff.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/passage_filter/threshold_cutoff.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/passage_reranker/cohere.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/passage_reranker/colbert.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/passage_reranker/flag_embedding_llm_reranker.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/passage_reranker/flag_embedding_reranker.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/passage_reranker/jina_reranker.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/passage_reranker/koreranker.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/passage_reranker/monot5.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/passage_reranker/passage_reranker.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/passage_reranker/rankgpt.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/passage_reranker/sentence_transformer_reranker.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/passage_reranker/tart.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/passage_reranker/time_reranker.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/passage_reranker/upr.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/prompt_maker/fstring.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/prompt_maker/long_context_reorder.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/prompt_maker/prompt_maker.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/query_expansion/hyde.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/query_expansion/query_decompose.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/query_expansion/query_expansion.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/retrieval/bm25.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/retrieval/hybrid_cc.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/retrieval/hybrid_dbsf.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/retrieval/hybrid_rrf.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/retrieval/hybrid_rsf.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/retrieval/retrieval.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/nodes/retrieval/vectordb.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/optimization/custom_config.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/optimization/folder_structure.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/optimization/optimization.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/optimization/sample_full_config.yaml +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/roadmap/modular_rag.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/structure.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/docs/source/troubleshooting.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/pyproject.toml +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/sample_config/compact_local.yaml +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/sample_config/compact_openai.yaml +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/sample_config/config_korean.yaml +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/sample_config/extracted_sample.yaml +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/sample_config/simple_local.yaml +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/sample_config/simple_openai.yaml +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/sample_dataset/README.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/sample_dataset/eli5/load_eli5_dataset.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/sample_dataset/msmarco/load_msmarco_dataset.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/sample_dataset/triviaqa/load_triviaqa_dataset.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/setup.cfg +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/data/corpus/test_base.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/data/corpus/test_langchain.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/data/corpus/test_llama_index_corpus.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/data/qacreation/test_base_qacreation.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/data/qacreation/test_llama_index_qacreation.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/data/qacreation/test_ragas_qa_creation.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/data/qacreation/test_simple.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/evaluate/metric/test_generation_metric.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/evaluate/metric/test_retrieval_contents_metric.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/evaluate/metric/test_retrieval_metric.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/evaluate/test_evaluate_util.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/evaluate/test_generation_evaluate.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/evaluate/test_retrieval_contents_evaluate.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/generator/test_generator_base.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/generator/test_llama_index_llm.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/generator/test_openai.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/generator/test_vllm.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passageaugmenter/test_base_passage_augmenter.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passageaugmenter/test_pass_passage_augmenter.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passageaugmenter/test_prev_next_augmenter.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passageaugmenter/test_run_passage_augmenter.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passagecompressor/test_base_passage_compressor.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passagecompressor/test_pass_compressor.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passagecompressor/test_refine.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passagecompressor/test_tree_summarize.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passagefilter/test_pass_passage_filter.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passagefilter/test_passage_filter_base.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passagefilter/test_passage_filter_run.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passagefilter/test_percentile_cutoff.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passagefilter/test_recency_filter.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passagefilter/test_similarity_percentile_cutoff.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passagefilter/test_similarity_threshold_cutoff.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passagefilter/test_threshold_cutoff.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passagereranker/test_cohere_reranker.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passagereranker/test_colbert_reranker.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passagereranker/test_flag_embedding.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passagereranker/test_flag_embedding_llm.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passagereranker/test_jina_reranker.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passagereranker/test_koreranker.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passagereranker/test_monot5.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passagereranker/test_pass_reranker.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passagereranker/test_passage_reranker_base.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passagereranker/test_passage_reranker_run.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passagereranker/test_rankgpt.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passagereranker/test_sentence_transformer.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passagereranker/test_tart.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passagereranker/test_time_reranker.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/passagereranker/test_upr.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/promptmaker/test_fstring.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/promptmaker/test_long_context_reorder.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/promptmaker/test_prompt_maker_base.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/queryexpansion/test_hyde.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/queryexpansion/test_pass_query_expansion.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/queryexpansion/test_query_decompose.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/queryexpansion/test_query_expansion_base.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/retrieval/test_bm25.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/retrieval/test_hybrid_base.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/retrieval/test_hybrid_cc.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/retrieval/test_hybrid_dbsf.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/retrieval/test_hybrid_rrf.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/retrieval/test_hybrid_rsf.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/retrieval/test_retrieval_base.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/retrieval/test_run_retrieval_node.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/nodes/retrieval/test_vectordb.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/schema/test_module_schema.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/schema/test_node_schema.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/test_cli.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/test_deploy.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/test_support.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/test_web.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/autorag/utils/test_preprocess.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/conftest.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/delete_tests.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/mock.py +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/requirements.txt +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/README.md +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/corpus_data_sample.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/data_creation/raw_dir/sample1.txt +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/data_creation/raw_dir/sample2.txt +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/data_creation/raw_dir/sample3.txt +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/full.yaml +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/qa_data_sample.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/qa_gen_prompts/prompt1.txt +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/qa_gen_prompts/prompt2.txt +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/qa_gen_prompts/prompt3.txt +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/qa_test_data_sample.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/post_retrieve_node_line/generator/0.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/post_retrieve_node_line/generator/1.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/post_retrieve_node_line/generator/2.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/post_retrieve_node_line/generator/3.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/post_retrieve_node_line/generator/4.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/post_retrieve_node_line/generator/5.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/post_retrieve_node_line/generator/best_5.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/post_retrieve_node_line/generator/summary.csv +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/post_retrieve_node_line/prompt_maker/0.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/post_retrieve_node_line/prompt_maker/1.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/post_retrieve_node_line/prompt_maker/best_0.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/post_retrieve_node_line/prompt_maker/summary.csv +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/post_retrieve_node_line/summary.csv +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/0.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/1.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/2.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/best_0.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/summary.csv +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/pre_retrieve_node_line/summary.csv +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/retrieve_node_line/passage_compressor/0.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/retrieve_node_line/passage_compressor/best_0.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/retrieve_node_line/passage_compressor/summary.csv +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/retrieve_node_line/passage_reranker/0.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/retrieve_node_line/passage_reranker/1.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/retrieve_node_line/passage_reranker/best_0.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/retrieve_node_line/passage_reranker/summary.csv +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/retrieve_node_line/retrieval/0.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/retrieve_node_line/retrieval/1.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/retrieve_node_line/retrieval/best_0.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/retrieve_node_line/retrieval/summary.csv +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/retrieve_node_line/summary.csv +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/0/summary.csv +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/0.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/1.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/2.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/best_0.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/summary.csv +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/1/pre_retrieve_node_line/summary.csv +0 -0
- {autorag-0.1.12/tests/resources/result_project/1/retrieve_node_line/passage_compressor → autorag-0.2.0/tests/resources/result_project/1/retrieve_node_line/passage_filter}/0.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/1/retrieve_node_line/passage_reranker/0.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/1/retrieve_node_line/passage_reranker/1.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/1/retrieve_node_line/passage_reranker/best_0.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/1/retrieve_node_line/passage_reranker/summary.csv +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/1/retrieve_node_line/retrieval/0.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/1/retrieve_node_line/retrieval/1.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/1/retrieve_node_line/retrieval/best_0.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/1/retrieve_node_line/retrieval/summary.csv +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/2/post_retrieve_node_line/prompt_maker/0.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/0.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/1.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/2.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/best_0.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/summary.csv +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/2/pre_retrieve_node_line/summary.csv +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/2/retrieve_node_line/passage_compressor/0.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/2/retrieve_node_line/passage_compressor/best_0.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/2/retrieve_node_line/passage_compressor/summary.csv +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/2/retrieve_node_line/passage_reranker/0.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/2/retrieve_node_line/passage_reranker/1.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/2/retrieve_node_line/passage_reranker/best_0.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/2/retrieve_node_line/passage_reranker/summary.csv +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/2/retrieve_node_line/retrieval/0.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/2/retrieve_node_line/retrieval/1.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/2/retrieve_node_line/retrieval/best_0.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/2/retrieve_node_line/retrieval/summary.csv +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/2/retrieve_node_line/summary.csv +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/3/config.yaml +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/best.yaml +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/data/corpus.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/data/qa.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/resources/bm25_porter_stemmer.pkl +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/resources/chroma/6595d304-5270-4d9f-a267-c191366804ce/data_level0.bin +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/resources/chroma/6595d304-5270-4d9f-a267-c191366804ce/header.bin +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/resources/chroma/6595d304-5270-4d9f-a267-c191366804ce/length.bin +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/resources/chroma/6595d304-5270-4d9f-a267-c191366804ce/link_lists.bin +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/resources/chroma/chroma.sqlite3 +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/result_project/trial.json +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/sample_contents_nqa.csv +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/sample_project/data/corpus.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/sample_project/data/qa.parquet +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/sample_project/resources/bm25_gpt2.pkl +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/sample_project/resources/bm25_porter_stemmer.pkl +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/tests/resources/simple.yaml +0 -0
- {autorag-0.1.12 → autorag-0.2.0}/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.
|
|
3
|
+
Version: 0.2.0
|
|
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
|
|
@@ -260,6 +260,11 @@ Requires-Dist: llama-index-llms-openai-like
|
|
|
260
260
|
Requires-Dist: llama-index-retrievers-bm25
|
|
261
261
|
Requires-Dist: streamlit
|
|
262
262
|
Requires-Dist: langchain-core>=0.1.6
|
|
263
|
+
Requires-Dist: panel
|
|
264
|
+
Requires-Dist: seaborn
|
|
265
|
+
Requires-Dist: ipykernel
|
|
266
|
+
Requires-Dist: ipywidgets
|
|
267
|
+
Requires-Dist: ipywidgets_bokeh
|
|
263
268
|
|
|
264
269
|
# AutoRAG
|
|
265
270
|
|
|
@@ -295,7 +300,8 @@ You can see on [YouTube](https://youtu.be/2ojK8xjyXAU?feature=shared)
|
|
|
295
300
|
- [1. Prepare your evaluation data](#1-prepare-your-evaluation-data)
|
|
296
301
|
- [2. Evaluate your data to various RAG modules](#2-evaluate-your-data-to-various-rag-modules)
|
|
297
302
|
- [3. Use a found optimal RAG pipeline](#3-use-a-found-optimal-rag-pipeline)
|
|
298
|
-
- [4.
|
|
303
|
+
- [4. Run Dashboard to see the result](#4-run-dashboard)
|
|
304
|
+
- [5. Share your RAG pipeline](#5-share-your-rag-pipeline)
|
|
299
305
|
- [+ Config yaml file](#-create-your-own-config-yaml-file)
|
|
300
306
|
- [Supporting RAG modules](#supporting-nodes--modules)
|
|
301
307
|
- [Roadmap](#roadmap)
|
|
@@ -425,7 +431,15 @@ You can run api server with CLI command.
|
|
|
425
431
|
autorag run_api --config_path your/path/to/pipeline.yaml --host 0.0.0.0 --port 8000
|
|
426
432
|
```
|
|
427
433
|
|
|
428
|
-
### 4.
|
|
434
|
+
### 4. Run Dashboard
|
|
435
|
+
|
|
436
|
+
You can run dashboard to easily see the result.
|
|
437
|
+
|
|
438
|
+
```bash
|
|
439
|
+
autorag dashboard --trial_dir /your/path/to/trial_dir
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
### 5. Share your RAG pipeline
|
|
429
443
|
|
|
430
444
|
You can use your RAG pipeline from extracted pipeline yaml file.
|
|
431
445
|
This extracted pipeline is great for sharing your RAG pipeline to others.
|
|
@@ -515,12 +529,12 @@ at [here](https://edai.notion.site/Supporting-metrics-867d71caefd7401c9264dd91ba
|
|
|
515
529
|
# 🛣Roadmap
|
|
516
530
|
|
|
517
531
|
- [ ] Policy Module for modular RAG pipeline
|
|
518
|
-
- [
|
|
532
|
+
- [x] Visualize evaluation result
|
|
519
533
|
- [ ] Visualize config yaml file
|
|
520
|
-
- [
|
|
534
|
+
- [x] More RAG modules support
|
|
521
535
|
- [x] Token usage strategy
|
|
522
536
|
- [ ] Multi-modal support
|
|
523
|
-
- [
|
|
537
|
+
- [x] More evaluation metrics
|
|
524
538
|
- [ ] Answer Filtering Module
|
|
525
539
|
- [x] Restart optimization from previous trial
|
|
526
540
|
|
|
@@ -18,6 +18,7 @@ AutoRAG.egg-info/top_level.txt
|
|
|
18
18
|
autorag/VERSION
|
|
19
19
|
autorag/__init__.py
|
|
20
20
|
autorag/cli.py
|
|
21
|
+
autorag/dashboard.py
|
|
21
22
|
autorag/deploy.py
|
|
22
23
|
autorag/evaluator.py
|
|
23
24
|
autorag/node_line.py
|
|
@@ -45,7 +46,6 @@ autorag/evaluate/metric/__init__.py
|
|
|
45
46
|
autorag/evaluate/metric/generation.py
|
|
46
47
|
autorag/evaluate/metric/retrieval.py
|
|
47
48
|
autorag/evaluate/metric/retrieval_contents.py
|
|
48
|
-
autorag/evaluate/metric/retrieval_no_gt.py
|
|
49
49
|
autorag/evaluate/metric/util.py
|
|
50
50
|
autorag/evaluate/metric/g_eval_prompts/coh_detailed.txt
|
|
51
51
|
autorag/evaluate/metric/g_eval_prompts/con_detailed.txt
|
|
@@ -234,6 +234,7 @@ docs/source/optimization/custom_config.md
|
|
|
234
234
|
docs/source/optimization/folder_structure.md
|
|
235
235
|
docs/source/optimization/optimization.md
|
|
236
236
|
docs/source/optimization/sample_full_config.yaml
|
|
237
|
+
docs/source/optimization/strategies.md
|
|
237
238
|
docs/source/roadmap/modular_rag.md
|
|
238
239
|
sample_config/compact_local.yaml
|
|
239
240
|
sample_config/compact_openai.yaml
|
|
@@ -251,6 +252,7 @@ tests/delete_tests.py
|
|
|
251
252
|
tests/mock.py
|
|
252
253
|
tests/requirements.txt
|
|
253
254
|
tests/autorag/test_cli.py
|
|
255
|
+
tests/autorag/test_dashboard.py
|
|
254
256
|
tests/autorag/test_deploy.py
|
|
255
257
|
tests/autorag/test_evaluator.py
|
|
256
258
|
tests/autorag/test_strategy.py
|
|
@@ -270,7 +272,6 @@ tests/autorag/evaluate/test_retrieval_evaluate.py
|
|
|
270
272
|
tests/autorag/evaluate/metric/test_generation_metric.py
|
|
271
273
|
tests/autorag/evaluate/metric/test_retrieval_contents_metric.py
|
|
272
274
|
tests/autorag/evaluate/metric/test_retrieval_metric.py
|
|
273
|
-
tests/autorag/evaluate/metric/test_retrieval_no_gt_metric.py
|
|
274
275
|
tests/autorag/nodes/generator/test_generator_base.py
|
|
275
276
|
tests/autorag/nodes/generator/test_llama_index_llm.py
|
|
276
277
|
tests/autorag/nodes/generator/test_openai.py
|
|
@@ -386,7 +387,7 @@ tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/1.parque
|
|
|
386
387
|
tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/2.parquet
|
|
387
388
|
tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/best_0.parquet
|
|
388
389
|
tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/summary.csv
|
|
389
|
-
tests/resources/result_project/1/retrieve_node_line/
|
|
390
|
+
tests/resources/result_project/1/retrieve_node_line/passage_filter/0.parquet
|
|
390
391
|
tests/resources/result_project/1/retrieve_node_line/passage_reranker/0.parquet
|
|
391
392
|
tests/resources/result_project/1/retrieve_node_line/passage_reranker/1.parquet
|
|
392
393
|
tests/resources/result_project/1/retrieve_node_line/passage_reranker/best_0.parquet
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: AutoRAG
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.2.0
|
|
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
|
|
@@ -260,6 +260,11 @@ Requires-Dist: llama-index-llms-openai-like
|
|
|
260
260
|
Requires-Dist: llama-index-retrievers-bm25
|
|
261
261
|
Requires-Dist: streamlit
|
|
262
262
|
Requires-Dist: langchain-core>=0.1.6
|
|
263
|
+
Requires-Dist: panel
|
|
264
|
+
Requires-Dist: seaborn
|
|
265
|
+
Requires-Dist: ipykernel
|
|
266
|
+
Requires-Dist: ipywidgets
|
|
267
|
+
Requires-Dist: ipywidgets_bokeh
|
|
263
268
|
|
|
264
269
|
# AutoRAG
|
|
265
270
|
|
|
@@ -295,7 +300,8 @@ You can see on [YouTube](https://youtu.be/2ojK8xjyXAU?feature=shared)
|
|
|
295
300
|
- [1. Prepare your evaluation data](#1-prepare-your-evaluation-data)
|
|
296
301
|
- [2. Evaluate your data to various RAG modules](#2-evaluate-your-data-to-various-rag-modules)
|
|
297
302
|
- [3. Use a found optimal RAG pipeline](#3-use-a-found-optimal-rag-pipeline)
|
|
298
|
-
- [4.
|
|
303
|
+
- [4. Run Dashboard to see the result](#4-run-dashboard)
|
|
304
|
+
- [5. Share your RAG pipeline](#5-share-your-rag-pipeline)
|
|
299
305
|
- [+ Config yaml file](#-create-your-own-config-yaml-file)
|
|
300
306
|
- [Supporting RAG modules](#supporting-nodes--modules)
|
|
301
307
|
- [Roadmap](#roadmap)
|
|
@@ -425,7 +431,15 @@ You can run api server with CLI command.
|
|
|
425
431
|
autorag run_api --config_path your/path/to/pipeline.yaml --host 0.0.0.0 --port 8000
|
|
426
432
|
```
|
|
427
433
|
|
|
428
|
-
### 4.
|
|
434
|
+
### 4. Run Dashboard
|
|
435
|
+
|
|
436
|
+
You can run dashboard to easily see the result.
|
|
437
|
+
|
|
438
|
+
```bash
|
|
439
|
+
autorag dashboard --trial_dir /your/path/to/trial_dir
|
|
440
|
+
```
|
|
441
|
+
|
|
442
|
+
### 5. Share your RAG pipeline
|
|
429
443
|
|
|
430
444
|
You can use your RAG pipeline from extracted pipeline yaml file.
|
|
431
445
|
This extracted pipeline is great for sharing your RAG pipeline to others.
|
|
@@ -515,12 +529,12 @@ at [here](https://edai.notion.site/Supporting-metrics-867d71caefd7401c9264dd91ba
|
|
|
515
529
|
# 🛣Roadmap
|
|
516
530
|
|
|
517
531
|
- [ ] Policy Module for modular RAG pipeline
|
|
518
|
-
- [
|
|
532
|
+
- [x] Visualize evaluation result
|
|
519
533
|
- [ ] Visualize config yaml file
|
|
520
|
-
- [
|
|
534
|
+
- [x] More RAG modules support
|
|
521
535
|
- [x] Token usage strategy
|
|
522
536
|
- [ ] Multi-modal support
|
|
523
|
-
- [
|
|
537
|
+
- [x] More evaluation metrics
|
|
524
538
|
- [ ] Answer Filtering Module
|
|
525
539
|
- [x] Restart optimization from previous trial
|
|
526
540
|
|
|
@@ -32,7 +32,8 @@ You can see on [YouTube](https://youtu.be/2ojK8xjyXAU?feature=shared)
|
|
|
32
32
|
- [1. Prepare your evaluation data](#1-prepare-your-evaluation-data)
|
|
33
33
|
- [2. Evaluate your data to various RAG modules](#2-evaluate-your-data-to-various-rag-modules)
|
|
34
34
|
- [3. Use a found optimal RAG pipeline](#3-use-a-found-optimal-rag-pipeline)
|
|
35
|
-
- [4.
|
|
35
|
+
- [4. Run Dashboard to see the result](#4-run-dashboard)
|
|
36
|
+
- [5. Share your RAG pipeline](#5-share-your-rag-pipeline)
|
|
36
37
|
- [+ Config yaml file](#-create-your-own-config-yaml-file)
|
|
37
38
|
- [Supporting RAG modules](#supporting-nodes--modules)
|
|
38
39
|
- [Roadmap](#roadmap)
|
|
@@ -162,7 +163,15 @@ You can run api server with CLI command.
|
|
|
162
163
|
autorag run_api --config_path your/path/to/pipeline.yaml --host 0.0.0.0 --port 8000
|
|
163
164
|
```
|
|
164
165
|
|
|
165
|
-
### 4.
|
|
166
|
+
### 4. Run Dashboard
|
|
167
|
+
|
|
168
|
+
You can run dashboard to easily see the result.
|
|
169
|
+
|
|
170
|
+
```bash
|
|
171
|
+
autorag dashboard --trial_dir /your/path/to/trial_dir
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### 5. Share your RAG pipeline
|
|
166
175
|
|
|
167
176
|
You can use your RAG pipeline from extracted pipeline yaml file.
|
|
168
177
|
This extracted pipeline is great for sharing your RAG pipeline to others.
|
|
@@ -252,12 +261,12 @@ at [here](https://edai.notion.site/Supporting-metrics-867d71caefd7401c9264dd91ba
|
|
|
252
261
|
# 🛣Roadmap
|
|
253
262
|
|
|
254
263
|
- [ ] Policy Module for modular RAG pipeline
|
|
255
|
-
- [
|
|
264
|
+
- [x] Visualize evaluation result
|
|
256
265
|
- [ ] Visualize config yaml file
|
|
257
|
-
- [
|
|
266
|
+
- [x] More RAG modules support
|
|
258
267
|
- [x] Token usage strategy
|
|
259
268
|
- [ ] Multi-modal support
|
|
260
|
-
- [
|
|
269
|
+
- [x] More evaluation metrics
|
|
261
270
|
- [ ] Answer Filtering Module
|
|
262
271
|
- [x] Restart optimization from previous trial
|
|
263
272
|
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.2.0
|
|
@@ -4,6 +4,7 @@ import os
|
|
|
4
4
|
import sys
|
|
5
5
|
|
|
6
6
|
import transformers
|
|
7
|
+
from llama_index.core.llms.mock import MockLLM
|
|
7
8
|
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
|
|
8
9
|
from llama_index.embeddings.openai import OpenAIEmbedding
|
|
9
10
|
from llama_index.embeddings.openai import OpenAIEmbeddingModelType
|
|
@@ -55,6 +56,7 @@ generator_models = {
|
|
|
55
56
|
'openai': OpenAI,
|
|
56
57
|
'huggingfacellm': HuggingFaceLLM,
|
|
57
58
|
'openailike': OpenAILike,
|
|
59
|
+
'mock': MockLLM,
|
|
58
60
|
}
|
|
59
61
|
|
|
60
62
|
rich_format = "[%(filename)s:%(lineno)s] >> %(message)s"
|
|
@@ -8,6 +8,7 @@ from typing import Optional
|
|
|
8
8
|
|
|
9
9
|
import click
|
|
10
10
|
|
|
11
|
+
from autorag import dashboard
|
|
11
12
|
from autorag.deploy import Runner
|
|
12
13
|
from autorag.deploy import extract_best_config as original_extract_best_config
|
|
13
14
|
from autorag.evaluator import Evaluator
|
|
@@ -70,6 +71,12 @@ def run_web(yaml_path: Optional[str], project_dir: Optional[str], trial_path: Op
|
|
|
70
71
|
subprocess.run(['streamlit', 'run', web_py_path, '--', '--trial_path', trial_path])
|
|
71
72
|
|
|
72
73
|
|
|
74
|
+
@click.command()
|
|
75
|
+
@click.option('--trial_dir', type=click.Path(dir_okay=True, file_okay=False, exists=True), required=True)
|
|
76
|
+
def run_dashboard(trial_dir: str):
|
|
77
|
+
dashboard.run(trial_dir)
|
|
78
|
+
|
|
79
|
+
|
|
73
80
|
@click.command()
|
|
74
81
|
@click.option('--trial_path', type=click.Path(), help='Path to the trial directory.')
|
|
75
82
|
@click.option('--output_path', type=click.Path(), help='Path to the output directory.'
|
|
@@ -94,6 +101,7 @@ def restart_evaluate(trial_path):
|
|
|
94
101
|
cli.add_command(evaluate, 'evaluate')
|
|
95
102
|
cli.add_command(run_api, 'run_api')
|
|
96
103
|
cli.add_command(run_web, 'run_web')
|
|
104
|
+
cli.add_command(run_dashboard, 'dashboard')
|
|
97
105
|
cli.add_command(extract_best_config, 'extract_best_config')
|
|
98
106
|
cli.add_command(restart_evaluate, 'restart_evaluate')
|
|
99
107
|
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import ast
|
|
2
|
+
import logging
|
|
3
|
+
import os
|
|
4
|
+
from typing import Dict, List
|
|
5
|
+
|
|
6
|
+
import matplotlib.pyplot as plt
|
|
7
|
+
import pandas as pd
|
|
8
|
+
import panel as pn
|
|
9
|
+
import seaborn as sns
|
|
10
|
+
import yaml
|
|
11
|
+
|
|
12
|
+
from autorag.utils.util import dict_to_markdown, dict_to_markdown_table
|
|
13
|
+
|
|
14
|
+
pn.extension('terminal', 'tabulator', 'mathjax', 'ipywidgets',
|
|
15
|
+
console_output='disable', sizing_mode="stretch_width")
|
|
16
|
+
logger = logging.getLogger("AutoRAG")
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
def find_node_dir(trial_dir: str) -> List[str]:
|
|
20
|
+
trial_summary_df = pd.read_csv(os.path.join(trial_dir, 'summary.csv'))
|
|
21
|
+
result_paths = []
|
|
22
|
+
for idx, row in trial_summary_df.iterrows():
|
|
23
|
+
node_line_name = row['node_line_name']
|
|
24
|
+
node_type = row['node_type']
|
|
25
|
+
result_paths.append(os.path.join(trial_dir, node_line_name, node_type))
|
|
26
|
+
return result_paths
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
def get_metric_values(node_summary_df: pd.DataFrame) -> Dict:
|
|
30
|
+
non_metric_column_names = ['filename', 'module_name', 'module_params', 'execution_time', 'average_output_token',
|
|
31
|
+
'is_best']
|
|
32
|
+
best_row = node_summary_df.loc[node_summary_df['is_best']].drop(columns=non_metric_column_names, errors='ignore')
|
|
33
|
+
assert len(best_row) == 1, "The best module must be only one."
|
|
34
|
+
return best_row.iloc[0].to_dict()
|
|
35
|
+
|
|
36
|
+
|
|
37
|
+
def make_trial_summary_md(trial_dir):
|
|
38
|
+
markdown_text = f"""# Trial Result Summary
|
|
39
|
+
- Trial Directory : {trial_dir}
|
|
40
|
+
|
|
41
|
+
"""
|
|
42
|
+
node_dirs = find_node_dir(trial_dir)
|
|
43
|
+
for node_dir in node_dirs:
|
|
44
|
+
node_summary_filepath = os.path.join(node_dir, 'summary.csv')
|
|
45
|
+
node_type = os.path.basename(node_dir)
|
|
46
|
+
node_summary_df = pd.read_csv(node_summary_filepath)
|
|
47
|
+
best_row = node_summary_df.loc[node_summary_df['is_best']].iloc[0]
|
|
48
|
+
metric_dict = get_metric_values(node_summary_df)
|
|
49
|
+
markdown_text += f"""---
|
|
50
|
+
|
|
51
|
+
## {node_type} best module
|
|
52
|
+
|
|
53
|
+
### Module Name
|
|
54
|
+
|
|
55
|
+
{best_row['module_name']}
|
|
56
|
+
|
|
57
|
+
### Module Params
|
|
58
|
+
|
|
59
|
+
{dict_to_markdown(ast.literal_eval(best_row['module_params']), level=3)}
|
|
60
|
+
|
|
61
|
+
### Metric Values
|
|
62
|
+
|
|
63
|
+
{dict_to_markdown_table(metric_dict, key_column_name='metric_name', value_column_name='metric_value')}
|
|
64
|
+
|
|
65
|
+
"""
|
|
66
|
+
|
|
67
|
+
return markdown_text
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
def node_view(node_dir: str):
|
|
71
|
+
non_metric_column_names = ['filename', 'module_name', 'module_params', 'execution_time', 'average_output_token',
|
|
72
|
+
'is_best']
|
|
73
|
+
summary_df = pd.read_csv(os.path.join(node_dir, 'summary.csv'))
|
|
74
|
+
df_widget = pn.widgets.Tabulator(summary_df, name='Summary DataFrame')
|
|
75
|
+
# TODO: add on click listener for pop-up of each file detail.
|
|
76
|
+
# https://panel.holoviz.org/reference/widgets/Tabulator.html
|
|
77
|
+
|
|
78
|
+
try:
|
|
79
|
+
fig, ax = plt.subplots(figsize=(10, 5))
|
|
80
|
+
metric_df = summary_df.drop(columns=non_metric_column_names, errors='ignore')
|
|
81
|
+
sns.stripplot(data=metric_df, ax=ax)
|
|
82
|
+
strip_plot_pane = pn.pane.Matplotlib(fig, tight=True)
|
|
83
|
+
|
|
84
|
+
fig2, ax2 = plt.subplots(figsize=(10, 5))
|
|
85
|
+
sns.boxplot(data=metric_df, ax=ax2)
|
|
86
|
+
box_plot_pane = pn.pane.Matplotlib(fig2, tight=True)
|
|
87
|
+
plot_pane = pn.Row(strip_plot_pane, box_plot_pane)
|
|
88
|
+
|
|
89
|
+
layout = pn.Column("## Summary distribution plot", plot_pane, "## Summary DataFrame", df_widget)
|
|
90
|
+
except Exception as e:
|
|
91
|
+
logger.error(f'Skipping make boxplot and stripplot with error {e}')
|
|
92
|
+
layout = pn.Column("## Summary DataFrame", df_widget)
|
|
93
|
+
layout.servable()
|
|
94
|
+
return layout
|
|
95
|
+
|
|
96
|
+
|
|
97
|
+
CSS = """
|
|
98
|
+
div.card-margin:nth-child(1) {
|
|
99
|
+
max-height: 300px;
|
|
100
|
+
}
|
|
101
|
+
div.card-margin:nth-child(2) {
|
|
102
|
+
max-height: 400px;
|
|
103
|
+
}
|
|
104
|
+
"""
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
def yaml_to_markdown(yaml_filepath):
|
|
108
|
+
markdown_content = ""
|
|
109
|
+
with open(yaml_filepath, 'r', encoding='utf-8') as file:
|
|
110
|
+
try:
|
|
111
|
+
content = yaml.safe_load(file)
|
|
112
|
+
markdown_content += f"## {os.path.basename(yaml_filepath)}\n```yaml\n{yaml.dump(content, allow_unicode=True)}\n```\n\n"
|
|
113
|
+
except yaml.YAMLError as exc:
|
|
114
|
+
print(f"Error in {yaml_filepath}: {exc}")
|
|
115
|
+
return markdown_content
|
|
116
|
+
|
|
117
|
+
|
|
118
|
+
def run(trial_dir: str):
|
|
119
|
+
trial_summary_md = make_trial_summary_md(trial_dir=trial_dir)
|
|
120
|
+
trial_summary_tab = pn.pane.Markdown(trial_summary_md, sizing_mode='stretch_width')
|
|
121
|
+
|
|
122
|
+
node_views = [(str(os.path.basename(node_dir)), node_view(node_dir)) for node_dir in find_node_dir(trial_dir)]
|
|
123
|
+
|
|
124
|
+
yaml_file_markdown = yaml_to_markdown(os.path.join(trial_dir, "config.yaml"))
|
|
125
|
+
|
|
126
|
+
yaml_file = pn.pane.Markdown(yaml_file_markdown, sizing_mode='stretch_width')
|
|
127
|
+
|
|
128
|
+
tabs = pn.Tabs(('Summary', trial_summary_tab), *node_views, ('Used YAML file', yaml_file), dynamic=True)
|
|
129
|
+
|
|
130
|
+
template = pn.template.FastListTemplate(site="AutoRAG", title="Dashboard",
|
|
131
|
+
main=[tabs], raw_css=[CSS]).servable()
|
|
132
|
+
template.show()
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import functools
|
|
2
|
+
import warnings
|
|
3
|
+
from typing import List, Callable, Any, Tuple, Optional, Union, Dict
|
|
4
|
+
|
|
5
|
+
import pandas as pd
|
|
6
|
+
|
|
7
|
+
from autorag.evaluate.metric import (retrieval_recall, retrieval_precision, retrieval_f1, retrieval_ndcg, retrieval_mrr,
|
|
8
|
+
retrieval_map)
|
|
9
|
+
from autorag.evaluate.util import cast_metrics
|
|
10
|
+
|
|
11
|
+
RETRIEVAL_METRIC_FUNC_DICT = {func.__name__: func for func in
|
|
12
|
+
[retrieval_recall, retrieval_precision, retrieval_f1, retrieval_ndcg, retrieval_mrr,
|
|
13
|
+
retrieval_map]}
|
|
14
|
+
RETRIEVAL_NO_GT_METRIC_FUNC_DICT = {func.__name__: func for func in []}
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
def evaluate_retrieval(retrieval_gt: List[List[List[str]]], metrics: Union[List[str], List[Dict]],
|
|
18
|
+
queries: Optional[List[str]] = None, generation_gt: Optional[List[List[str]]] = None):
|
|
19
|
+
def decorator_evaluate_retrieval(
|
|
20
|
+
func: Callable[[Any], Tuple[List[List[str]], List[List[str]], List[List[float]]]]):
|
|
21
|
+
"""
|
|
22
|
+
Decorator for evaluating retrieval results.
|
|
23
|
+
You can use this decorator to any method that returns (contents, scores, ids),
|
|
24
|
+
which is the output of conventional retrieval modules.
|
|
25
|
+
|
|
26
|
+
:param func: Must return (contents, scores, ids)
|
|
27
|
+
:return: wrapper function that returns pd.DataFrame, which is the evaluation result.
|
|
28
|
+
"""
|
|
29
|
+
|
|
30
|
+
@functools.wraps(func)
|
|
31
|
+
def wrapper(*args, **kwargs) -> pd.DataFrame:
|
|
32
|
+
contents, pred_ids, scores = func(*args, **kwargs)
|
|
33
|
+
|
|
34
|
+
metric_scores = {}
|
|
35
|
+
metric_names, metric_params = cast_metrics(metrics)
|
|
36
|
+
|
|
37
|
+
for metric_name, metric_param in zip(metric_names, metric_params):
|
|
38
|
+
if metric_name in RETRIEVAL_METRIC_FUNC_DICT:
|
|
39
|
+
metric_func = RETRIEVAL_METRIC_FUNC_DICT[metric_name]
|
|
40
|
+
metric_scores[metric_name] = metric_func(retrieval_gt=retrieval_gt, pred_ids=pred_ids,
|
|
41
|
+
**metric_param)
|
|
42
|
+
elif metric_name in RETRIEVAL_NO_GT_METRIC_FUNC_DICT:
|
|
43
|
+
metric_func = RETRIEVAL_NO_GT_METRIC_FUNC_DICT[metric_name]
|
|
44
|
+
if queries is None:
|
|
45
|
+
raise ValueError(f"To using {metric_name}, you have to provide queries.")
|
|
46
|
+
if generation_gt is None:
|
|
47
|
+
raise ValueError(f"To using {metric_name}, you have to provide generation ground truth.")
|
|
48
|
+
metric_scores[metric_name] = metric_func(queries=queries, retrieved_contents=contents,
|
|
49
|
+
generation_gt=generation_gt, **metric_param)
|
|
50
|
+
else:
|
|
51
|
+
warnings.warn(
|
|
52
|
+
f"metric {metric_name} is not in supported metrics: {RETRIEVAL_METRIC_FUNC_DICT.keys()}"
|
|
53
|
+
f" and {RETRIEVAL_NO_GT_METRIC_FUNC_DICT.keys()}"
|
|
54
|
+
f"{metric_name} will be ignored.")
|
|
55
|
+
|
|
56
|
+
metric_result_df = pd.DataFrame(metric_scores)
|
|
57
|
+
execution_result_df = pd.DataFrame({
|
|
58
|
+
'retrieved_contents': contents,
|
|
59
|
+
'retrieved_ids': pred_ids,
|
|
60
|
+
'retrieve_scores': scores,
|
|
61
|
+
})
|
|
62
|
+
result_df = pd.concat([execution_result_df, metric_result_df], axis=1)
|
|
63
|
+
return result_df
|
|
64
|
+
|
|
65
|
+
return wrapper
|
|
66
|
+
|
|
67
|
+
return decorator_evaluate_retrieval
|
|
@@ -6,7 +6,7 @@ import pandas as pd
|
|
|
6
6
|
|
|
7
7
|
from autorag.evaluate import evaluate_generation
|
|
8
8
|
from autorag.evaluate.util import cast_metrics
|
|
9
|
-
from autorag.strategy import measure_speed, filter_by_threshold,
|
|
9
|
+
from autorag.strategy import measure_speed, filter_by_threshold, select_best
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
def run_generator_node(modules: List[Callable],
|
|
@@ -72,7 +72,8 @@ def run_generator_node(modules: List[Callable],
|
|
|
72
72
|
results, filenames = filter_by_threshold(results, average_times, strategies['speed_threshold'], filenames)
|
|
73
73
|
if strategies.get('token_threshold') is not None:
|
|
74
74
|
results, filenames = filter_by_threshold(results, token_usages, strategies['token_threshold'], filenames)
|
|
75
|
-
selected_result, selected_filename =
|
|
75
|
+
selected_result, selected_filename = select_best(results, metric_names, filenames,
|
|
76
|
+
strategies.get('strategy', 'mean'))
|
|
76
77
|
best_result = pd.concat([previous_result, selected_result], axis=1)
|
|
77
78
|
|
|
78
79
|
# add 'is_best' column at summary file
|
|
@@ -6,7 +6,7 @@ from typing import List, Callable, Dict
|
|
|
6
6
|
import pandas as pd
|
|
7
7
|
|
|
8
8
|
from autorag.nodes.retrieval.run import evaluate_retrieval_node
|
|
9
|
-
from autorag.strategy import measure_speed, filter_by_threshold,
|
|
9
|
+
from autorag.strategy import measure_speed, filter_by_threshold, select_best
|
|
10
10
|
|
|
11
11
|
logger = logging.getLogger("AutoRAG")
|
|
12
12
|
|
|
@@ -56,7 +56,8 @@ def run_passage_augmenter_node(modules: List[Callable],
|
|
|
56
56
|
# filter by strategies
|
|
57
57
|
if strategies.get('speed_threshold') is not None:
|
|
58
58
|
results, filenames = filter_by_threshold(results, average_times, strategies['speed_threshold'], filenames)
|
|
59
|
-
selected_result, selected_filename =
|
|
59
|
+
selected_result, selected_filename = select_best(results, strategies.get('metrics'), filenames,
|
|
60
|
+
strategies.get('strategy', 'mean'))
|
|
60
61
|
# change metric name columns to passage_augmenter_metric_name
|
|
61
62
|
selected_result = selected_result.rename(columns={
|
|
62
63
|
metric_name: f'passage_augmenter_{metric_name}' for metric_name in strategies['metrics']})
|
|
@@ -6,8 +6,7 @@ from typing import Callable, List, Dict
|
|
|
6
6
|
import pandas as pd
|
|
7
7
|
|
|
8
8
|
from autorag.evaluate.metric import retrieval_token_recall, retrieval_token_precision, retrieval_token_f1
|
|
9
|
-
from autorag.strategy import measure_speed, filter_by_threshold,
|
|
10
|
-
from autorag.utils import validate_qa_dataset, validate_corpus_dataset
|
|
9
|
+
from autorag.strategy import measure_speed, filter_by_threshold, select_best
|
|
11
10
|
from autorag.utils.util import fetch_contents
|
|
12
11
|
|
|
13
12
|
|
|
@@ -40,16 +39,21 @@ def run_passage_compressor_node(modules: List[Callable],
|
|
|
40
39
|
if not os.path.exists(save_dir):
|
|
41
40
|
os.makedirs(save_dir)
|
|
42
41
|
|
|
42
|
+
# make retrieval contents gt
|
|
43
|
+
qa_data = pd.read_parquet(os.path.join(data_dir, "qa.parquet"))
|
|
44
|
+
corpus_data = pd.read_parquet(os.path.join(data_dir, "corpus.parquet"))
|
|
45
|
+
# check qa_data have retrieval_gt
|
|
46
|
+
assert all(len(x[0]) > 0 for x in qa_data['retrieval_gt'].tolist()), \
|
|
47
|
+
"Can't use passage compressor if you don't have retrieval gt values in QA dataset."
|
|
48
|
+
|
|
43
49
|
# run modules
|
|
44
50
|
results, execution_times = zip(*map(lambda task: measure_speed(
|
|
45
51
|
task[0], project_dir=project_dir, previous_result=previous_result, **task[1]), zip(modules, module_params)))
|
|
46
52
|
results = list(results)
|
|
47
53
|
average_times = list(map(lambda x: x / len(results[0]), execution_times))
|
|
48
54
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
corpus_data = pd.read_parquet(os.path.join(data_dir, "corpus.parquet"))
|
|
52
|
-
retrieval_contents_gt = make_contents_gt(qa_data, corpus_data)
|
|
55
|
+
retrieval_contents_gt = list(map(lambda x: fetch_contents(corpus_data, x), qa_data['retrieval_gt'].tolist()))
|
|
56
|
+
retrieval_contents_gt = list(map(lambda x: list(itertools.chain.from_iterable(x)), retrieval_contents_gt))
|
|
53
57
|
|
|
54
58
|
# run metrics before filtering
|
|
55
59
|
if strategies.get('metrics') is None:
|
|
@@ -76,7 +80,8 @@ def run_passage_compressor_node(modules: List[Callable],
|
|
|
76
80
|
# filter by strategies
|
|
77
81
|
if strategies.get('speed_threshold') is not None:
|
|
78
82
|
results, filenames = filter_by_threshold(results, average_times, strategies['speed_threshold'], filenames)
|
|
79
|
-
selected_result, selected_filename =
|
|
83
|
+
selected_result, selected_filename = select_best(results, strategies.get('metrics'), filenames,
|
|
84
|
+
strategies.get('strategy', 'mean'))
|
|
80
85
|
new_retrieved_contents = selected_result['retrieved_contents']
|
|
81
86
|
previous_result['retrieved_contents'] = new_retrieved_contents
|
|
82
87
|
selected_result = selected_result.drop(columns=['retrieved_contents'])
|
|
@@ -114,10 +119,3 @@ def evaluate_passage_compressor_node(result_df: pd.DataFrame,
|
|
|
114
119
|
)), metrics))
|
|
115
120
|
result_df = pd.concat([result_df, pd.DataFrame(metrics_scores)], axis=1)
|
|
116
121
|
return result_df
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
def make_contents_gt(qa_data: pd.DataFrame, corpus_data: pd.DataFrame) -> List[List[str]]:
|
|
120
|
-
validate_qa_dataset(qa_data)
|
|
121
|
-
validate_corpus_dataset(corpus_data)
|
|
122
|
-
retrieval_gt_ids = qa_data['retrieval_gt'].apply(lambda x: list(itertools.chain.from_iterable(x))).tolist()
|
|
123
|
-
return fetch_contents(corpus_data, retrieval_gt_ids)
|
|
@@ -5,7 +5,7 @@ from typing import List, Callable, Dict
|
|
|
5
5
|
import pandas as pd
|
|
6
6
|
|
|
7
7
|
from autorag.nodes.retrieval.run import evaluate_retrieval_node
|
|
8
|
-
from autorag.strategy import measure_speed, filter_by_threshold,
|
|
8
|
+
from autorag.strategy import measure_speed, filter_by_threshold, select_best
|
|
9
9
|
|
|
10
10
|
|
|
11
11
|
def run_passage_filter_node(modules: List[Callable],
|
|
@@ -66,7 +66,8 @@ def run_passage_filter_node(modules: List[Callable],
|
|
|
66
66
|
# filter by strategies
|
|
67
67
|
if strategies.get('speed_threshold') is not None:
|
|
68
68
|
results, filenames = filter_by_threshold(results, average_times, strategies['speed_threshold'], filenames)
|
|
69
|
-
selected_result, selected_filename =
|
|
69
|
+
selected_result, selected_filename = select_best(results, strategies.get('metrics'), filenames,
|
|
70
|
+
strategies.get('strategy', 'mean'))
|
|
70
71
|
selected_result = selected_result.rename(columns={
|
|
71
72
|
metric_name: f'passage_filter_{metric_name}' for metric_name in strategies['metrics']})
|
|
72
73
|
previous_result = previous_result.drop(columns=['retrieved_contents', 'retrieved_ids', 'retrieve_scores'])
|
|
@@ -6,7 +6,7 @@ from typing import List, Callable, Dict
|
|
|
6
6
|
import pandas as pd
|
|
7
7
|
|
|
8
8
|
from autorag.nodes.retrieval.run import evaluate_retrieval_node
|
|
9
|
-
from autorag.strategy import measure_speed, filter_by_threshold,
|
|
9
|
+
from autorag.strategy import measure_speed, filter_by_threshold, select_best
|
|
10
10
|
|
|
11
11
|
logger = logging.getLogger("AutoRAG")
|
|
12
12
|
|
|
@@ -70,7 +70,8 @@ def run_passage_reranker_node(modules: List[Callable],
|
|
|
70
70
|
# filter by strategies
|
|
71
71
|
if strategies.get('speed_threshold') is not None:
|
|
72
72
|
results, filenames = filter_by_threshold(results, average_times, strategies['speed_threshold'], filenames)
|
|
73
|
-
selected_result, selected_filename =
|
|
73
|
+
selected_result, selected_filename = select_best(results, strategies.get('metrics'), filenames,
|
|
74
|
+
strategies.get('strategy', 'mean'))
|
|
74
75
|
# change metric name columns to passage_reranker_metric_name
|
|
75
76
|
selected_result = selected_result.rename(columns={
|
|
76
77
|
metric_name: f'passage_reranker_{metric_name}' for metric_name in strategies['metrics']})
|