AutoRAG 0.3.2__tar.gz → 0.3.3__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.3.2 → autorag-0.3.3}/AutoRAG.egg-info/PKG-INFO +2 -3
- {autorag-0.3.2 → autorag-0.3.3}/AutoRAG.egg-info/SOURCES.txt +1 -0
- {autorag-0.3.2 → autorag-0.3.3}/AutoRAG.egg-info/requires.txt +1 -2
- {autorag-0.3.2 → autorag-0.3.3}/PKG-INFO +2 -3
- autorag-0.3.3/autorag/VERSION +1 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/legacy/qacreation/ragas.py +3 -2
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/legacy/qacreation/simple.py +5 -4
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/parse/clova.py +4 -2
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/parse/langchain_parse.py +14 -6
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/parse/llamaparse.py +10 -6
- {autorag-0.3.2 → autorag-0.3.3}/autorag/evaluation/generation.py +12 -3
- {autorag-0.3.2 → autorag-0.3.3}/autorag/evaluation/metric/__init__.py +9 -1
- autorag-0.3.3/autorag/evaluation/metric/deepeval_prompt.py +218 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/evaluation/metric/generation.py +124 -2
- autorag-0.3.3/autorag/evaluation/metric/util.py +80 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/evaluation/retrieval.py +1 -2
- {autorag-0.3.2 → autorag-0.3.3}/autorag/evaluation/retrieval_contents.py +1 -3
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/generator/base.py +15 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/generator/llama_index_llm.py +9 -3
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/generator/openai_llm.py +53 -0
- autorag-0.3.3/autorag/schema/metricinput.py +99 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/api_spec/autorag.evaluation.metric.rst +8 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/data_creation/data_creation.md +0 -9
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/data_creation/qa_creation/answer_gen.md +2 -4
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/data_creation/qa_creation/filter.md +2 -4
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/data_creation/qa_creation/query_gen.md +3 -6
- {autorag-0.3.2 → autorag-0.3.3}/requirements.txt +1 -2
- {autorag-0.3.2 → autorag-0.3.3}/sample_config/parse/parse_full.yaml +2 -2
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/legacy/corpus/test_llama_index_corpus.py +9 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/legacy/qacreation/test_base_qacreation.py +25 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/legacy/qacreation/test_llama_index_qacreation.py +21 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/legacy/qacreation/test_simple.py +2 -1
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/parse/test_langchain_parse.py +52 -30
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/parse/test_llamaparse.py +6 -6
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/parse/test_parse_base.py +1 -10
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/parse/test_table_hybrid_parse.py +3 -9
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/qa/test_data_creation_piepline.py +55 -0
- autorag-0.3.3/tests/autorag/evaluate/metric/test_generation_metric.py +273 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/evaluate/metric/test_retrieval_contents_metric.py +9 -3
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/evaluate/metric/test_retrieval_metric.py +9 -3
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/evaluate/test_generation_evaluate.py +1 -1
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/evaluate/test_retrieval_contents_evaluate.py +3 -1
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/evaluate/test_retrieval_evaluate.py +6 -2
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/generator/test_llama_index_llm.py +44 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/generator/test_openai.py +61 -0
- autorag-0.3.3/tests/autorag/schema/test_metricinput_schema.py +84 -0
- autorag-0.3.2/autorag/VERSION +0 -1
- autorag-0.3.2/autorag/evaluation/metric/util.py +0 -73
- autorag-0.3.2/autorag/schema/metricinput.py +0 -93
- autorag-0.3.2/tests/autorag/evaluate/metric/test_generation_metric.py +0 -119
- autorag-0.3.2/tests/autorag/schema/test_metricinput_schema.py +0 -57
- {autorag-0.3.2 → autorag-0.3.3}/.dockerignore +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/.github/FUNDING.yml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/.github/dependabot.yml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/.github/workflows/publish.yml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/.github/workflows/sphinx.yml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/.github/workflows/test.yml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/.gitignore +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/.pre-commit-config.yaml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/AutoRAG.egg-info/dependency_links.txt +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/AutoRAG.egg-info/entry_points.txt +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/AutoRAG.egg-info/top_level.txt +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/CODE_OF_CONDUCT.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/CONTRIBUTING.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/Dockerfile +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/LICENSE +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/README.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/__init__.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/chunker.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/cli.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/dashboard.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/__init__.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/chunk/__init__.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/chunk/base.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/chunk/langchain_chunk.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/chunk/llama_index_chunk.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/chunk/run.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/legacy/__init__.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/legacy/corpus/__init__.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/legacy/corpus/langchain.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/legacy/corpus/llama_index.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/legacy/qacreation/__init__.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/legacy/qacreation/base.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/legacy/qacreation/llama_index.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/legacy/qacreation/llama_index_default_prompt.txt +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/parse/__init__.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/parse/base.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/parse/run.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/parse/table_hybrid_parse.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/qa/__init__.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/qa/evolve/__init__.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/qa/evolve/llama_index_query_evolve.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/qa/evolve/openai_query_evolve.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/qa/evolve/prompt.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/qa/extract_evidence.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/qa/filter/__init__.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/qa/filter/dontknow.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/qa/filter/passage_dependency.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/qa/filter/prompt.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/qa/generation_gt/__init__.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/qa/generation_gt/base.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/qa/generation_gt/llama_index_gen_gt.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/qa/generation_gt/openai_gen_gt.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/qa/generation_gt/prompt.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/qa/query/__init__.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/qa/query/llama_gen_query.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/qa/query/openai_gen_query.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/qa/query/prompt.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/qa/sample.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/qa/schema.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/utils/__init__.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/data/utils/util.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/deploy.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/evaluation/__init__.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/evaluation/metric/g_eval_prompts/coh_detailed.txt +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/evaluation/metric/g_eval_prompts/con_detailed.txt +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/evaluation/metric/g_eval_prompts/flu_detailed.txt +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/evaluation/metric/g_eval_prompts/rel_detailed.txt +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/evaluation/metric/retrieval.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/evaluation/metric/retrieval_contents.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/evaluation/util.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/evaluator.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/node_line.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/__init__.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/generator/__init__.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/generator/run.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/generator/vllm.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passageaugmenter/__init__.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passageaugmenter/base.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passageaugmenter/pass_passage_augmenter.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passageaugmenter/prev_next_augmenter.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passageaugmenter/run.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagecompressor/__init__.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagecompressor/base.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagecompressor/longllmlingua.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagecompressor/pass_compressor.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagecompressor/refine.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagecompressor/run.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagecompressor/tree_summarize.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagefilter/__init__.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagefilter/base.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagefilter/pass_passage_filter.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagefilter/percentile_cutoff.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagefilter/recency.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagefilter/run.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagefilter/similarity_percentile_cutoff.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagefilter/similarity_threshold_cutoff.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagefilter/threshold_cutoff.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagereranker/__init__.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagereranker/base.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagereranker/cohere.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagereranker/colbert.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagereranker/flag_embedding.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagereranker/flag_embedding_llm.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagereranker/jina.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagereranker/koreranker.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagereranker/monot5.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagereranker/pass_reranker.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagereranker/rankgpt.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagereranker/run.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagereranker/sentence_transformer.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagereranker/tart/__init__.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagereranker/tart/modeling_enc_t5.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagereranker/tart/tart.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagereranker/tart/tokenization_enc_t5.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagereranker/time_reranker.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/passagereranker/upr.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/promptmaker/__init__.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/promptmaker/base.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/promptmaker/fstring.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/promptmaker/long_context_reorder.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/promptmaker/run.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/promptmaker/window_replacement.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/queryexpansion/__init__.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/queryexpansion/base.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/queryexpansion/hyde.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/queryexpansion/multi_query_expansion.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/queryexpansion/pass_query_expansion.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/queryexpansion/query_decompose.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/queryexpansion/run.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/retrieval/__init__.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/retrieval/base.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/retrieval/bm25.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/retrieval/hybrid_cc.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/retrieval/hybrid_rrf.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/retrieval/run.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/retrieval/vectordb.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/nodes/util.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/parser.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/schema/__init__.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/schema/base.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/schema/module.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/schema/node.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/strategy.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/support.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/utils/__init__.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/utils/preprocess.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/utils/util.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/validator.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/autorag/web.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docker-compose.yml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/Makefile +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/make.bat +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/requirements.txt +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/CNAME +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/_static/data_creation.png +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/_static/data_folder.png +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/_static/dcg.png +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/_static/f1_score.png +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/_static/map.png +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/_static/mrr.png +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/_static/ndcg.png +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/_static/ndcg_formula.png +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/_static/node_folder.png +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/_static/node_line_folder.png +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/_static/node_line_summary.png +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/_static/node_lines.png +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/_static/node_summary.png +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/_static/normal_distribution.png +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/_static/project_folder_example.png +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/_static/project_folders.png +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/_static/resources_folder.png +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/_static/roadmap/RAG_paradigms.png +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/_static/roadmap/advanced_RAG.png +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/_static/roadmap/cycle.png +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/_static/roadmap/merger.png +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/_static/roadmap/node_line_modular.png +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/_static/roadmap/policy.png +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/_static/samsung_sundae.jpeg +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/_static/score_fusion.png +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/_static/trial_folder.png +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/_static/trial_json.png +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/_static/trial_summary.png +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/_static/web_interface.png +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/_static/web_interface_gradio.png +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/api_spec/autorag.data.chunk.rst +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/api_spec/autorag.data.corpus.rst +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/api_spec/autorag.data.legacy.corpus.rst +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/api_spec/autorag.data.legacy.qacreation.rst +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/api_spec/autorag.data.legacy.rst +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/api_spec/autorag.data.parse.rst +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/api_spec/autorag.data.qa.evolve.rst +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/api_spec/autorag.data.qa.filter.rst +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/api_spec/autorag.data.qa.generation_gt.rst +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/api_spec/autorag.data.qa.query.rst +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/api_spec/autorag.data.qa.rst +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/api_spec/autorag.data.qacreation.rst +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/api_spec/autorag.data.rst +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/api_spec/autorag.data.utils.rst +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/api_spec/autorag.evaluation.rst +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/api_spec/autorag.nodes.generator.rst +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/api_spec/autorag.nodes.passageaugmenter.rst +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/api_spec/autorag.nodes.passagecompressor.rst +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/api_spec/autorag.nodes.passagefilter.rst +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/api_spec/autorag.nodes.passagereranker.rst +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/api_spec/autorag.nodes.passagereranker.tart.rst +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/api_spec/autorag.nodes.promptmaker.rst +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/api_spec/autorag.nodes.queryexpansion.rst +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/api_spec/autorag.nodes.retrieval.rst +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/api_spec/autorag.nodes.rst +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/api_spec/autorag.rst +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/api_spec/autorag.schema.rst +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/api_spec/autorag.utils.rst +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/api_spec/modules.rst +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/conf.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/data_creation/chunk/chunk.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/data_creation/chunk/langchain_chunk.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/data_creation/chunk/llama_index_chunk.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/data_creation/data_format.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/data_creation/legacy/legacy.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/data_creation/legacy/ragas.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/data_creation/legacy/tutorial.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/data_creation/parse/clova.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/data_creation/parse/langchain_parse.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/data_creation/parse/llama_parse.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/data_creation/parse/parse.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/data_creation/parse/table_hybrid_parse.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/data_creation/qa_creation/evolve.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/data_creation/qa_creation/qa_creation.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/data_creation/tutorial.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/deploy/api_endpoint.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/deploy/web.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/evaluate_metrics/generation.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/evaluate_metrics/retrieval.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/evaluate_metrics/retrieval_contents.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/index.rst +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/install.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/local_model.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/migration.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/generator/generator.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/generator/llama_index_llm.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/generator/openai_llm.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/generator/vllm.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/index.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/passage_augmenter/passage_augmenter.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/passage_augmenter/prev_next_augmenter.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/passage_compressor/longllmlingua.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/passage_compressor/passage_compressor.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/passage_compressor/refine.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/passage_compressor/tree_summarize.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/passage_filter/passage_filter.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/passage_filter/percentile_cutoff.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/passage_filter/recency_filter.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/passage_filter/similarity_percentile_cutoff.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/passage_filter/similarity_threshold_cutoff.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/passage_filter/threshold_cutoff.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/passage_reranker/cohere.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/passage_reranker/colbert.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/passage_reranker/flag_embedding_llm_reranker.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/passage_reranker/flag_embedding_reranker.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/passage_reranker/jina_reranker.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/passage_reranker/koreranker.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/passage_reranker/monot5.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/passage_reranker/passage_reranker.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/passage_reranker/rankgpt.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/passage_reranker/sentence_transformer_reranker.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/passage_reranker/tart.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/passage_reranker/time_reranker.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/passage_reranker/upr.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/prompt_maker/fstring.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/prompt_maker/long_context_reorder.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/prompt_maker/prompt_maker.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/prompt_maker/window_replacement.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/query_expansion/hyde.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/query_expansion/multi_query_expansion.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/query_expansion/query_decompose.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/query_expansion/query_expansion.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/retrieval/bm25.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/retrieval/hybrid_cc.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/retrieval/hybrid_rrf.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/retrieval/retrieval.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/nodes/retrieval/vectordb.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/optimization/custom_config.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/optimization/folder_structure.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/optimization/optimization.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/optimization/strategies.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/roadmap/modular_rag.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/structure.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/troubleshooting.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/docs/source/tutorial.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/projects/tutorial_1/config.yaml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/pyproject.toml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/sample_config/chunk/chunk_full.yaml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/sample_config/chunk/chunk_ko.yaml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/sample_config/chunk/simple_chunk.yaml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/sample_config/parse/parse_hybird.yaml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/sample_config/parse/parse_ko.yaml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/sample_config/parse/parse_ocr.yaml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/sample_config/parse/simple_parse.yaml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/sample_config/rag/compact/compact_local.yaml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/sample_config/rag/compact/compact_openai.yaml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/sample_config/rag/config_korean.yaml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/sample_config/rag/extracted_sample.yaml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/sample_config/rag/full.yaml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/sample_config/rag/simple/simple_local.yaml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/sample_config/rag/simple/simple_ollama.yaml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/sample_config/rag/simple/simple_openai.yaml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/sample_dataset/README.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/sample_dataset/eli5/load_eli5_dataset.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/sample_dataset/hotpotqa/load_hotpotqa_dataset.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/sample_dataset/msmarco/load_msmarco_dataset.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/sample_dataset/triviaqa/load_triviaqa_dataset.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/setup.cfg +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/chunk/test_chunk_base.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/chunk/test_chunk_run.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/chunk/test_langchain_chunk.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/chunk/test_llama_index_chunk.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/legacy/corpus/test_base_corpus_legacy.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/legacy/corpus/test_langchain.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/legacy/qacreation/test_ragas_qa_creation.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/parse/test_clova.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/parse/test_parse_run.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/qa/evolve/base_test_query_evolve.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/qa/evolve/test_llama_index_query_evolve.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/qa/evolve/test_openai_query_evolve.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/qa/filter/test_dontknow.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/qa/filter/test_passage_dependency.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/qa/generation_gt/base_test_generation_gt.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/qa/generation_gt/test_llama_index_gen_gt.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/qa/generation_gt/test_openai_gen_gt.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/qa/query/base_test_query_gen.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/qa/query/test_llama_gen_query.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/qa/query/test_openai_gen_query.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/qa/test_sample.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/data/qa/test_schema.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/evaluate/test_evaluate_util.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/generator/test_generator_base.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/generator/test_run_generator_node.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/generator/test_vllm.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passageaugmenter/test_base_passage_augmenter.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passageaugmenter/test_pass_passage_augmenter.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passageaugmenter/test_prev_next_augmenter.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passageaugmenter/test_run_passage_augmenter.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passagecompressor/test_base_passage_compressor.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passagecompressor/test_longllmlingua.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passagecompressor/test_pass_compressor.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passagecompressor/test_refine.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passagecompressor/test_run_passage_compressor_node.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passagecompressor/test_tree_summarize.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passagefilter/test_pass_passage_filter.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passagefilter/test_passage_filter_base.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passagefilter/test_passage_filter_run.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passagefilter/test_percentile_cutoff.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passagefilter/test_recency_filter.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passagefilter/test_similarity_percentile_cutoff.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passagefilter/test_similarity_threshold_cutoff.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passagefilter/test_threshold_cutoff.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passagereranker/test_cohere_reranker.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passagereranker/test_colbert_reranker.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passagereranker/test_flag_embedding.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passagereranker/test_flag_embedding_llm.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passagereranker/test_jina_reranker.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passagereranker/test_koreranker.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passagereranker/test_monot5.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passagereranker/test_pass_reranker.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passagereranker/test_passage_reranker_base.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passagereranker/test_passage_reranker_run.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passagereranker/test_rankgpt.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passagereranker/test_sentence_transformer.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passagereranker/test_tart.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passagereranker/test_time_reranker.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/passagereranker/test_upr.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/promptmaker/test_fstring.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/promptmaker/test_long_context_reorder.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/promptmaker/test_prompt_maker_base.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/promptmaker/test_prompt_maker_run.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/promptmaker/test_window_replacement.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/queryexpansion/test_hyde.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/queryexpansion/test_multi_query_expansion.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/queryexpansion/test_pass_query_expansion.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/queryexpansion/test_query_decompose.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/queryexpansion/test_query_expansion_base.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/queryexpansion/test_query_expansion_run.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/retrieval/test_bm25.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/retrieval/test_hybrid_base.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/retrieval/test_hybrid_cc.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/retrieval/test_hybrid_rrf.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/retrieval/test_retrieval_base.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/retrieval/test_run_retrieval_node.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/nodes/retrieval/test_vectordb.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/schema/test_base.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/schema/test_module_schema.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/schema/test_node_schema.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/test_chunker.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/test_cli.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/test_dashboard.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/test_deploy.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/test_evaluator.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/test_parser.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/test_strategy.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/test_support.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/test_validator.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/test_web.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/utils/test_preprocess.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/autorag/utils/test_util.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/conftest.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/delete_tests.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/mock.py +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/requirements.txt +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/README.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/chunk_data/sample_parsed.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/corpus_data_sample.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/data_creation/raw_dir/sample1.txt +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/data_creation/raw_dir/sample2.txt +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/data_creation/raw_dir/sample3.txt +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/full.yaml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/parse_data/all_files/baseball_1.pdf +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/parse_data/all_files/csv_sample.csv +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/parse_data/clova_data/result_sample.json +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/parse_data/clova_data/result_table.txt +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/parse_data/clova_data/result_text.txt +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/parse_data/csv_data/csv_sample.csv +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/parse_data/eng_text/baseball_1.pdf +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/parse_data/eng_text/baseball_2.pdf +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/parse_data/html_data/html_sample.html +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/parse_data/hybrid_data/nfl_rulebook_both.pdf +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/parse_data/json_data/json_sample.json +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/parse_data/korean_table/only_table/kbo_only_table.pdf +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/parse_data/korean_table/table_text/kbo_table_text.pdf +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/parse_data/korean_text/korean_texts_two_page.pdf +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/parse_data/markdown_data/markdown_sample.md +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/parse_data/xml_data/xml_sample.xml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/qa_data_sample.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/qa_gen_prompts/prompt1.txt +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/qa_gen_prompts/prompt2.txt +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/qa_gen_prompts/prompt3.txt +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/qa_test_data_sample.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/config.yaml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/post_retrieve_node_line/generator/0.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/post_retrieve_node_line/generator/1.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/post_retrieve_node_line/generator/2.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/post_retrieve_node_line/generator/3.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/post_retrieve_node_line/generator/4.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/post_retrieve_node_line/generator/5.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/post_retrieve_node_line/generator/best_5.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/post_retrieve_node_line/generator/summary.csv +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/post_retrieve_node_line/prompt_maker/0.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/post_retrieve_node_line/prompt_maker/1.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/post_retrieve_node_line/prompt_maker/best_0.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/post_retrieve_node_line/prompt_maker/summary.csv +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/post_retrieve_node_line/summary.csv +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/0.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/1.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/2.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/best_0.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/summary.csv +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/pre_retrieve_node_line/summary.csv +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/retrieve_node_line/passage_compressor/0.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/retrieve_node_line/passage_compressor/best_0.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/retrieve_node_line/passage_compressor/summary.csv +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/retrieve_node_line/passage_reranker/0.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/retrieve_node_line/passage_reranker/1.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/retrieve_node_line/passage_reranker/best_0.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/retrieve_node_line/passage_reranker/summary.csv +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/retrieve_node_line/retrieval/0.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/retrieve_node_line/retrieval/1.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/retrieve_node_line/retrieval/best_0.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/retrieve_node_line/retrieval/summary.csv +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/retrieve_node_line/summary.csv +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/0/summary.csv +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/1/config.yaml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/0.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/1.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/2.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/best_0.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/summary.csv +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/1/pre_retrieve_node_line/summary.csv +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/1/retrieve_node_line/passage_filter/0.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/1/retrieve_node_line/passage_reranker/0.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/1/retrieve_node_line/passage_reranker/1.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/1/retrieve_node_line/passage_reranker/best_0.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/1/retrieve_node_line/passage_reranker/summary.csv +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/1/retrieve_node_line/retrieval/0.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/1/retrieve_node_line/retrieval/1.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/1/retrieve_node_line/retrieval/best_0.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/1/retrieve_node_line/retrieval/summary.csv +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/2/config.yaml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/2/post_retrieve_node_line/prompt_maker/0.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/0.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/1.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/2.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/best_0.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/summary.csv +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/2/pre_retrieve_node_line/summary.csv +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/2/retrieve_node_line/passage_compressor/0.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/2/retrieve_node_line/passage_compressor/best_0.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/2/retrieve_node_line/passage_compressor/summary.csv +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/2/retrieve_node_line/passage_reranker/0.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/2/retrieve_node_line/passage_reranker/1.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/2/retrieve_node_line/passage_reranker/best_0.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/2/retrieve_node_line/passage_reranker/summary.csv +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/2/retrieve_node_line/retrieval/0.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/2/retrieve_node_line/retrieval/1.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/2/retrieve_node_line/retrieval/best_0.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/2/retrieve_node_line/retrieval/summary.csv +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/2/retrieve_node_line/summary.csv +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/3/config.yaml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/best.yaml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/data/corpus.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/data/qa.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/resources/bm25_porter_stemmer.pkl +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/resources/chroma/6595d304-5270-4d9f-a267-c191366804ce/data_level0.bin +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/resources/chroma/6595d304-5270-4d9f-a267-c191366804ce/header.bin +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/resources/chroma/6595d304-5270-4d9f-a267-c191366804ce/length.bin +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/resources/chroma/6595d304-5270-4d9f-a267-c191366804ce/link_lists.bin +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/resources/chroma/chroma.sqlite3 +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/result_project/trial.json +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/sample_contents_nqa.csv +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/sample_project/data/corpus.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/sample_project/data/qa.parquet +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/sample_project/resources/bm25_gpt2.pkl +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/sample_project/resources/bm25_porter_stemmer.pkl +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/simple.yaml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/simple_chunk.yaml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/simple_mock.yaml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/tests/resources/simple_parse.yaml +0 -0
- {autorag-0.3.2 → autorag-0.3.3}/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.
|
|
3
|
+
Version: 0.3.3
|
|
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
|
|
@@ -238,14 +238,12 @@ Requires-Dist: click
|
|
|
238
238
|
Requires-Dist: Flask
|
|
239
239
|
Requires-Dist: torch
|
|
240
240
|
Requires-Dist: sentencepiece
|
|
241
|
-
Requires-Dist: guidance
|
|
242
241
|
Requires-Dist: cohere>=5.8.0
|
|
243
242
|
Requires-Dist: tokenlog>=0.0.2
|
|
244
243
|
Requires-Dist: aiohttp
|
|
245
244
|
Requires-Dist: bert_score
|
|
246
245
|
Requires-Dist: sentence-transformers
|
|
247
246
|
Requires-Dist: FlagEmbedding
|
|
248
|
-
Requires-Dist: ragas
|
|
249
247
|
Requires-Dist: llmlingua
|
|
250
248
|
Requires-Dist: peft
|
|
251
249
|
Requires-Dist: llama-index>=0.11.0
|
|
@@ -263,6 +261,7 @@ Requires-Dist: gradio
|
|
|
263
261
|
Requires-Dist: langchain-core>=0.3.0
|
|
264
262
|
Requires-Dist: langchain-unstructured>=0.1.5
|
|
265
263
|
Requires-Dist: langchain-upstage
|
|
264
|
+
Requires-Dist: langchain-community>=0.3.0
|
|
266
265
|
Requires-Dist: panel
|
|
267
266
|
Requires-Dist: seaborn
|
|
268
267
|
Requires-Dist: ipykernel
|
|
@@ -87,6 +87,7 @@ autorag/evaluation/retrieval.py
|
|
|
87
87
|
autorag/evaluation/retrieval_contents.py
|
|
88
88
|
autorag/evaluation/util.py
|
|
89
89
|
autorag/evaluation/metric/__init__.py
|
|
90
|
+
autorag/evaluation/metric/deepeval_prompt.py
|
|
90
91
|
autorag/evaluation/metric/generation.py
|
|
91
92
|
autorag/evaluation/metric/retrieval.py
|
|
92
93
|
autorag/evaluation/metric/retrieval_contents.py
|
|
@@ -17,14 +17,12 @@ click
|
|
|
17
17
|
Flask
|
|
18
18
|
torch
|
|
19
19
|
sentencepiece
|
|
20
|
-
guidance
|
|
21
20
|
cohere>=5.8.0
|
|
22
21
|
tokenlog>=0.0.2
|
|
23
22
|
aiohttp
|
|
24
23
|
bert_score
|
|
25
24
|
sentence-transformers
|
|
26
25
|
FlagEmbedding
|
|
27
|
-
ragas
|
|
28
26
|
llmlingua
|
|
29
27
|
peft
|
|
30
28
|
llama-index>=0.11.0
|
|
@@ -42,6 +40,7 @@ gradio
|
|
|
42
40
|
langchain-core>=0.3.0
|
|
43
41
|
langchain-unstructured>=0.1.5
|
|
44
42
|
langchain-upstage
|
|
43
|
+
langchain-community>=0.3.0
|
|
45
44
|
panel
|
|
46
45
|
seaborn
|
|
47
46
|
ipykernel
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: AutoRAG
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.3
|
|
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
|
|
@@ -238,14 +238,12 @@ Requires-Dist: click
|
|
|
238
238
|
Requires-Dist: Flask
|
|
239
239
|
Requires-Dist: torch
|
|
240
240
|
Requires-Dist: sentencepiece
|
|
241
|
-
Requires-Dist: guidance
|
|
242
241
|
Requires-Dist: cohere>=5.8.0
|
|
243
242
|
Requires-Dist: tokenlog>=0.0.2
|
|
244
243
|
Requires-Dist: aiohttp
|
|
245
244
|
Requires-Dist: bert_score
|
|
246
245
|
Requires-Dist: sentence-transformers
|
|
247
246
|
Requires-Dist: FlagEmbedding
|
|
248
|
-
Requires-Dist: ragas
|
|
249
247
|
Requires-Dist: llmlingua
|
|
250
248
|
Requires-Dist: peft
|
|
251
249
|
Requires-Dist: llama-index>=0.11.0
|
|
@@ -263,6 +261,7 @@ Requires-Dist: gradio
|
|
|
263
261
|
Requires-Dist: langchain-core>=0.3.0
|
|
264
262
|
Requires-Dist: langchain-unstructured>=0.1.5
|
|
265
263
|
Requires-Dist: langchain-upstage
|
|
264
|
+
Requires-Dist: langchain-community>=0.3.0
|
|
266
265
|
Requires-Dist: panel
|
|
267
266
|
Requires-Dist: seaborn
|
|
268
267
|
Requires-Dist: ipykernel
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
0.3.3
|
|
@@ -5,8 +5,6 @@ import pandas as pd
|
|
|
5
5
|
from langchain_core.embeddings import Embeddings
|
|
6
6
|
from langchain_core.language_models import BaseChatModel
|
|
7
7
|
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
|
|
8
|
-
from ragas.testset import TestsetGenerator
|
|
9
|
-
from ragas.testset.evolutions import simple, reasoning, multi_context
|
|
10
8
|
|
|
11
9
|
from autorag.data.utils.util import corpus_df_to_langchain_documents
|
|
12
10
|
from autorag.utils import cast_qa_dataset
|
|
@@ -37,6 +35,9 @@ def generate_qa_ragas(
|
|
|
37
35
|
You can input 'with_debugging_logs', 'is_async', 'raise_exceptions', and 'run_config'.
|
|
38
36
|
:return: QA dataset dataframe.
|
|
39
37
|
"""
|
|
38
|
+
from ragas.testset import TestsetGenerator
|
|
39
|
+
from ragas.testset.evolutions import simple, reasoning, multi_context
|
|
40
|
+
|
|
40
41
|
if generator_llm is None:
|
|
41
42
|
generator_llm = ChatOpenAI(model="gpt-3.5-turbo-16k")
|
|
42
43
|
if critic_llm is None:
|
|
@@ -3,12 +3,10 @@ import pathlib
|
|
|
3
3
|
import uuid
|
|
4
4
|
from typing import Callable
|
|
5
5
|
|
|
6
|
-
import guidance
|
|
7
6
|
import pandas as pd
|
|
8
|
-
from guidance import models, gen
|
|
9
7
|
|
|
10
8
|
|
|
11
|
-
def generate_qa_row(llm
|
|
9
|
+
def generate_qa_row(llm, corpus_data_row):
|
|
12
10
|
"""
|
|
13
11
|
this sample code to generate rag dataset using OpenAI chat model
|
|
14
12
|
|
|
@@ -16,6 +14,9 @@ def generate_qa_row(llm: models.Model, corpus_data_row):
|
|
|
16
14
|
:param corpus_data_row: need "contents" column
|
|
17
15
|
:return: should to be dict which has "query", "generation_gt" columns at least.
|
|
18
16
|
"""
|
|
17
|
+
from guidance import gen
|
|
18
|
+
import guidance
|
|
19
|
+
|
|
19
20
|
temp_llm = llm
|
|
20
21
|
with guidance.user():
|
|
21
22
|
temp_llm += f"""
|
|
@@ -48,7 +49,7 @@ def generate_qa_row(llm: models.Model, corpus_data_row):
|
|
|
48
49
|
|
|
49
50
|
|
|
50
51
|
def generate_simple_qa_dataset(
|
|
51
|
-
llm
|
|
52
|
+
llm,
|
|
52
53
|
corpus_data: pd.DataFrame,
|
|
53
54
|
output_filepath: str,
|
|
54
55
|
generate_row_function: Callable,
|
|
@@ -99,8 +99,10 @@ async def clova_ocr_pure(
|
|
|
99
99
|
raise RuntimeError(
|
|
100
100
|
f"Invalid response from Clova API: {resp_json['detail']}"
|
|
101
101
|
)
|
|
102
|
-
|
|
103
|
-
|
|
102
|
+
if "tables" in resp_json["images"][0].keys():
|
|
103
|
+
table_html = json_to_html_table(
|
|
104
|
+
resp_json["images"][0]["tables"][0]["cells"]
|
|
105
|
+
)
|
|
104
106
|
page_text = extract_text_from_fields(resp_json["images"][0]["fields"])
|
|
105
107
|
|
|
106
108
|
if table_html:
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import multiprocessing as mp
|
|
2
|
+
from itertools import chain
|
|
2
3
|
from typing import List, Tuple
|
|
3
4
|
|
|
4
5
|
from autorag.data import parse_modules
|
|
@@ -20,6 +21,7 @@ def langchain_parse(
|
|
|
20
21
|
if parse_method in ["directory", "unstructured"]:
|
|
21
22
|
results = parse_all_files(data_path_list, parse_method, **kwargs)
|
|
22
23
|
texts, path = results[0], results[1]
|
|
24
|
+
pages = [-1] * len(texts)
|
|
23
25
|
|
|
24
26
|
else:
|
|
25
27
|
num_workers = mp.cpu_count()
|
|
@@ -30,14 +32,14 @@ def langchain_parse(
|
|
|
30
32
|
[(data_path, parse_method, kwargs) for data_path in data_path_list],
|
|
31
33
|
)
|
|
32
34
|
|
|
33
|
-
texts, path = zip(*results)
|
|
34
|
-
texts, path = list(texts), list(path)
|
|
35
|
-
pages = [-1] * len(texts)
|
|
35
|
+
texts, path, pages = (list(chain.from_iterable(item)) for item in zip(*results))
|
|
36
36
|
|
|
37
37
|
return texts, path, pages
|
|
38
38
|
|
|
39
39
|
|
|
40
|
-
def langchain_parse_pure(
|
|
40
|
+
def langchain_parse_pure(
|
|
41
|
+
data_path: str, parse_method: str, kwargs
|
|
42
|
+
) -> Tuple[List[str], List[str], List[int]]:
|
|
41
43
|
"""
|
|
42
44
|
Parses a single file using the specified parse method.
|
|
43
45
|
|
|
@@ -54,12 +56,18 @@ def langchain_parse_pure(data_path: str, parse_method: str, kwargs) -> Tuple[str
|
|
|
54
56
|
|
|
55
57
|
# Load the text from the file
|
|
56
58
|
documents = parse_instance.load()
|
|
57
|
-
|
|
59
|
+
|
|
60
|
+
texts = list(map(lambda x: x.page_content, documents))
|
|
61
|
+
path = [data_path] * len(texts)
|
|
62
|
+
if parse_method in ["pymupdf", "pdfplumber", "pypdf", "pypdfium2"]:
|
|
63
|
+
pages = list(range(1, len(documents) + 1))
|
|
64
|
+
else:
|
|
65
|
+
pages = [-1] * len(texts)
|
|
58
66
|
|
|
59
67
|
# Clean up the parse instance
|
|
60
68
|
del parse_instance
|
|
61
69
|
|
|
62
|
-
return
|
|
70
|
+
return texts, path, pages
|
|
63
71
|
|
|
64
72
|
|
|
65
73
|
def parse_all_files(
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
from typing import List, Tuple
|
|
2
|
+
from itertools import chain
|
|
2
3
|
|
|
3
4
|
from llama_parse import LlamaParse
|
|
4
5
|
|
|
@@ -30,15 +31,18 @@ def llama_parse(
|
|
|
30
31
|
|
|
31
32
|
del parse_instance
|
|
32
33
|
|
|
33
|
-
texts, path = zip(*results)
|
|
34
|
-
pages = [-1] * len(texts)
|
|
34
|
+
texts, path, pages = (list(chain.from_iterable(item)) for item in zip(*results))
|
|
35
35
|
|
|
36
|
-
return
|
|
36
|
+
return texts, path, pages
|
|
37
37
|
|
|
38
38
|
|
|
39
|
-
async def llama_parse_pure(
|
|
39
|
+
async def llama_parse_pure(
|
|
40
|
+
data_path: str, parse_instance
|
|
41
|
+
) -> Tuple[List[str], List[str], List[int]]:
|
|
40
42
|
documents = await parse_instance.aload_data(data_path)
|
|
41
43
|
|
|
42
|
-
|
|
44
|
+
texts = list(map(lambda x: x.text, documents))
|
|
45
|
+
path = [data_path] * len(texts)
|
|
46
|
+
pages = list(range(1, len(documents) + 1))
|
|
43
47
|
|
|
44
|
-
return
|
|
48
|
+
return texts, path, pages
|
|
@@ -11,17 +11,27 @@ from autorag.evaluation.metric.generation import (
|
|
|
11
11
|
sem_score,
|
|
12
12
|
g_eval,
|
|
13
13
|
bert_score,
|
|
14
|
+
deepeval_faithfulness,
|
|
14
15
|
)
|
|
15
16
|
from autorag.evaluation.util import cast_metrics
|
|
16
17
|
from autorag.schema.metricinput import MetricInput
|
|
17
18
|
|
|
18
19
|
GENERATION_METRIC_FUNC_DICT = {
|
|
19
|
-
func.__name__: func
|
|
20
|
+
func.__name__: func
|
|
21
|
+
for func in [
|
|
22
|
+
bleu,
|
|
23
|
+
meteor,
|
|
24
|
+
rouge,
|
|
25
|
+
sem_score,
|
|
26
|
+
g_eval,
|
|
27
|
+
bert_score,
|
|
28
|
+
deepeval_faithfulness,
|
|
29
|
+
]
|
|
20
30
|
}
|
|
21
31
|
|
|
22
32
|
|
|
23
33
|
def evaluate_generation(
|
|
24
|
-
|
|
34
|
+
metric_inputs: List[MetricInput], metrics: Union[List[str], List[Dict]]
|
|
25
35
|
):
|
|
26
36
|
def decorator_evaluate_generation(func: Callable):
|
|
27
37
|
@functools.wraps(func)
|
|
@@ -55,7 +65,6 @@ def evaluate_generation(
|
|
|
55
65
|
f"{metric_name} will be ignored."
|
|
56
66
|
)
|
|
57
67
|
else:
|
|
58
|
-
|
|
59
68
|
metric_scores[metric_name] = GENERATION_METRIC_FUNC_DICT[
|
|
60
69
|
metric_name
|
|
61
70
|
](
|
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
from .generation import
|
|
1
|
+
from .generation import (
|
|
2
|
+
bleu,
|
|
3
|
+
meteor,
|
|
4
|
+
rouge,
|
|
5
|
+
sem_score,
|
|
6
|
+
g_eval,
|
|
7
|
+
bert_score,
|
|
8
|
+
deepeval_faithfulness,
|
|
9
|
+
)
|
|
2
10
|
from .retrieval import (
|
|
3
11
|
retrieval_f1,
|
|
4
12
|
retrieval_recall,
|
|
@@ -0,0 +1,218 @@
|
|
|
1
|
+
class FaithfulnessTemplate:
|
|
2
|
+
@staticmethod
|
|
3
|
+
def generate_claims(text, lang: str = "en"):
|
|
4
|
+
if lang == "en":
|
|
5
|
+
return f"""Based on the given text, please generate a comprehensive list of FACTUAL claims that can inferred from the provided text.
|
|
6
|
+
|
|
7
|
+
Example:
|
|
8
|
+
Example Text:
|
|
9
|
+
"Einstein won the noble prize in 1968 for his discovery of the photoelectric effect."
|
|
10
|
+
|
|
11
|
+
Example JSON:
|
|
12
|
+
{{
|
|
13
|
+
"claims": [
|
|
14
|
+
"Einstein won the noble prize for his discovery of the photoelectric effect.",
|
|
15
|
+
"Einstein won the noble prize in 1968."
|
|
16
|
+
]
|
|
17
|
+
}}
|
|
18
|
+
===== END OF EXAMPLE ======
|
|
19
|
+
|
|
20
|
+
**
|
|
21
|
+
IMPORTANT: Please make sure to only return in JSON format, with the "claims" key as a list of strings. No words or explanation is needed.
|
|
22
|
+
Only include claims that are factual, and the claims you extract should include the full context it was presented in, NOT cherry picked facts.
|
|
23
|
+
You should NOT include any prior knowledge, and take the text at face value when extracting claims.
|
|
24
|
+
**
|
|
25
|
+
|
|
26
|
+
Text:
|
|
27
|
+
{text}
|
|
28
|
+
|
|
29
|
+
JSON:
|
|
30
|
+
"""
|
|
31
|
+
elif lang == "ko":
|
|
32
|
+
return f"""주어진 텍스트에서 찾을 수 있는 사실적 정보들의 목록을 생성하세요.
|
|
33
|
+
|
|
34
|
+
예시:
|
|
35
|
+
예시 텍스트:
|
|
36
|
+
“아인슈타인은 1968년에 광전 효과 발견으로 노벨상을 수상했다.”
|
|
37
|
+
|
|
38
|
+
예시 JSON:
|
|
39
|
+
{{
|
|
40
|
+
“claims”: [
|
|
41
|
+
“아인슈타인은 광전 효과 발견으로 노벨상을 수상했다.”,
|
|
42
|
+
“아인슈타인은 1968년에 노벨상을 수상했다.”
|
|
43
|
+
]
|
|
44
|
+
}}
|
|
45
|
+
===== 예시 끝 ======
|
|
46
|
+
|
|
47
|
+
**
|
|
48
|
+
중요: 오직 JSON 형식으로 “claims” 키가 문자열 목록으로 반환되도록 해야 합니다. 다른 단어나 설명은 필요하지 않습니다.
|
|
49
|
+
사실에 기반한 주장만 포함하며, 추출한 주장은 전체 맥락을 유지해야 하며, 부분적으로 선택된 사실을 포함하지 않아야 합니다.
|
|
50
|
+
사전 지식은 포함하지 말고, 텍스트에만 기초해 주장들을 추출해야 합니다.
|
|
51
|
+
**
|
|
52
|
+
|
|
53
|
+
텍스트:
|
|
54
|
+
{text}
|
|
55
|
+
|
|
56
|
+
JSON:
|
|
57
|
+
"""
|
|
58
|
+
else:
|
|
59
|
+
raise ValueError(f"Language {lang} is not supported.")
|
|
60
|
+
|
|
61
|
+
@staticmethod
|
|
62
|
+
def generate_truths(text, lang: str = "en"):
|
|
63
|
+
if lang == "en":
|
|
64
|
+
return f"""Based on the given text, please generate a comprehensive list of FACTUAL, undisputed truths that can inferred from the provided text.
|
|
65
|
+
|
|
66
|
+
Example:
|
|
67
|
+
Example Text:
|
|
68
|
+
"Einstein won the noble prize in 1968 for his discovery of the photoelectric effect."
|
|
69
|
+
|
|
70
|
+
Example JSON:
|
|
71
|
+
{{
|
|
72
|
+
"truths": [
|
|
73
|
+
"Einstein won the noble prize for his discovery of the photoelectric effect.",
|
|
74
|
+
"Einstein won the noble prize in 1968."
|
|
75
|
+
]
|
|
76
|
+
}}
|
|
77
|
+
===== END OF EXAMPLE ======
|
|
78
|
+
|
|
79
|
+
**
|
|
80
|
+
IMPORTANT: Please make sure to only return in JSON format, with the "truths" key as a list of strings. No words or explanation is needed.
|
|
81
|
+
Only include truths that are factual.
|
|
82
|
+
**
|
|
83
|
+
|
|
84
|
+
Text:
|
|
85
|
+
{text}
|
|
86
|
+
|
|
87
|
+
JSON:
|
|
88
|
+
"""
|
|
89
|
+
elif lang == "ko":
|
|
90
|
+
return f"""주어진 텍스트에서 추출할 수 있는 사실적이고 논란이 없는 진실들의 목록을 생성하세요.
|
|
91
|
+
|
|
92
|
+
예시:
|
|
93
|
+
예시 텍스트:
|
|
94
|
+
"아인슈타인은 1968년에 광전 효과 발견으로 노벨상을 수상했다."
|
|
95
|
+
|
|
96
|
+
예시 JSON:
|
|
97
|
+
{{
|
|
98
|
+
"truths": [
|
|
99
|
+
"아인슈타인은 광전 효과 발견으로 노벨상을 수상했다.",
|
|
100
|
+
"아인슈타인은 1968년에 노벨상을 수상했다."
|
|
101
|
+
]
|
|
102
|
+
}}
|
|
103
|
+
===== 예시 끝 ======
|
|
104
|
+
|
|
105
|
+
**
|
|
106
|
+
중요: 오직 JSON 형식으로 "truths" 키가 문자열 목록으로 반환되도록 해야 합니다. 다른 단어나 설명은 필요하지 않습니다.
|
|
107
|
+
사실에 기반한 진실만 포함해야 합니다.
|
|
108
|
+
**
|
|
109
|
+
|
|
110
|
+
텍스트:
|
|
111
|
+
{text}
|
|
112
|
+
|
|
113
|
+
JSON:"""
|
|
114
|
+
else:
|
|
115
|
+
raise ValueError(f"Language {lang} is not supported.")
|
|
116
|
+
|
|
117
|
+
@staticmethod
|
|
118
|
+
def generate_verdicts(claims, retrieval_context, lang: str = "en"):
|
|
119
|
+
if lang == "en":
|
|
120
|
+
return f"""Based on the given claims, which is a list of strings, generate a list of JSON objects to indicate whether EACH claim contradicts any facts in the retrieval context. The JSON will have 2 fields: 'verdict' and 'reason'.
|
|
121
|
+
The 'verdict' key should STRICTLY be either 'yes', 'no', or 'idk', which states whether the given claim agrees with the context.
|
|
122
|
+
Provide a 'reason' ONLY if the answer is 'no'.
|
|
123
|
+
The provided claim is drawn from the actual output. Try to provide a correction in the reason using the facts in the retrieval context.
|
|
124
|
+
|
|
125
|
+
**
|
|
126
|
+
IMPORTANT: Please make sure to only return in JSON format, with the 'verdicts' key as a list of JSON objects.
|
|
127
|
+
Example retrieval contexts: "Einstein won the Nobel Prize for his discovery of the photoelectric effect. Einstein won the Nobel Prize in 1968. Einstein is a German Scientist."
|
|
128
|
+
Example claims: ["Barack Obama is a caucasian male.", "Zurich is a city in London", "Einstein won the Nobel Prize for the discovery of the photoelectric effect which may have contributed to his fame.", "Einstein won the Nobel Prize in 1969 for his discovery of the photoelectric effect.", "Einstein was a Germen chef."]
|
|
129
|
+
|
|
130
|
+
Example:
|
|
131
|
+
{{
|
|
132
|
+
"verdicts": [
|
|
133
|
+
{{
|
|
134
|
+
"verdict": "idk"
|
|
135
|
+
}},
|
|
136
|
+
{{
|
|
137
|
+
"verdict": "idk"
|
|
138
|
+
}},
|
|
139
|
+
{{
|
|
140
|
+
"verdict": "yes"
|
|
141
|
+
}},
|
|
142
|
+
{{
|
|
143
|
+
"verdict": "no",
|
|
144
|
+
"reason": "The actual output claims Einstein won the Nobel Prize in 1969, which is untrue as the retrieval context states it is 1968 instead."
|
|
145
|
+
}},
|
|
146
|
+
{{
|
|
147
|
+
"verdict": "no",
|
|
148
|
+
"reason": "The actual output claims Einstein is a Germen chef, which is not correct as the retrieval context states he was a German scientist instead."
|
|
149
|
+
}},
|
|
150
|
+
]
|
|
151
|
+
}}
|
|
152
|
+
===== END OF EXAMPLE ======
|
|
153
|
+
|
|
154
|
+
The length of 'verdicts' SHOULD BE STRICTLY EQUAL to that of claims.
|
|
155
|
+
You DON'T have to provide a reason if the answer is 'yes' or 'idk'.
|
|
156
|
+
ONLY provide a 'no' answer if the retrieval context DIRECTLY CONTRADICTS the claims. YOU SHOULD NEVER USE YOUR PRIOR KNOWLEDGE IN YOUR JUDGEMENT.
|
|
157
|
+
Claims made using vague, suggestive, speculative language such as 'may have', 'possibility due to', does NOT count as a contradiction.
|
|
158
|
+
Claims that is not backed up due to a lack of information/is not mentioned in the retrieval contexts MUST be answered 'idk', otherwise I WILL DIE.
|
|
159
|
+
**
|
|
160
|
+
|
|
161
|
+
Retrieval Contexts:
|
|
162
|
+
{retrieval_context}
|
|
163
|
+
|
|
164
|
+
Claims:
|
|
165
|
+
{claims}
|
|
166
|
+
|
|
167
|
+
JSON:
|
|
168
|
+
"""
|
|
169
|
+
elif lang == "ko":
|
|
170
|
+
return f"""주어진 주장에 대해, 각 주장이 주어진 문맥의 사실들과 모순되는지를 나타내는 JSON 객체 목록을 생성하세요. JSON은 두 개의 필드인 'verdict'와 'reason'으로 구성됩니다.
|
|
171
|
+
'verdict'는 'yes', 'no', 또는 'idk' 중 하나여야 하며, 주어진 주장이 문맥과 일치하는지를 나타냅니다.
|
|
172
|
+
'verdict'가 'no'인 경우에만 'reason'을 제공하세요. 'reason'에는 문맥에 따라 주장을 수정하는 내용이 포함되어야 합니다.
|
|
173
|
+
|
|
174
|
+
**
|
|
175
|
+
중요: 오직 JSON 형식으로 'verdicts' 키가 JSON 객체 목록으로 반환되도록 해야 합니다.
|
|
176
|
+
예시 문맥: "아인슈타인은 광전 효과 발견으로 노벨상을 수상했다. 아인슈타인은 1968년에 노벨상을 수상했다. 아인슈타인은 독일 과학자이다."
|
|
177
|
+
예시 주장: ["버락 오바마는 백인 남성이다.", "취리히는 런던에 있는 도시이다.", "아인슈타인은 광전 효과 발견으로 노벨상을 수상했으며, 이는 그의 명성에 기여했을 것이다.", "아인슈타인은 1969년에 광전 효과 발견으로 노벨상을 수상했다.", "아인슈타인은 독일 요리사였다."]
|
|
178
|
+
|
|
179
|
+
예시:
|
|
180
|
+
{{
|
|
181
|
+
"verdicts": [
|
|
182
|
+
{{
|
|
183
|
+
"verdict": "idk"
|
|
184
|
+
}},
|
|
185
|
+
{{
|
|
186
|
+
"verdict": "idk"
|
|
187
|
+
}},
|
|
188
|
+
{{
|
|
189
|
+
"verdict": "yes"
|
|
190
|
+
}},
|
|
191
|
+
{{
|
|
192
|
+
"verdict": "no",
|
|
193
|
+
"reason": "실제 출력은 아인슈타인이 1969년에 노벨상을 수상했다고 주장하지만, 문맥에서는 1968년이라고 명시되어 있습니다."
|
|
194
|
+
}},
|
|
195
|
+
{{
|
|
196
|
+
"verdict": "no",
|
|
197
|
+
"reason": "실제 출력은 아인슈타인이 독일 요리사라고 주장하지만, 문맥에서는 그가 독일 과학자라고 명시되어 있습니다."
|
|
198
|
+
}},
|
|
199
|
+
]
|
|
200
|
+
}}
|
|
201
|
+
===== 예시 끝 ======
|
|
202
|
+
|
|
203
|
+
'verdicts' 리스트의 길이는 반드시 주장들의 길이와 같아야 합니다.
|
|
204
|
+
'yes' 또는 'idk'일 경우 'reason'을 제공할 필요가 없습니다.
|
|
205
|
+
검색된 문맥과 직접적으로 모순되는 경우에만 'no' 답변을 제공하세요. 절대로 선험적인 지식을 사용하지 마세요.
|
|
206
|
+
'~일 수 있다', '가능성이 있다'와 같은 모호한 표현은 모순으로 간주하지 마세요.
|
|
207
|
+
문맥에 대한 정보 부족으로 뒷받침되지 않거나 언급되지 않은 주장은 반드시 'idk'로 답변하세요, 그렇지 않으면 내가 죽습니다.
|
|
208
|
+
**
|
|
209
|
+
|
|
210
|
+
주어진 문맥:
|
|
211
|
+
{retrieval_context}
|
|
212
|
+
|
|
213
|
+
주장:
|
|
214
|
+
{claims}
|
|
215
|
+
|
|
216
|
+
JSON:"""
|
|
217
|
+
else:
|
|
218
|
+
raise ValueError(f"Language {lang} is not supported.")
|
|
@@ -10,19 +10,27 @@ import torch
|
|
|
10
10
|
from llama_index.core.embeddings import BaseEmbedding
|
|
11
11
|
from llama_index.embeddings.openai import OpenAIEmbedding
|
|
12
12
|
from openai import AsyncOpenAI
|
|
13
|
+
from pydantic import BaseModel
|
|
13
14
|
from rouge_score import tokenizers
|
|
14
15
|
from rouge_score.rouge_scorer import RougeScorer
|
|
15
16
|
from sacrebleu.metrics.bleu import BLEU
|
|
16
17
|
|
|
17
18
|
from autorag import embedding_models
|
|
18
|
-
from autorag.evaluation.metric.
|
|
19
|
-
from autorag.evaluation.metric.util import
|
|
19
|
+
from autorag.evaluation.metric.deepeval_prompt import FaithfulnessTemplate
|
|
20
|
+
from autorag.evaluation.metric.util import (
|
|
21
|
+
autorag_metric_loop,
|
|
22
|
+
calculate_cosine_similarity,
|
|
23
|
+
)
|
|
24
|
+
from autorag.nodes.generator import OpenAILLM
|
|
25
|
+
from autorag.nodes.generator.base import BaseGenerator
|
|
20
26
|
from autorag.schema.metricinput import MetricInput
|
|
27
|
+
from autorag.support import get_support_modules
|
|
21
28
|
from autorag.utils.util import (
|
|
22
29
|
get_event_loop,
|
|
23
30
|
process_batch,
|
|
24
31
|
openai_truncate_by_token,
|
|
25
32
|
convert_inputs_to_list,
|
|
33
|
+
pop_params,
|
|
26
34
|
)
|
|
27
35
|
|
|
28
36
|
|
|
@@ -58,6 +66,120 @@ def huggingface_evaluate(
|
|
|
58
66
|
return result
|
|
59
67
|
|
|
60
68
|
|
|
69
|
+
def make_generator_instance(generator_module_type: str, llm: str, **kwargs):
|
|
70
|
+
llm_class = get_support_modules(generator_module_type)
|
|
71
|
+
init_params = pop_params(llm_class.__init__, kwargs)
|
|
72
|
+
return llm_class(project_dir="", llm=llm, **init_params)
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
@autorag_metric_loop(fields_to_check=["retrieval_gt_contents", "generated_texts"])
|
|
76
|
+
def deepeval_faithfulness(
|
|
77
|
+
metric_inputs: List[MetricInput],
|
|
78
|
+
generator_module_type: str = "openai_llm",
|
|
79
|
+
lang: str = "en",
|
|
80
|
+
llm: str = "gpt-4o-2024-08-06",
|
|
81
|
+
batch: int = 16,
|
|
82
|
+
**kwargs,
|
|
83
|
+
) -> List[float]:
|
|
84
|
+
"""
|
|
85
|
+
Compute deepeval faithfulness metric.
|
|
86
|
+
Its default model is gpt-4o-2024-08-06.
|
|
87
|
+
Since it uses OpenAI model, please be aware of the expensive cost.
|
|
88
|
+
|
|
89
|
+
:param metric_inputs: The list of MetricInput schema (Required Field -> "generation_gt", "generated_texts")
|
|
90
|
+
:param generator_module_type: Generator module type.
|
|
91
|
+
The default is "openai_llm".
|
|
92
|
+
You can use like "llama_index_llm" or "vllm".
|
|
93
|
+
:param lang: The prompt language that you want to use.
|
|
94
|
+
"en" and "ko" are supported.
|
|
95
|
+
Korean prompt is not officially supported by DeepEval, but it can be translated by AutoRAG developers.
|
|
96
|
+
Default is "en".
|
|
97
|
+
:param llm: The model name to use for generation.
|
|
98
|
+
Or llm if using llama_index_llm.
|
|
99
|
+
The default is "gpt-4o-2024-08-06".
|
|
100
|
+
:param batch: The batch size for processing.
|
|
101
|
+
Default is 16.
|
|
102
|
+
:param kwargs: The extra parameters for initializing the llm instance.
|
|
103
|
+
:return: The metric scores.
|
|
104
|
+
"""
|
|
105
|
+
|
|
106
|
+
class Truth(BaseModel):
|
|
107
|
+
truths: List[str]
|
|
108
|
+
|
|
109
|
+
class Claim(BaseModel):
|
|
110
|
+
claims: List[str]
|
|
111
|
+
|
|
112
|
+
class Verdict(BaseModel):
|
|
113
|
+
verdict: str
|
|
114
|
+
reason: Optional[str]
|
|
115
|
+
|
|
116
|
+
class FaithfulnessVerdicts(BaseModel):
|
|
117
|
+
verdicts: List[Verdict]
|
|
118
|
+
|
|
119
|
+
def calculate_score(verdicts: List[Verdict]) -> float:
|
|
120
|
+
number_of_verdicts = len(verdicts)
|
|
121
|
+
if number_of_verdicts == 0:
|
|
122
|
+
return 1
|
|
123
|
+
|
|
124
|
+
faithfulness_count = 0
|
|
125
|
+
for verdict in verdicts:
|
|
126
|
+
if verdict.verdict.strip().lower() != "no":
|
|
127
|
+
faithfulness_count += 1
|
|
128
|
+
|
|
129
|
+
score = faithfulness_count / number_of_verdicts
|
|
130
|
+
return score
|
|
131
|
+
|
|
132
|
+
retrieval_contexts = list(map(lambda x: x.retrieval_gt_contents, metric_inputs))
|
|
133
|
+
truth_prompts = list(
|
|
134
|
+
map(lambda x: FaithfulnessTemplate.generate_truths(x, lang), retrieval_contexts)
|
|
135
|
+
)
|
|
136
|
+
|
|
137
|
+
generated_texts = list(map(lambda x: x.generated_texts, metric_inputs))
|
|
138
|
+
claim_prompts = list(
|
|
139
|
+
map(lambda x: FaithfulnessTemplate.generate_claims(x, lang), generated_texts)
|
|
140
|
+
)
|
|
141
|
+
|
|
142
|
+
generator: BaseGenerator = make_generator_instance(
|
|
143
|
+
generator_module_type, llm=llm, batch=batch, **kwargs
|
|
144
|
+
)
|
|
145
|
+
if isinstance(generator, OpenAILLM): # Because of the event loop error at the httpx
|
|
146
|
+
# TODO: Fix the httpx APIConnectionError at the many repetitive request to the OpenAILLM on the same instance
|
|
147
|
+
truth_responses: List[Truth] = generator.structured_output(truth_prompts, Truth)
|
|
148
|
+
claim_responses: List[Claim] = make_generator_instance(
|
|
149
|
+
generator_module_type, llm=llm, batch=batch, **kwargs
|
|
150
|
+
).structured_output(claim_prompts, Claim)
|
|
151
|
+
verdict_prompts = list(
|
|
152
|
+
map(
|
|
153
|
+
lambda claim, truth: FaithfulnessTemplate.generate_verdicts(
|
|
154
|
+
"\n\n".join(claim.claims), "\n\n".join(truth.truths), lang
|
|
155
|
+
),
|
|
156
|
+
claim_responses,
|
|
157
|
+
truth_responses,
|
|
158
|
+
)
|
|
159
|
+
)
|
|
160
|
+
verdict_responses: List[FaithfulnessVerdicts] = make_generator_instance(
|
|
161
|
+
generator_module_type, llm=llm, batch=batch, **kwargs
|
|
162
|
+
).structured_output(verdict_prompts, FaithfulnessVerdicts)
|
|
163
|
+
else:
|
|
164
|
+
truth_responses: List[Truth] = generator.structured_output(truth_prompts, Truth)
|
|
165
|
+
claim_responses: List[Claim] = generator.structured_output(claim_prompts, Claim)
|
|
166
|
+
verdict_prompts = list(
|
|
167
|
+
map(
|
|
168
|
+
lambda claim, truth: FaithfulnessTemplate.generate_verdicts(
|
|
169
|
+
"\n\n".join(claim.claims), "\n\n".join(truth.truths), lang
|
|
170
|
+
),
|
|
171
|
+
claim_responses,
|
|
172
|
+
truth_responses,
|
|
173
|
+
)
|
|
174
|
+
)
|
|
175
|
+
verdict_responses: List[FaithfulnessVerdicts] = generator.structured_output(
|
|
176
|
+
verdict_prompts, FaithfulnessVerdicts
|
|
177
|
+
)
|
|
178
|
+
|
|
179
|
+
result = list(map(lambda x: calculate_score(x.verdicts), verdict_responses))
|
|
180
|
+
return result
|
|
181
|
+
|
|
182
|
+
|
|
61
183
|
@autorag_metric_loop(fields_to_check=["generation_gt", "generated_texts"])
|
|
62
184
|
def bleu(
|
|
63
185
|
metric_inputs: List[MetricInput],
|