AutoRAG 0.2.8__tar.gz → 0.2.9__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.8 → autorag-0.2.9}/AutoRAG.egg-info/PKG-INFO +1 -1
- {autorag-0.2.8 → autorag-0.2.9}/AutoRAG.egg-info/SOURCES.txt +4 -0
- {autorag-0.2.8 → autorag-0.2.9}/PKG-INFO +1 -1
- autorag-0.2.9/autorag/VERSION +1 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/data/qacreation/base.py +26 -14
- {autorag-0.2.8 → autorag-0.2.9}/autorag/evaluation/metric/generation.py +18 -5
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/promptmaker/__init__.py +1 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/promptmaker/base.py +10 -1
- autorag-0.2.9/autorag/nodes/promptmaker/window_replacement.py +46 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/support.py +1 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/api_spec/autorag.nodes.promptmaker.rst +8 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/data_creation/tutorial.md +10 -1
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/local_model.md +15 -9
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/passage_reranker/koreranker.md +5 -1
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/passage_reranker/monot5.md +4 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/passage_reranker/tart.md +5 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/prompt_maker/prompt_maker.md +1 -0
- autorag-0.2.9/docs/source/nodes/prompt_maker/window_replacement.md +33 -0
- {autorag-0.2.8 → autorag-0.2.9}/sample_config/config_korean.yaml +14 -16
- {autorag-0.2.8 → autorag-0.2.9}/sample_config/full.yaml +3 -0
- {autorag-0.2.8 → autorag-0.2.9}/sample_config/simple_local.yaml +2 -2
- autorag-0.2.9/sample_config/simple_ollama.yaml +49 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/data/qacreation/test_base_qacreation.py +26 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/evaluate/metric/test_generation_metric.py +0 -1
- autorag-0.2.9/tests/autorag/nodes/promptmaker/test_prompt_maker_base.py +28 -0
- autorag-0.2.9/tests/autorag/nodes/promptmaker/test_window_replacement.py +40 -0
- autorag-0.2.8/autorag/VERSION +0 -1
- autorag-0.2.8/tests/autorag/nodes/promptmaker/test_prompt_maker_base.py +0 -13
- {autorag-0.2.8 → autorag-0.2.9}/.github/FUNDING.yml +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/.github/dependabot.yml +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/.github/workflows/publish.yml +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/.github/workflows/sphinx.yml +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/.github/workflows/test.yml +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/.gitignore +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/AutoRAG.egg-info/dependency_links.txt +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/AutoRAG.egg-info/entry_points.txt +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/AutoRAG.egg-info/requires.txt +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/AutoRAG.egg-info/top_level.txt +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/CODE_OF_CONDUCT.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/CONTRIBUTING.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/LICENSE +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/README.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/__init__.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/cli.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/dashboard.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/data/__init__.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/data/corpus/__init__.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/data/corpus/langchain.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/data/corpus/llama_index.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/data/qacreation/__init__.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/data/qacreation/llama_index.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/data/qacreation/llama_index_default_prompt.txt +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/data/qacreation/ragas.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/data/qacreation/simple.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/data/utils/__init__.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/data/utils/util.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/deploy.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/evaluation/__init__.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/evaluation/generation.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/evaluation/metric/__init__.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/evaluation/metric/g_eval_prompts/coh_detailed.txt +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/evaluation/metric/g_eval_prompts/con_detailed.txt +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/evaluation/metric/g_eval_prompts/flu_detailed.txt +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/evaluation/metric/g_eval_prompts/rel_detailed.txt +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/evaluation/metric/retrieval.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/evaluation/metric/retrieval_contents.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/evaluation/metric/util.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/evaluation/retrieval.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/evaluation/retrieval_contents.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/evaluation/util.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/evaluator.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/node_line.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/__init__.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/generator/__init__.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/generator/base.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/generator/llama_index_llm.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/generator/openai_llm.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/generator/run.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/generator/vllm.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passageaugmenter/__init__.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passageaugmenter/base.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passageaugmenter/pass_passage_augmenter.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passageaugmenter/prev_next_augmenter.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passageaugmenter/run.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagecompressor/__init__.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagecompressor/base.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagecompressor/longllmlingua.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagecompressor/pass_compressor.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagecompressor/refine.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagecompressor/run.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagecompressor/tree_summarize.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagefilter/__init__.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagefilter/base.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagefilter/pass_passage_filter.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagefilter/percentile_cutoff.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagefilter/recency.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagefilter/run.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagefilter/similarity_percentile_cutoff.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagefilter/similarity_threshold_cutoff.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagefilter/threshold_cutoff.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagereranker/__init__.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagereranker/base.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagereranker/cohere.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagereranker/colbert.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagereranker/flag_embedding.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagereranker/flag_embedding_llm.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagereranker/jina.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagereranker/koreranker.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagereranker/monot5.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagereranker/pass_reranker.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagereranker/rankgpt.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagereranker/run.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagereranker/sentence_transformer.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagereranker/tart/__init__.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagereranker/tart/modeling_enc_t5.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagereranker/tart/tart.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagereranker/tart/tokenization_enc_t5.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagereranker/time_reranker.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/passagereranker/upr.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/promptmaker/fstring.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/promptmaker/long_context_reorder.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/promptmaker/run.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/queryexpansion/__init__.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/queryexpansion/base.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/queryexpansion/hyde.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/queryexpansion/multi_query_expansion.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/queryexpansion/pass_query_expansion.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/queryexpansion/query_decompose.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/queryexpansion/run.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/retrieval/__init__.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/retrieval/base.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/retrieval/bm25.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/retrieval/hybrid_cc.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/retrieval/hybrid_dbsf.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/retrieval/hybrid_rrf.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/retrieval/hybrid_rsf.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/retrieval/run.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/nodes/retrieval/vectordb.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/schema/__init__.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/schema/module.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/schema/node.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/strategy.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/utils/__init__.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/utils/preprocess.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/utils/util.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/autorag/web.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/Makefile +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/make.bat +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/requirements.txt +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/CNAME +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/_static/data_creation.png +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/_static/data_folder.png +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/_static/dcg.png +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/_static/f1_score.png +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/_static/map.png +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/_static/mrr.png +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/_static/ndcg.png +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/_static/ndcg_formula.png +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/_static/node_folder.png +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/_static/node_line_folder.png +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/_static/node_line_summary.png +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/_static/node_lines.png +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/_static/node_summary.png +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/_static/normal_distribution.png +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/_static/project_folder_example.png +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/_static/project_folders.png +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/_static/resources_folder.png +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/_static/roadmap/RAG_paradigms.png +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/_static/roadmap/advanced_RAG.png +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/_static/roadmap/cycle.png +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/_static/roadmap/merger.png +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/_static/roadmap/node_line_modular.png +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/_static/roadmap/policy.png +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/_static/samsung_sundae.jpeg +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/_static/score_fusion.png +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/_static/trial_folder.png +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/_static/trial_json.png +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/_static/trial_summary.png +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/_static/web_interface.png +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/api_spec/autorag.data.corpus.rst +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/api_spec/autorag.data.qacreation.rst +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/api_spec/autorag.data.rst +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/api_spec/autorag.data.utils.rst +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/api_spec/autorag.evaluation.metric.rst +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/api_spec/autorag.evaluation.rst +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/api_spec/autorag.nodes.generator.rst +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/api_spec/autorag.nodes.passageaugmenter.rst +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/api_spec/autorag.nodes.passagecompressor.rst +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/api_spec/autorag.nodes.passagefilter.rst +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/api_spec/autorag.nodes.passagereranker.rst +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/api_spec/autorag.nodes.passagereranker.tart.rst +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/api_spec/autorag.nodes.queryexpansion.rst +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/api_spec/autorag.nodes.retrieval.rst +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/api_spec/autorag.nodes.rst +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/api_spec/autorag.rst +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/api_spec/autorag.schema.rst +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/api_spec/autorag.utils.rst +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/api_spec/modules.rst +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/conf.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/data_creation/data_format.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/data_creation/ragas.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/deploy/api_endpoint.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/deploy/web.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/evaluate_metrics/generation.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/evaluate_metrics/retrieval.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/evaluate_metrics/retrieval_contents.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/index.rst +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/install.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/generator/generator.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/generator/llama_index_llm.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/generator/openai_llm.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/generator/vllm.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/index.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/passage_augmenter/passage_augmenter.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/passage_augmenter/prev_next_augmenter.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/passage_compressor/longllmlingua.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/passage_compressor/passage_compressor.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/passage_compressor/refine.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/passage_compressor/tree_summarize.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/passage_filter/passage_filter.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/passage_filter/percentile_cutoff.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/passage_filter/recency_filter.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/passage_filter/similarity_percentile_cutoff.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/passage_filter/similarity_threshold_cutoff.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/passage_filter/threshold_cutoff.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/passage_reranker/cohere.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/passage_reranker/colbert.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/passage_reranker/flag_embedding_llm_reranker.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/passage_reranker/flag_embedding_reranker.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/passage_reranker/jina_reranker.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/passage_reranker/passage_reranker.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/passage_reranker/rankgpt.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/passage_reranker/sentence_transformer_reranker.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/passage_reranker/time_reranker.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/passage_reranker/upr.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/prompt_maker/fstring.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/prompt_maker/long_context_reorder.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/query_expansion/hyde.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/query_expansion/multi_query_expansion.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/query_expansion/query_decompose.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/query_expansion/query_expansion.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/retrieval/bm25.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/retrieval/hybrid_cc.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/retrieval/hybrid_dbsf.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/retrieval/hybrid_rrf.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/retrieval/hybrid_rsf.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/retrieval/retrieval.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/nodes/retrieval/vectordb.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/optimization/custom_config.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/optimization/folder_structure.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/optimization/optimization.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/optimization/sample_full_config.yaml +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/optimization/strategies.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/roadmap/modular_rag.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/structure.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/troubleshooting.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/docs/source/tutorial.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/pyproject.toml +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/requirements.txt +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/sample_config/compact_local.yaml +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/sample_config/compact_openai.yaml +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/sample_config/extracted_sample.yaml +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/sample_config/simple_openai.yaml +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/sample_dataset/README.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/sample_dataset/eli5/load_eli5_dataset.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/sample_dataset/hotpotqa/load_hotpotqa_dataset.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/sample_dataset/msmarco/load_msmarco_dataset.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/sample_dataset/triviaqa/load_triviaqa_dataset.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/setup.cfg +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/data/corpus/test_base.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/data/corpus/test_langchain.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/data/corpus/test_llama_index_corpus.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/data/qacreation/test_llama_index_qacreation.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/data/qacreation/test_ragas_qa_creation.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/data/qacreation/test_simple.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/evaluate/metric/test_retrieval_contents_metric.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/evaluate/metric/test_retrieval_metric.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/evaluate/test_evaluate_util.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/evaluate/test_generation_evaluate.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/evaluate/test_retrieval_contents_evaluate.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/evaluate/test_retrieval_evaluate.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/generator/test_generator_base.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/generator/test_llama_index_llm.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/generator/test_openai.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/generator/test_run_generator_node.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/generator/test_vllm.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passageaugmenter/test_base_passage_augmenter.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passageaugmenter/test_pass_passage_augmenter.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passageaugmenter/test_prev_next_augmenter.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passageaugmenter/test_run_passage_augmenter.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passagecompressor/test_base_passage_compressor.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passagecompressor/test_longllmlingua.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passagecompressor/test_pass_compressor.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passagecompressor/test_refine.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passagecompressor/test_run_passage_compressor_node.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passagecompressor/test_tree_summarize.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passagefilter/test_pass_passage_filter.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passagefilter/test_passage_filter_base.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passagefilter/test_passage_filter_run.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passagefilter/test_percentile_cutoff.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passagefilter/test_recency_filter.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passagefilter/test_similarity_percentile_cutoff.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passagefilter/test_similarity_threshold_cutoff.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passagefilter/test_threshold_cutoff.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passagereranker/test_cohere_reranker.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passagereranker/test_colbert_reranker.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passagereranker/test_flag_embedding.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passagereranker/test_flag_embedding_llm.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passagereranker/test_jina_reranker.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passagereranker/test_koreranker.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passagereranker/test_monot5.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passagereranker/test_pass_reranker.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passagereranker/test_passage_reranker_base.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passagereranker/test_passage_reranker_run.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passagereranker/test_rankgpt.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passagereranker/test_sentence_transformer.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passagereranker/test_tart.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passagereranker/test_time_reranker.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/passagereranker/test_upr.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/promptmaker/test_fstring.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/promptmaker/test_long_context_reorder.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/promptmaker/test_prompt_maker_run.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/queryexpansion/test_hyde.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/queryexpansion/test_multi_query_expansion.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/queryexpansion/test_pass_query_expansion.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/queryexpansion/test_query_decompose.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/queryexpansion/test_query_expansion_base.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/queryexpansion/test_query_expansion_run.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/retrieval/test_bm25.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/retrieval/test_hybrid_base.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/retrieval/test_hybrid_cc.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/retrieval/test_hybrid_dbsf.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/retrieval/test_hybrid_rrf.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/retrieval/test_hybrid_rsf.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/retrieval/test_retrieval_base.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/retrieval/test_run_retrieval_node.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/nodes/retrieval/test_vectordb.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/schema/test_module_schema.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/schema/test_node_schema.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/test_cli.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/test_dashboard.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/test_deploy.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/test_evaluator.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/test_strategy.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/test_support.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/test_web.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/utils/test_preprocess.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/autorag/utils/test_util.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/conftest.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/delete_tests.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/mock.py +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/requirements.txt +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/README.md +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/corpus_data_sample.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/data_creation/raw_dir/sample1.txt +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/data_creation/raw_dir/sample2.txt +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/data_creation/raw_dir/sample3.txt +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/full.yaml +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/qa_data_sample.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/qa_gen_prompts/prompt1.txt +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/qa_gen_prompts/prompt2.txt +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/qa_gen_prompts/prompt3.txt +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/qa_test_data_sample.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/config.yaml +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/post_retrieve_node_line/generator/0.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/post_retrieve_node_line/generator/1.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/post_retrieve_node_line/generator/2.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/post_retrieve_node_line/generator/3.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/post_retrieve_node_line/generator/4.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/post_retrieve_node_line/generator/5.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/post_retrieve_node_line/generator/best_5.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/post_retrieve_node_line/generator/summary.csv +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/post_retrieve_node_line/prompt_maker/0.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/post_retrieve_node_line/prompt_maker/1.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/post_retrieve_node_line/prompt_maker/best_0.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/post_retrieve_node_line/prompt_maker/summary.csv +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/post_retrieve_node_line/summary.csv +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/0.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/1.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/2.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/best_0.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/summary.csv +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/pre_retrieve_node_line/summary.csv +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/retrieve_node_line/passage_compressor/0.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/retrieve_node_line/passage_compressor/best_0.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/retrieve_node_line/passage_compressor/summary.csv +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/retrieve_node_line/passage_reranker/0.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/retrieve_node_line/passage_reranker/1.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/retrieve_node_line/passage_reranker/best_0.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/retrieve_node_line/passage_reranker/summary.csv +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/retrieve_node_line/retrieval/0.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/retrieve_node_line/retrieval/1.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/retrieve_node_line/retrieval/best_0.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/retrieve_node_line/retrieval/summary.csv +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/retrieve_node_line/summary.csv +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/0/summary.csv +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/1/config.yaml +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/0.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/1.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/2.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/best_0.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/summary.csv +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/1/pre_retrieve_node_line/summary.csv +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/1/retrieve_node_line/passage_filter/0.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/1/retrieve_node_line/passage_reranker/0.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/1/retrieve_node_line/passage_reranker/1.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/1/retrieve_node_line/passage_reranker/best_0.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/1/retrieve_node_line/passage_reranker/summary.csv +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/1/retrieve_node_line/retrieval/0.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/1/retrieve_node_line/retrieval/1.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/1/retrieve_node_line/retrieval/best_0.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/1/retrieve_node_line/retrieval/summary.csv +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/2/config.yaml +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/2/post_retrieve_node_line/prompt_maker/0.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/0.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/1.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/2.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/best_0.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/summary.csv +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/2/pre_retrieve_node_line/summary.csv +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/2/retrieve_node_line/passage_compressor/0.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/2/retrieve_node_line/passage_compressor/best_0.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/2/retrieve_node_line/passage_compressor/summary.csv +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/2/retrieve_node_line/passage_reranker/0.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/2/retrieve_node_line/passage_reranker/1.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/2/retrieve_node_line/passage_reranker/best_0.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/2/retrieve_node_line/passage_reranker/summary.csv +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/2/retrieve_node_line/retrieval/0.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/2/retrieve_node_line/retrieval/1.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/2/retrieve_node_line/retrieval/best_0.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/2/retrieve_node_line/retrieval/summary.csv +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/2/retrieve_node_line/summary.csv +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/3/config.yaml +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/best.yaml +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/data/corpus.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/data/qa.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/resources/bm25_porter_stemmer.pkl +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/resources/chroma/6595d304-5270-4d9f-a267-c191366804ce/data_level0.bin +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/resources/chroma/6595d304-5270-4d9f-a267-c191366804ce/header.bin +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/resources/chroma/6595d304-5270-4d9f-a267-c191366804ce/length.bin +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/resources/chroma/6595d304-5270-4d9f-a267-c191366804ce/link_lists.bin +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/resources/chroma/chroma.sqlite3 +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/result_project/trial.json +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/sample_contents_nqa.csv +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/sample_project/data/corpus.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/sample_project/data/qa.parquet +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/sample_project/resources/bm25_gpt2.pkl +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/sample_project/resources/bm25_porter_stemmer.pkl +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/simple.yaml +0 -0
- {autorag-0.2.8 → autorag-0.2.9}/tests/resources/test_bm25_retrieval.pkl +0 -0
|
@@ -104,6 +104,7 @@ autorag/nodes/promptmaker/base.py
|
|
|
104
104
|
autorag/nodes/promptmaker/fstring.py
|
|
105
105
|
autorag/nodes/promptmaker/long_context_reorder.py
|
|
106
106
|
autorag/nodes/promptmaker/run.py
|
|
107
|
+
autorag/nodes/promptmaker/window_replacement.py
|
|
107
108
|
autorag/nodes/queryexpansion/__init__.py
|
|
108
109
|
autorag/nodes/queryexpansion/base.py
|
|
109
110
|
autorag/nodes/queryexpansion/hyde.py
|
|
@@ -227,6 +228,7 @@ docs/source/nodes/passage_reranker/upr.md
|
|
|
227
228
|
docs/source/nodes/prompt_maker/fstring.md
|
|
228
229
|
docs/source/nodes/prompt_maker/long_context_reorder.md
|
|
229
230
|
docs/source/nodes/prompt_maker/prompt_maker.md
|
|
231
|
+
docs/source/nodes/prompt_maker/window_replacement.md
|
|
230
232
|
docs/source/nodes/query_expansion/hyde.md
|
|
231
233
|
docs/source/nodes/query_expansion/multi_query_expansion.md
|
|
232
234
|
docs/source/nodes/query_expansion/query_decompose.md
|
|
@@ -250,6 +252,7 @@ sample_config/config_korean.yaml
|
|
|
250
252
|
sample_config/extracted_sample.yaml
|
|
251
253
|
sample_config/full.yaml
|
|
252
254
|
sample_config/simple_local.yaml
|
|
255
|
+
sample_config/simple_ollama.yaml
|
|
253
256
|
sample_config/simple_openai.yaml
|
|
254
257
|
sample_dataset/README.md
|
|
255
258
|
sample_dataset/eli5/load_eli5_dataset.py
|
|
@@ -323,6 +326,7 @@ tests/autorag/nodes/promptmaker/test_fstring.py
|
|
|
323
326
|
tests/autorag/nodes/promptmaker/test_long_context_reorder.py
|
|
324
327
|
tests/autorag/nodes/promptmaker/test_prompt_maker_base.py
|
|
325
328
|
tests/autorag/nodes/promptmaker/test_prompt_maker_run.py
|
|
329
|
+
tests/autorag/nodes/promptmaker/test_window_replacement.py
|
|
326
330
|
tests/autorag/nodes/queryexpansion/test_hyde.py
|
|
327
331
|
tests/autorag/nodes/queryexpansion/test_multi_query_expansion.py
|
|
328
332
|
tests/autorag/nodes/queryexpansion/test_pass_query_expansion.py
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.2.9
|
|
@@ -3,6 +3,7 @@ import uuid
|
|
|
3
3
|
from typing import Callable, Optional
|
|
4
4
|
|
|
5
5
|
import pandas as pd
|
|
6
|
+
from tqdm import tqdm
|
|
6
7
|
|
|
7
8
|
from autorag.utils.util import save_parquet_safe
|
|
8
9
|
|
|
@@ -15,6 +16,7 @@ def make_single_content_qa(corpus_df: pd.DataFrame,
|
|
|
15
16
|
output_filepath: Optional[str] = None,
|
|
16
17
|
upsert: bool = False,
|
|
17
18
|
random_state: int = 42,
|
|
19
|
+
cache_batch: int = 32,
|
|
18
20
|
**kwargs) -> pd.DataFrame:
|
|
19
21
|
"""
|
|
20
22
|
Make single content (single-hop, single-document) QA dataset using given qa_creation_func.
|
|
@@ -32,6 +34,9 @@ def make_single_content_qa(corpus_df: pd.DataFrame,
|
|
|
32
34
|
:param upsert: If true, the function will overwrite the existing file if it exists.
|
|
33
35
|
Default is False.
|
|
34
36
|
:param random_state: The random state for sampling corpus from the given corpus_df.
|
|
37
|
+
:param cache_batch: The number of batches to use for caching the generated QA dataset.
|
|
38
|
+
When the cache_batch size data is generated, the dataset will save to the designated output_filepath.
|
|
39
|
+
If the cache_batch size is too small, the process time will be longer.
|
|
35
40
|
:param kwargs: The keyword arguments for qa_creation_func.
|
|
36
41
|
:return: QA dataset dataframe.
|
|
37
42
|
You can save this as parquet file to use at AutoRAG.
|
|
@@ -44,24 +49,31 @@ def make_single_content_qa(corpus_df: pd.DataFrame,
|
|
|
44
49
|
sampled_corpus = corpus_df.sample(n=content_size, random_state=random_state)
|
|
45
50
|
sampled_corpus = sampled_corpus.reset_index(drop=True)
|
|
46
51
|
|
|
47
|
-
qa = qa_creation_func(contents=sampled_corpus['contents'].tolist(), **kwargs)
|
|
48
|
-
qa_data = pd.DataFrame({
|
|
49
|
-
'qid': [str(uuid.uuid4()) for _ in range(len(qa))],
|
|
50
|
-
'qa': qa,
|
|
51
|
-
'retrieval_gt': sampled_corpus['doc_id'].tolist(),
|
|
52
|
-
})
|
|
53
|
-
qa_data = qa_data.explode('qa', ignore_index=True)
|
|
54
|
-
|
|
55
52
|
def make_query_generation_gt(row):
|
|
56
53
|
return row['qa']['query'], row['qa']['generation_gt']
|
|
57
54
|
|
|
58
|
-
qa_data
|
|
59
|
-
|
|
55
|
+
qa_data = pd.DataFrame()
|
|
56
|
+
for idx, i in tqdm(enumerate(range(0, len(sampled_corpus), cache_batch))):
|
|
57
|
+
qa = qa_creation_func(contents=sampled_corpus['contents'].tolist()[i:i + cache_batch], **kwargs)
|
|
58
|
+
|
|
59
|
+
temp_qa_data = pd.DataFrame({
|
|
60
|
+
'qa': qa,
|
|
61
|
+
'retrieval_gt': sampled_corpus['doc_id'].tolist()[i:i + cache_batch],
|
|
62
|
+
})
|
|
63
|
+
temp_qa_data = temp_qa_data.explode('qa', ignore_index=True)
|
|
64
|
+
temp_qa_data['qid'] = [str(uuid.uuid4()) for _ in range(len(temp_qa_data))]
|
|
65
|
+
temp_qa_data[['query', 'generation_gt']] = temp_qa_data.apply(make_query_generation_gt, axis=1,
|
|
66
|
+
result_type='expand')
|
|
67
|
+
temp_qa_data = temp_qa_data.drop(columns=['qa'])
|
|
60
68
|
|
|
61
|
-
|
|
62
|
-
|
|
69
|
+
temp_qa_data['retrieval_gt'] = temp_qa_data['retrieval_gt'].apply(lambda x: [[x]])
|
|
70
|
+
temp_qa_data['generation_gt'] = temp_qa_data['generation_gt'].apply(lambda x: [x])
|
|
63
71
|
|
|
64
|
-
|
|
65
|
-
|
|
72
|
+
if idx == 0:
|
|
73
|
+
qa_data = temp_qa_data
|
|
74
|
+
else:
|
|
75
|
+
qa_data = pd.concat([qa_data, temp_qa_data], ignore_index=True)
|
|
76
|
+
if output_filepath is not None:
|
|
77
|
+
save_parquet_safe(qa_data, output_filepath, upsert=upsert)
|
|
66
78
|
|
|
67
79
|
return qa_data
|
|
@@ -6,7 +6,7 @@ from typing import List, Optional
|
|
|
6
6
|
|
|
7
7
|
import evaluate
|
|
8
8
|
import pandas as pd
|
|
9
|
-
import
|
|
9
|
+
from sacrebleu.metrics.bleu import BLEU
|
|
10
10
|
import torch
|
|
11
11
|
from llama_index.core.embeddings import BaseEmbedding
|
|
12
12
|
from llama_index.embeddings.openai import OpenAIEmbedding
|
|
@@ -64,12 +64,25 @@ def huggingface_evaluate(instance, key: str,
|
|
|
64
64
|
return result
|
|
65
65
|
|
|
66
66
|
|
|
67
|
-
@
|
|
68
|
-
def bleu(
|
|
67
|
+
@convert_inputs_to_list
|
|
68
|
+
def bleu(generation_gt: List[List[str]], generations: [str], tokenize: str|None = None, smooth_method: str = 'exp', smooth_value: Optional[float] = None, max_ngram_order: int = 4, trg_lang: str = '', **kwargs) -> List[float]:
|
|
69
69
|
"""
|
|
70
|
-
|
|
70
|
+
Computes the BLEU metric given pred and ground-truth.
|
|
71
|
+
|
|
72
|
+
:param tokenize: The tokenizer to use. If None, defaults to language-specific tokenizers with '13a' as the fallback default. check #https://github.com/mjpost/sacrebleu/blob/master/sacrebleu/metrics/bleu.py
|
|
73
|
+
:param smooth_method: The smoothing method to use ('floor', 'add-k', 'exp' or 'none').
|
|
74
|
+
:param smooth_value: The smoothing value for `floor` and `add-k` methods. `None` falls back to default value.
|
|
75
|
+
:param max_ngram_order: If given, it overrides the maximum n-gram order (default: 4) when computing precisions.
|
|
76
|
+
:param trg_lang: An optional language code to raise potential tokenizer warnings.
|
|
77
|
+
:param generation_gt: A list of ground truth.
|
|
78
|
+
Must be 2-d list of string.
|
|
79
|
+
Because it can be a multiple ground truth.
|
|
80
|
+
:param generations: A list of generations that LLM generated.
|
|
71
81
|
"""
|
|
72
|
-
|
|
82
|
+
bleu = BLEU(tokenize=tokenize, smooth_method=smooth_method, smooth_value=smooth_value, max_ngram_order=max_ngram_order, trg_lang=trg_lang, **kwargs)
|
|
83
|
+
|
|
84
|
+
result = list(map(lambda x: bleu.sentence_score(x[0], x[1]).score, zip(generations, generation_gt)))
|
|
85
|
+
return result
|
|
73
86
|
|
|
74
87
|
|
|
75
88
|
@convert_inputs_to_list
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import functools
|
|
2
2
|
import logging
|
|
3
|
+
import os
|
|
3
4
|
from pathlib import Path
|
|
4
5
|
from typing import List, Union
|
|
5
6
|
|
|
6
7
|
import pandas as pd
|
|
7
8
|
|
|
8
|
-
from autorag.utils import result_to_dataframe
|
|
9
|
+
from autorag.utils import result_to_dataframe, fetch_contents
|
|
9
10
|
|
|
10
11
|
logger = logging.getLogger("AutoRAG")
|
|
11
12
|
|
|
@@ -31,6 +32,14 @@ def prompt_maker_node(func):
|
|
|
31
32
|
assert "retrieve_scores" in previous_result.columns, "previous_result must have retrieve_scores column."
|
|
32
33
|
retrieve_scores = previous_result["retrieve_scores"].tolist()
|
|
33
34
|
return func(prompt, query, retrieved_contents, retrieve_scores)
|
|
35
|
+
elif func.__name__ == 'window_replacement':
|
|
36
|
+
retrieved_ids = previous_result["retrieved_ids"].tolist()
|
|
37
|
+
# load corpus
|
|
38
|
+
data_dir = os.path.join(project_dir, "data")
|
|
39
|
+
corpus_data = pd.read_parquet(os.path.join(data_dir, "corpus.parquet"), engine='pyarrow')
|
|
40
|
+
# get metadata from corpus
|
|
41
|
+
retrieved_metadata = fetch_contents(corpus_data, retrieved_ids, column_name='metadata')
|
|
42
|
+
return func(prompt, query, retrieved_contents, retrieved_metadata)
|
|
34
43
|
else:
|
|
35
44
|
raise NotImplementedError(f"Module {func.__name__} is not implemented or not supported.")
|
|
36
45
|
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import logging
|
|
2
|
+
from typing import List, Dict
|
|
3
|
+
|
|
4
|
+
from autorag.nodes.promptmaker.base import prompt_maker_node
|
|
5
|
+
|
|
6
|
+
logger = logging.getLogger("AutoRAG")
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
@prompt_maker_node
|
|
10
|
+
def window_replacement(prompt: str, queries: List[str],
|
|
11
|
+
retrieved_contents: List[List[str]],
|
|
12
|
+
retrieved_metadata: List[List[Dict]]) -> List[str]:
|
|
13
|
+
"""
|
|
14
|
+
Replace retrieved_contents with window to create a Prompt
|
|
15
|
+
(only available for corpus chunked with Sentence window method)
|
|
16
|
+
You must type a prompt or prompt list at config yaml file like this:
|
|
17
|
+
|
|
18
|
+
.. Code:: yaml
|
|
19
|
+
nodes:
|
|
20
|
+
- node_type: prompt_maker
|
|
21
|
+
modules:
|
|
22
|
+
- module_type: window_replacement
|
|
23
|
+
prompt: [Answer this question: {query} \n\n {retrieved_contents},
|
|
24
|
+
Read the passages carefully and answer this question: {query} \n\n Passages: {retrieved_contents}]
|
|
25
|
+
|
|
26
|
+
:param prompt: A prompt string.
|
|
27
|
+
:param queries: List of query strings.
|
|
28
|
+
:param retrieved_contents: List of retrieved contents.
|
|
29
|
+
:param retrieved_metadata: List of retrieved metadata.
|
|
30
|
+
:return: Prompts that made by window_replacement.
|
|
31
|
+
"""
|
|
32
|
+
|
|
33
|
+
def window_replacement_row(_prompt: str, _query: str, _retrieved_contents, _retrieved_metadata: List[Dict]) -> str:
|
|
34
|
+
window_list = []
|
|
35
|
+
for content, metadata in zip(_retrieved_contents, _retrieved_metadata):
|
|
36
|
+
if 'window' in metadata:
|
|
37
|
+
window_list.append(metadata['window'])
|
|
38
|
+
else:
|
|
39
|
+
window_list.append(content)
|
|
40
|
+
logger.info("Only available for corpus chunked with Sentence window method."
|
|
41
|
+
"window_replacement will not proceed.")
|
|
42
|
+
contents_str = "\n\n".join(window_list)
|
|
43
|
+
return _prompt.format(query=_query, retrieved_contents=contents_str)
|
|
44
|
+
|
|
45
|
+
return list(map(lambda x: window_replacement_row(prompt, x[0], x[1], x[2]),
|
|
46
|
+
zip(queries, retrieved_contents, retrieved_metadata)))
|
|
@@ -58,6 +58,7 @@ def get_support_modules(module_name: str) -> Callable:
|
|
|
58
58
|
# prompt_maker
|
|
59
59
|
'fstring': ('autorag.nodes.promptmaker', 'fstring'),
|
|
60
60
|
'long_context_reorder': ('autorag.nodes.promptmaker', 'long_context_reorder'),
|
|
61
|
+
'window_replacement': ('autorag.nodes.promptmaker', 'window_replacement'),
|
|
61
62
|
# generator
|
|
62
63
|
'llama_index_llm': ('autorag.nodes.generator', 'llama_index_llm'),
|
|
63
64
|
'vllm': ('autorag.nodes.generator', 'vllm'),
|
|
@@ -36,6 +36,14 @@ autorag.nodes.promptmaker.run module
|
|
|
36
36
|
:undoc-members:
|
|
37
37
|
:show-inheritance:
|
|
38
38
|
|
|
39
|
+
autorag.nodes.promptmaker.window\_replacement module
|
|
40
|
+
----------------------------------------------------
|
|
41
|
+
|
|
42
|
+
.. automodule:: autorag.nodes.promptmaker.window_replacement
|
|
43
|
+
:members:
|
|
44
|
+
:undoc-members:
|
|
45
|
+
:show-inheritance:
|
|
46
|
+
|
|
39
47
|
Module contents
|
|
40
48
|
---------------
|
|
41
49
|
|
|
@@ -80,7 +80,7 @@ from autorag.data.qacreation import generate_qa_llama_index, make_single_content
|
|
|
80
80
|
corpus_df = pd.read_parquet('path/to/corpus.parquet')
|
|
81
81
|
llm = OpenAI(model='gpt-3.5-turbo', temperature=1.0)
|
|
82
82
|
qa_df = make_single_content_qa(corpus_df, 50, generate_qa_llama_index, llm=llm, question_num_per_content=1,
|
|
83
|
-
output_filepath='path/to/qa.parquet')
|
|
83
|
+
output_filepath='path/to/qa.parquet', cache_batch=64)
|
|
84
84
|
```
|
|
85
85
|
|
|
86
86
|
`generate_qa_llama_index` is a function designed to generate **questions** and its **generation_gt** per content.
|
|
@@ -94,6 +94,15 @@ Which means it uses only one passage per question for answering the question.
|
|
|
94
94
|
Passage is chunked units from raw data.
|
|
95
95
|
```
|
|
96
96
|
|
|
97
|
+
```{admonition} Auto-save feature
|
|
98
|
+
From AutoRAG v0.2.9, the auto-save feature added!
|
|
99
|
+
Now, you don't have to afraid that something wrong while the data generation.
|
|
100
|
+
The data will save automatically to the input `output_filepath`.
|
|
101
|
+
|
|
102
|
+
You can set how often you want to save the result to the file.
|
|
103
|
+
Just adjust `cache_batch` parameter. Default is 32.
|
|
104
|
+
```
|
|
105
|
+
|
|
97
106
|
## Use custom prompt
|
|
98
107
|
|
|
99
108
|
You can use custom prompt to generate qa data.
|
|
@@ -25,10 +25,14 @@ myst:
|
|
|
25
25
|
|
|
26
26
|
Most of the modules that using LLM model can take `llm` parameter to specify the LLM model.
|
|
27
27
|
|
|
28
|
+
- [llama_index_llm](nodes/generator/llama_index_llm.md)
|
|
29
|
+
|
|
30
|
+
The following modules can use generator module, which including `llama_index_llm`.
|
|
31
|
+
|
|
28
32
|
- [hyde](nodes/query_expansion/hyde.md)
|
|
29
33
|
- [query_decompose](nodes/query_expansion/query_decompose.md)
|
|
34
|
+
- [multi_query_expansion](nodes/query_expansion/multi_query_expansion.md)
|
|
30
35
|
- [tree_summarize](nodes/passage_compressor/tree_summarize.md)
|
|
31
|
-
- [llama_index_llm](nodes/generator/llama_index_llm.md)
|
|
32
36
|
|
|
33
37
|
### Supporting LLM models
|
|
34
38
|
|
|
@@ -114,7 +118,8 @@ To change the embedding model, you can change the `embedding_model` parameter to
|
|
|
114
118
|
| [cointegrated/rubert-tiny2](https://huggingface.co/cointegrated/rubert-tiny2) | huggingface_cointegrated_rubert_tiny2 |
|
|
115
119
|
| [sentence-transformers/all-mpnet-base-v2](https://huggingface.co/sentence-transformers/all-mpnet-base-v2) | huggingface_all_mpnet_base_v2 |
|
|
116
120
|
|
|
117
|
-
For example, if you want to use OpenAI
|
|
121
|
+
For example, if you want to use OpenAI text embedding large model, you can set `embedding_model` parameter
|
|
122
|
+
to `openai_embed_3_large`.
|
|
118
123
|
|
|
119
124
|
```yaml
|
|
120
125
|
nodes:
|
|
@@ -126,11 +131,6 @@ nodes:
|
|
|
126
131
|
embedding_model: openai
|
|
127
132
|
```
|
|
128
133
|
|
|
129
|
-
```{attention}
|
|
130
|
-
You can't pass embedding model parameters at the config yaml file like LLM models.
|
|
131
|
-
Because the embedding model is initialized at the beginning of the AutoRAG program.
|
|
132
|
-
```
|
|
133
|
-
|
|
134
134
|
### Add your embedding models
|
|
135
135
|
|
|
136
136
|
You can add more embedding models for AutoRAG.
|
|
@@ -141,13 +141,19 @@ execute the following code.
|
|
|
141
141
|
|
|
142
142
|
```python
|
|
143
143
|
import autorag
|
|
144
|
+
from autorag import LazyInit
|
|
144
145
|
from llama_index.embeddings.huggingface import HuggingFaceEmbedding
|
|
145
146
|
|
|
146
|
-
autorag.
|
|
147
|
+
autorag.embedding_models['kosimcse'] = LazyInit(HuggingFaceEmbedding, model_name="BM-K/KoSimCSE-roberta-multitask")
|
|
147
148
|
```
|
|
148
149
|
|
|
149
150
|
Then you can use `kosimcse` at config yaml file.
|
|
150
151
|
|
|
151
152
|
```{caution}
|
|
152
|
-
When you add new
|
|
153
|
+
When you add new embedding model, you should use `LazyInit` class from autorag. The additional parameters have to be keyword parameter in the `LazyInit` initialization.
|
|
153
154
|
```
|
|
155
|
+
|
|
156
|
+
## Use vllm
|
|
157
|
+
|
|
158
|
+
You can use vllm to use local LLM. For more information, please check out [vllm](nodes/generator/vllm.md) generator
|
|
159
|
+
module docs.
|
|
@@ -12,7 +12,11 @@ More details can be found [here](https://huggingface.co/Dongjin-kr/ko-reranker).
|
|
|
12
12
|
|
|
13
13
|
|
|
14
14
|
## **Module Parameters**
|
|
15
|
-
|
|
15
|
+
|
|
16
|
+
(Optional) `batch`
|
|
17
|
+
|
|
18
|
+
- Specify batch size of the query to the Ko-reranker model.
|
|
19
|
+
- default is 64.
|
|
16
20
|
|
|
17
21
|
## **Example config.yaml**
|
|
18
22
|
```yaml
|
|
@@ -17,6 +17,10 @@ given query.
|
|
|
17
17
|
allowing for flexible integration of different monoT5 variants.
|
|
18
18
|
- default is `castorini/monot5-3b-msmarco-10k`
|
|
19
19
|
|
|
20
|
+
- (Optional) `batch`
|
|
21
|
+
- Specify batch size of the query to the TART model.
|
|
22
|
+
- default is 64.
|
|
23
|
+
|
|
20
24
|
## **Example config.yaml**
|
|
21
25
|
|
|
22
26
|
```yaml
|
|
@@ -14,6 +14,11 @@ The `TART` module is a reranker based on [TART](https://arxiv.org/pdf/2211.09260
|
|
|
14
14
|
- Specifies instructions for the reranking process.
|
|
15
15
|
- default is `Find passage to answer given question`
|
|
16
16
|
|
|
17
|
+
(Optional) `batch`
|
|
18
|
+
|
|
19
|
+
- Specify batch size of the query to the TART model.
|
|
20
|
+
- default is 64.
|
|
21
|
+
|
|
17
22
|
## **Example config.yaml**
|
|
18
23
|
```yaml
|
|
19
24
|
modules:
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
---
|
|
2
|
+
myst:
|
|
3
|
+
html_meta:
|
|
4
|
+
title: AutoRAG - Window Replacement
|
|
5
|
+
description: Learn about Window Replacement module in AutoRAG
|
|
6
|
+
keywords: AutoRAG,RAG,Advanced RAG,prompt
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# Window Replacement
|
|
10
|
+
|
|
11
|
+
📌Only available for corpus chunked with `sentence window` method
|
|
12
|
+
|
|
13
|
+
The `window_replacement` module is prompt maker based on based
|
|
14
|
+
on [llama_index](https://docs.llamaindex.ai/en/stable/examples/node_postprocessor/MetadataReplacementDemo/).
|
|
15
|
+
|
|
16
|
+
Replace retrieved_contents with window to create a Prompt. This is most useful for large documents/indexes, as it helps
|
|
17
|
+
to retrieve more fine-grained details.
|
|
18
|
+
|
|
19
|
+
Make a prompt using `window_replacement` from a query and retrieved_contents.
|
|
20
|
+
|
|
21
|
+
## **Module Parameters**
|
|
22
|
+
|
|
23
|
+
**prompt**: This is the prompt that will be input to llm. Since it is created using an fstring, it must
|
|
24
|
+
contain `{query}` and `{retreived_contents}`.
|
|
25
|
+
|
|
26
|
+
## **Example config.yaml**
|
|
27
|
+
|
|
28
|
+
```yaml
|
|
29
|
+
modules:
|
|
30
|
+
- module_type: window_replacement
|
|
31
|
+
prompt: [ "Tell me something about the question: {query} \n\n {retrieved_contents}",
|
|
32
|
+
"Question: {query} \n Something to read: {retrieved_contents} \n What's your answer?" ]
|
|
33
|
+
```
|
|
@@ -7,19 +7,16 @@ node_lines:
|
|
|
7
7
|
embedding_model: openai
|
|
8
8
|
- module_type: bm25
|
|
9
9
|
bm25_tokenizer: ko_kiwi
|
|
10
|
-
top_k:
|
|
10
|
+
top_k: 20
|
|
11
11
|
strategy:
|
|
12
|
-
metrics:
|
|
13
|
-
- retrieval_f1
|
|
14
|
-
- retrieval_recall
|
|
15
|
-
- retrieval_precision
|
|
12
|
+
metrics: [ retrieval_recall, retrieval_precision, retrieval_map ]
|
|
16
13
|
- node_type: passage_reranker
|
|
17
14
|
modules:
|
|
18
15
|
- module_type: koreranker
|
|
19
16
|
- module_type: pass_reranker
|
|
20
17
|
- module_type: cohere_reranker
|
|
21
18
|
strategy:
|
|
22
|
-
metrics: [
|
|
19
|
+
metrics: [ retrieval_recall, retrieval_precision, retrieval_map ]
|
|
23
20
|
top_k: 3
|
|
24
21
|
- node_line_name: post_retrieve_node_line
|
|
25
22
|
nodes:
|
|
@@ -30,21 +27,22 @@ node_lines:
|
|
|
30
27
|
strategy:
|
|
31
28
|
generator_modules:
|
|
32
29
|
- batch: 2
|
|
33
|
-
|
|
34
|
-
module_type: llama_index_llm
|
|
30
|
+
module_type: openai_llm
|
|
35
31
|
metrics:
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
32
|
+
- metric_name: rouge
|
|
33
|
+
- embedding_model: openai
|
|
34
|
+
metric_name: sem_score
|
|
35
|
+
- metric_name: bert_score
|
|
36
|
+
lang: ko
|
|
39
37
|
- modules:
|
|
40
38
|
- batch: 2
|
|
41
|
-
llm:
|
|
42
|
-
|
|
43
|
-
module_type: llama_index_llm
|
|
39
|
+
llm: gpt-4o
|
|
40
|
+
module_type: openai_llm
|
|
44
41
|
node_type: generator
|
|
45
42
|
strategy:
|
|
46
43
|
metrics:
|
|
47
|
-
- metric_name:
|
|
48
|
-
- metric_name: meteor
|
|
44
|
+
- metric_name: rouge
|
|
49
45
|
- embedding_model: openai
|
|
50
46
|
metric_name: sem_score
|
|
47
|
+
- metric_name: bert_score
|
|
48
|
+
lang: ko
|
|
@@ -140,6 +140,9 @@ node_lines:
|
|
|
140
140
|
- module_type: long_context_reorder
|
|
141
141
|
prompt: [ "Tell me something about the question: {query} \n\n {retrieved_contents}",
|
|
142
142
|
"Question: {query} \n Something to read: {retrieved_contents} \n What's your answer?" ]
|
|
143
|
+
- module_type: window_replacement
|
|
144
|
+
prompt: [ "Tell me something about the question: {query} \n\n {retrieved_contents}",
|
|
145
|
+
"Question: {query} \n Something to read: {retrieved_contents} \n What's your answer?" ]
|
|
143
146
|
- node_type: generator
|
|
144
147
|
strategy:
|
|
145
148
|
metrics:
|
|
@@ -13,13 +13,13 @@ node_lines:
|
|
|
13
13
|
nodes:
|
|
14
14
|
- node_type: prompt_maker
|
|
15
15
|
strategy:
|
|
16
|
-
metrics: [
|
|
16
|
+
metrics: [ meteor, rouge, bert_score ]
|
|
17
17
|
modules:
|
|
18
18
|
- module_type: fstring
|
|
19
19
|
prompt: "Read the passages and answer the given question. \n Question: {query} \n Passage: {retrieved_contents} \n Answer : "
|
|
20
20
|
- node_type: generator
|
|
21
21
|
strategy:
|
|
22
|
-
metrics: [
|
|
22
|
+
metrics: [ meteor, rouge, bert_score ]
|
|
23
23
|
modules:
|
|
24
24
|
- module_type: vllm
|
|
25
25
|
llm: mistralai/Mistral-7B-Instruct-v0.2
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
node_lines:
|
|
2
|
+
- node_line_name: retrieve_node_line
|
|
3
|
+
nodes:
|
|
4
|
+
- node_type: retrieval
|
|
5
|
+
strategy:
|
|
6
|
+
metrics: [ retrieval_f1, retrieval_recall, retrieval_precision ]
|
|
7
|
+
top_k: 3
|
|
8
|
+
modules:
|
|
9
|
+
- module_type: bm25
|
|
10
|
+
- module_type: vectordb
|
|
11
|
+
embedding_model: huggingface_all_mpnet_base_v2
|
|
12
|
+
- module_type: hybrid_rrf
|
|
13
|
+
target_modules: ('bm25', 'vectordb')
|
|
14
|
+
rrf_k: [ 3, 5, 10 ]
|
|
15
|
+
- module_type: hybrid_cc
|
|
16
|
+
target_modules: ('bm25', 'vectordb')
|
|
17
|
+
weights:
|
|
18
|
+
- (0.5, 0.5)
|
|
19
|
+
- (0.3, 0.7)
|
|
20
|
+
- (0.7, 0.3)
|
|
21
|
+
- module_type: hybrid_rsf
|
|
22
|
+
target_modules: ('bm25', 'vectordb')
|
|
23
|
+
weights:
|
|
24
|
+
- (0.5, 0.5)
|
|
25
|
+
- (0.3, 0.7)
|
|
26
|
+
- (0.7, 0.3)
|
|
27
|
+
- module_type: hybrid_dbsf
|
|
28
|
+
target_modules: ('bm25', 'vectordb')
|
|
29
|
+
weights:
|
|
30
|
+
- (0.5, 0.5)
|
|
31
|
+
- (0.3, 0.7)
|
|
32
|
+
- (0.7, 0.3)
|
|
33
|
+
- node_line_name: post_retrieve_node_line
|
|
34
|
+
nodes:
|
|
35
|
+
- node_type: prompt_maker
|
|
36
|
+
strategy:
|
|
37
|
+
metrics: [ meteor, rouge, bert_score ]
|
|
38
|
+
modules:
|
|
39
|
+
- module_type: fstring
|
|
40
|
+
prompt: "Read the passages and answer the given question. \n Question: {query} \n Passage: {retrieved_contents} \n Answer : "
|
|
41
|
+
- node_type: generator
|
|
42
|
+
strategy:
|
|
43
|
+
metrics: [ meteor, rouge, bert_score ]
|
|
44
|
+
modules:
|
|
45
|
+
- module_type: llama_index_llm
|
|
46
|
+
llm: ollama
|
|
47
|
+
model: llama3
|
|
48
|
+
temperature: [ 0.1, 0.5, 1.0 ]
|
|
49
|
+
batch: 1
|
|
@@ -48,8 +48,34 @@ def test_single_content_qa(qa_parquet_filepath):
|
|
|
48
48
|
upsert=True,
|
|
49
49
|
)
|
|
50
50
|
validate_qa_dataset(qa_df)
|
|
51
|
+
assert len(qa_df) == qa_df['qid'].nunique()
|
|
51
52
|
assert len(qa_df) == 6
|
|
52
53
|
assert qa_df['retrieval_gt'].tolist()[0] == qa_df['retrieval_gt'].tolist()[1]
|
|
53
54
|
|
|
54
55
|
assert all([len(x) == 1 and len(x[0]) == 1 for x in qa_df['retrieval_gt'].tolist()])
|
|
55
56
|
assert all([len(x) == 1 for x in qa_df['generation_gt'].tolist()])
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
@patch.object(
|
|
60
|
+
MockLLM,
|
|
61
|
+
"acomplete",
|
|
62
|
+
acomplete_qa_creation,
|
|
63
|
+
)
|
|
64
|
+
def test_single_content_qa_long_cache_batch(qa_parquet_filepath):
|
|
65
|
+
corpus_df = pd.read_parquet(os.path.join(resource_dir, "corpus_data_sample.parquet"))
|
|
66
|
+
qa_df = make_single_content_qa(
|
|
67
|
+
corpus_df,
|
|
68
|
+
content_size=30,
|
|
69
|
+
qa_creation_func=generate_qa_llama_index,
|
|
70
|
+
output_filepath=qa_parquet_filepath,
|
|
71
|
+
llm=MockLLM(),
|
|
72
|
+
question_num_per_content=2,
|
|
73
|
+
upsert=True,
|
|
74
|
+
cache_batch=2,
|
|
75
|
+
)
|
|
76
|
+
validate_qa_dataset(qa_df)
|
|
77
|
+
assert len(qa_df) == 60
|
|
78
|
+
assert qa_df['retrieval_gt'].tolist()[0] == qa_df['retrieval_gt'].tolist()[1]
|
|
79
|
+
|
|
80
|
+
assert all([len(x) == 1 and len(x[0]) == 1 for x in qa_df['retrieval_gt'].tolist()])
|
|
81
|
+
assert all([len(x) == 1 for x in qa_df['generation_gt'].tolist()])
|
|
@@ -47,7 +47,6 @@ def ko_base_test_generation_metrics(func, solution, **kwargs):
|
|
|
47
47
|
assert all(list(map(lambda x: x[0] == pytest.approx(x[1], 0.001),
|
|
48
48
|
zip(scores, solution))))
|
|
49
49
|
|
|
50
|
-
|
|
51
50
|
def test_bleu():
|
|
52
51
|
base_test_generation_metrics(bleu, [51.1507, 23.5783, 100.0], lowercase=True)
|
|
53
52
|
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import pandas as pd
|
|
2
|
+
|
|
3
|
+
prompt = "Answer this question: {query} \n\n {retrieved_contents}"
|
|
4
|
+
queries = ["What is the capital of Japan?", "What is the capital of China?"]
|
|
5
|
+
retrieved_contents = [
|
|
6
|
+
["Tokyo is the capital of Japan.", "Tokyo, the capital of Japan, is a huge metropolitan city."],
|
|
7
|
+
["Beijing is the capital of China.", "Beijing, the capital of China, is a huge metropolitan city."]]
|
|
8
|
+
retrieve_scores = [[0.9, 0.8], [0.9, 0.8]]
|
|
9
|
+
retrieved_ids = [["doc1", "doc2"], ["doc3", "doc4"]]
|
|
10
|
+
previous_result = pd.DataFrame({
|
|
11
|
+
"query": queries,
|
|
12
|
+
"retrieved_contents": retrieved_contents,
|
|
13
|
+
"retrieve_scores": retrieve_scores,
|
|
14
|
+
"retrieved_ids": retrieved_ids
|
|
15
|
+
})
|
|
16
|
+
|
|
17
|
+
doc_id = ["doc1", "doc2", "doc3", "doc4", "doc5"]
|
|
18
|
+
contents = ["This is a test document 1.", "This is a test document 2.", "This is a test document 3.",
|
|
19
|
+
"This is a test document 4.", "This is a test document 5."]
|
|
20
|
+
metadata = [{'window': 'havertz arsenal doosan minji naeun gaeun lets go'} for _ in range(5)]
|
|
21
|
+
corpus_df = pd.DataFrame({"doc_id": doc_id, "contents": contents, "metadata": metadata})
|
|
22
|
+
|
|
23
|
+
retrieved_metadata = [
|
|
24
|
+
[{'window': 'havertz arsenal doosan minji naeun gaeun lets go'},
|
|
25
|
+
{'window': 'havertz arsenal doosan minji naeun gaeun lets go'}],
|
|
26
|
+
[{'window': 'havertz arsenal doosan minji naeun gaeun lets go'},
|
|
27
|
+
{'window': 'havertz arsenal doosan minji naeun gaeun lets go'}]
|
|
28
|
+
]
|