AutoRAG 0.2.12__tar.gz → 0.2.14__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.
Files changed (448) hide show
  1. autorag-0.2.14/.github/ISSUE_TEMPLATE/bug_report.md +35 -0
  2. autorag-0.2.14/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  3. {autorag-0.2.12 → autorag-0.2.14}/.github/workflows/test.yml +5 -1
  4. {autorag-0.2.12 → autorag-0.2.14}/AutoRAG.egg-info/PKG-INFO +10 -7
  5. {autorag-0.2.12 → autorag-0.2.14}/AutoRAG.egg-info/SOURCES.txt +4 -0
  6. {autorag-0.2.12 → autorag-0.2.14}/AutoRAG.egg-info/requires.txt +10 -4
  7. {autorag-0.2.12 → autorag-0.2.14}/PKG-INFO +10 -7
  8. {autorag-0.2.12 → autorag-0.2.14}/README.md +1 -2
  9. autorag-0.2.14/autorag/VERSION +1 -0
  10. {autorag-0.2.12 → autorag-0.2.14}/autorag/__init__.py +3 -5
  11. {autorag-0.2.12 → autorag-0.2.14}/autorag/cli.py +15 -2
  12. autorag-0.2.14/autorag/data/qacreation/__init__.py +2 -0
  13. autorag-0.2.14/autorag/data/qacreation/base.py +168 -0
  14. {autorag-0.2.12 → autorag-0.2.14}/autorag/data/qacreation/llama_index.py +41 -0
  15. {autorag-0.2.12 → autorag-0.2.14}/autorag/deploy.py +6 -4
  16. {autorag-0.2.12 → autorag-0.2.14}/autorag/evaluation/metric/generation.py +2 -0
  17. {autorag-0.2.12 → autorag-0.2.14}/autorag/evaluator.py +4 -0
  18. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passageaugmenter/base.py +2 -1
  19. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagefilter/threshold_cutoff.py +10 -17
  20. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/retrieval/base.py +1 -1
  21. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/retrieval/bm25.py +32 -1
  22. {autorag-0.2.12 → autorag-0.2.14}/autorag/strategy.py +1 -1
  23. {autorag-0.2.12 → autorag-0.2.14}/autorag/utils/util.py +1 -1
  24. autorag-0.2.14/autorag/validator.py +66 -0
  25. {autorag-0.2.12 → autorag-0.2.14}/docs/source/api_spec/autorag.rst +8 -0
  26. {autorag-0.2.12 → autorag-0.2.14}/docs/source/data_creation/data_format.md +10 -0
  27. {autorag-0.2.12 → autorag-0.2.14}/docs/source/data_creation/tutorial.md +46 -0
  28. {autorag-0.2.12 → autorag-0.2.14}/docs/source/install.md +14 -0
  29. {autorag-0.2.12 → autorag-0.2.14}/docs/source/local_model.md +2 -1
  30. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/generator/llama_index_llm.md +3 -1
  31. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/prompt_maker/prompt_maker.md +18 -6
  32. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/retrieval/bm25.md +24 -8
  33. {autorag-0.2.12 → autorag-0.2.14}/docs/source/optimization/optimization.md +7 -1
  34. {autorag-0.2.12 → autorag-0.2.14}/docs/source/tutorial.md +47 -17
  35. {autorag-0.2.12 → autorag-0.2.14}/pyproject.toml +4 -0
  36. {autorag-0.2.12 → autorag-0.2.14}/requirements.txt +3 -5
  37. {autorag-0.2.12 → autorag-0.2.14}/sample_config/config_korean.yaml +1 -1
  38. {autorag-0.2.12 → autorag-0.2.14}/sample_config/full.yaml +1 -1
  39. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/data/qacreation/test_base_qacreation.py +37 -1
  40. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/data/qacreation/test_llama_index_qacreation.py +23 -1
  41. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/retrieval/test_bm25.py +24 -8
  42. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/test_cli.py +10 -0
  43. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/test_deploy.py +0 -2
  44. autorag-0.2.14/tests/autorag/test_validator.py +16 -0
  45. autorag-0.2.12/autorag/VERSION +0 -1
  46. autorag-0.2.12/autorag/data/qacreation/__init__.py +0 -2
  47. autorag-0.2.12/autorag/data/qacreation/base.py +0 -79
  48. {autorag-0.2.12 → autorag-0.2.14}/.github/FUNDING.yml +0 -0
  49. {autorag-0.2.12 → autorag-0.2.14}/.github/dependabot.yml +0 -0
  50. {autorag-0.2.12 → autorag-0.2.14}/.github/workflows/publish.yml +0 -0
  51. {autorag-0.2.12 → autorag-0.2.14}/.github/workflows/sphinx.yml +0 -0
  52. {autorag-0.2.12 → autorag-0.2.14}/.gitignore +0 -0
  53. {autorag-0.2.12 → autorag-0.2.14}/AutoRAG.egg-info/dependency_links.txt +0 -0
  54. {autorag-0.2.12 → autorag-0.2.14}/AutoRAG.egg-info/entry_points.txt +0 -0
  55. {autorag-0.2.12 → autorag-0.2.14}/AutoRAG.egg-info/top_level.txt +0 -0
  56. {autorag-0.2.12 → autorag-0.2.14}/CODE_OF_CONDUCT.md +0 -0
  57. {autorag-0.2.12 → autorag-0.2.14}/CONTRIBUTING.md +0 -0
  58. {autorag-0.2.12 → autorag-0.2.14}/LICENSE +0 -0
  59. {autorag-0.2.12 → autorag-0.2.14}/autorag/dashboard.py +0 -0
  60. {autorag-0.2.12 → autorag-0.2.14}/autorag/data/__init__.py +0 -0
  61. {autorag-0.2.12 → autorag-0.2.14}/autorag/data/corpus/__init__.py +0 -0
  62. {autorag-0.2.12 → autorag-0.2.14}/autorag/data/corpus/langchain.py +0 -0
  63. {autorag-0.2.12 → autorag-0.2.14}/autorag/data/corpus/llama_index.py +0 -0
  64. {autorag-0.2.12 → autorag-0.2.14}/autorag/data/qacreation/llama_index_default_prompt.txt +0 -0
  65. {autorag-0.2.12 → autorag-0.2.14}/autorag/data/qacreation/ragas.py +0 -0
  66. {autorag-0.2.12 → autorag-0.2.14}/autorag/data/qacreation/simple.py +0 -0
  67. {autorag-0.2.12 → autorag-0.2.14}/autorag/data/utils/__init__.py +0 -0
  68. {autorag-0.2.12 → autorag-0.2.14}/autorag/data/utils/util.py +0 -0
  69. {autorag-0.2.12 → autorag-0.2.14}/autorag/evaluation/__init__.py +0 -0
  70. {autorag-0.2.12 → autorag-0.2.14}/autorag/evaluation/generation.py +0 -0
  71. {autorag-0.2.12 → autorag-0.2.14}/autorag/evaluation/metric/__init__.py +0 -0
  72. {autorag-0.2.12 → autorag-0.2.14}/autorag/evaluation/metric/g_eval_prompts/coh_detailed.txt +0 -0
  73. {autorag-0.2.12 → autorag-0.2.14}/autorag/evaluation/metric/g_eval_prompts/con_detailed.txt +0 -0
  74. {autorag-0.2.12 → autorag-0.2.14}/autorag/evaluation/metric/g_eval_prompts/flu_detailed.txt +0 -0
  75. {autorag-0.2.12 → autorag-0.2.14}/autorag/evaluation/metric/g_eval_prompts/rel_detailed.txt +0 -0
  76. {autorag-0.2.12 → autorag-0.2.14}/autorag/evaluation/metric/retrieval.py +0 -0
  77. {autorag-0.2.12 → autorag-0.2.14}/autorag/evaluation/metric/retrieval_contents.py +0 -0
  78. {autorag-0.2.12 → autorag-0.2.14}/autorag/evaluation/metric/util.py +0 -0
  79. {autorag-0.2.12 → autorag-0.2.14}/autorag/evaluation/retrieval.py +0 -0
  80. {autorag-0.2.12 → autorag-0.2.14}/autorag/evaluation/retrieval_contents.py +0 -0
  81. {autorag-0.2.12 → autorag-0.2.14}/autorag/evaluation/util.py +0 -0
  82. {autorag-0.2.12 → autorag-0.2.14}/autorag/node_line.py +0 -0
  83. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/__init__.py +0 -0
  84. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/generator/__init__.py +0 -0
  85. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/generator/base.py +0 -0
  86. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/generator/llama_index_llm.py +0 -0
  87. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/generator/openai_llm.py +0 -0
  88. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/generator/run.py +0 -0
  89. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/generator/vllm.py +0 -0
  90. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passageaugmenter/__init__.py +0 -0
  91. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passageaugmenter/pass_passage_augmenter.py +0 -0
  92. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passageaugmenter/prev_next_augmenter.py +0 -0
  93. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passageaugmenter/run.py +0 -0
  94. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagecompressor/__init__.py +0 -0
  95. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagecompressor/base.py +0 -0
  96. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagecompressor/longllmlingua.py +0 -0
  97. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagecompressor/pass_compressor.py +0 -0
  98. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagecompressor/refine.py +0 -0
  99. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagecompressor/run.py +0 -0
  100. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagecompressor/tree_summarize.py +0 -0
  101. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagefilter/__init__.py +0 -0
  102. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagefilter/base.py +0 -0
  103. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagefilter/pass_passage_filter.py +0 -0
  104. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagefilter/percentile_cutoff.py +0 -0
  105. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagefilter/recency.py +0 -0
  106. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagefilter/run.py +0 -0
  107. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagefilter/similarity_percentile_cutoff.py +0 -0
  108. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagefilter/similarity_threshold_cutoff.py +0 -0
  109. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagereranker/__init__.py +0 -0
  110. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagereranker/base.py +0 -0
  111. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagereranker/cohere.py +0 -0
  112. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagereranker/colbert.py +0 -0
  113. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagereranker/flag_embedding.py +0 -0
  114. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagereranker/flag_embedding_llm.py +0 -0
  115. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagereranker/jina.py +0 -0
  116. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagereranker/koreranker.py +0 -0
  117. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagereranker/monot5.py +0 -0
  118. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagereranker/pass_reranker.py +0 -0
  119. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagereranker/rankgpt.py +0 -0
  120. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagereranker/run.py +0 -0
  121. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagereranker/sentence_transformer.py +0 -0
  122. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagereranker/tart/__init__.py +0 -0
  123. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagereranker/tart/modeling_enc_t5.py +0 -0
  124. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagereranker/tart/tart.py +0 -0
  125. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagereranker/tart/tokenization_enc_t5.py +0 -0
  126. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagereranker/time_reranker.py +0 -0
  127. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/passagereranker/upr.py +0 -0
  128. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/promptmaker/__init__.py +0 -0
  129. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/promptmaker/base.py +0 -0
  130. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/promptmaker/fstring.py +0 -0
  131. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/promptmaker/long_context_reorder.py +0 -0
  132. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/promptmaker/run.py +0 -0
  133. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/promptmaker/window_replacement.py +0 -0
  134. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/queryexpansion/__init__.py +0 -0
  135. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/queryexpansion/base.py +0 -0
  136. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/queryexpansion/hyde.py +0 -0
  137. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/queryexpansion/multi_query_expansion.py +0 -0
  138. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/queryexpansion/pass_query_expansion.py +0 -0
  139. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/queryexpansion/query_decompose.py +0 -0
  140. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/queryexpansion/run.py +0 -0
  141. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/retrieval/__init__.py +0 -0
  142. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/retrieval/hybrid_cc.py +0 -0
  143. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/retrieval/hybrid_rrf.py +0 -0
  144. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/retrieval/run.py +0 -0
  145. {autorag-0.2.12 → autorag-0.2.14}/autorag/nodes/retrieval/vectordb.py +0 -0
  146. {autorag-0.2.12 → autorag-0.2.14}/autorag/schema/__init__.py +0 -0
  147. {autorag-0.2.12 → autorag-0.2.14}/autorag/schema/module.py +0 -0
  148. {autorag-0.2.12 → autorag-0.2.14}/autorag/schema/node.py +0 -0
  149. {autorag-0.2.12 → autorag-0.2.14}/autorag/support.py +0 -0
  150. {autorag-0.2.12 → autorag-0.2.14}/autorag/utils/__init__.py +0 -0
  151. {autorag-0.2.12 → autorag-0.2.14}/autorag/utils/preprocess.py +0 -0
  152. {autorag-0.2.12 → autorag-0.2.14}/autorag/web.py +0 -0
  153. {autorag-0.2.12 → autorag-0.2.14}/docs/Makefile +0 -0
  154. {autorag-0.2.12 → autorag-0.2.14}/docs/make.bat +0 -0
  155. {autorag-0.2.12 → autorag-0.2.14}/docs/requirements.txt +0 -0
  156. {autorag-0.2.12 → autorag-0.2.14}/docs/source/CNAME +0 -0
  157. {autorag-0.2.12 → autorag-0.2.14}/docs/source/_static/data_creation.png +0 -0
  158. {autorag-0.2.12 → autorag-0.2.14}/docs/source/_static/data_folder.png +0 -0
  159. {autorag-0.2.12 → autorag-0.2.14}/docs/source/_static/dcg.png +0 -0
  160. {autorag-0.2.12 → autorag-0.2.14}/docs/source/_static/f1_score.png +0 -0
  161. {autorag-0.2.12 → autorag-0.2.14}/docs/source/_static/map.png +0 -0
  162. {autorag-0.2.12 → autorag-0.2.14}/docs/source/_static/mrr.png +0 -0
  163. {autorag-0.2.12 → autorag-0.2.14}/docs/source/_static/ndcg.png +0 -0
  164. {autorag-0.2.12 → autorag-0.2.14}/docs/source/_static/ndcg_formula.png +0 -0
  165. {autorag-0.2.12 → autorag-0.2.14}/docs/source/_static/node_folder.png +0 -0
  166. {autorag-0.2.12 → autorag-0.2.14}/docs/source/_static/node_line_folder.png +0 -0
  167. {autorag-0.2.12 → autorag-0.2.14}/docs/source/_static/node_line_summary.png +0 -0
  168. {autorag-0.2.12 → autorag-0.2.14}/docs/source/_static/node_lines.png +0 -0
  169. {autorag-0.2.12 → autorag-0.2.14}/docs/source/_static/node_summary.png +0 -0
  170. {autorag-0.2.12 → autorag-0.2.14}/docs/source/_static/normal_distribution.png +0 -0
  171. {autorag-0.2.12 → autorag-0.2.14}/docs/source/_static/project_folder_example.png +0 -0
  172. {autorag-0.2.12 → autorag-0.2.14}/docs/source/_static/project_folders.png +0 -0
  173. {autorag-0.2.12 → autorag-0.2.14}/docs/source/_static/resources_folder.png +0 -0
  174. {autorag-0.2.12 → autorag-0.2.14}/docs/source/_static/roadmap/RAG_paradigms.png +0 -0
  175. {autorag-0.2.12 → autorag-0.2.14}/docs/source/_static/roadmap/advanced_RAG.png +0 -0
  176. {autorag-0.2.12 → autorag-0.2.14}/docs/source/_static/roadmap/cycle.png +0 -0
  177. {autorag-0.2.12 → autorag-0.2.14}/docs/source/_static/roadmap/merger.png +0 -0
  178. {autorag-0.2.12 → autorag-0.2.14}/docs/source/_static/roadmap/node_line_modular.png +0 -0
  179. {autorag-0.2.12 → autorag-0.2.14}/docs/source/_static/roadmap/policy.png +0 -0
  180. {autorag-0.2.12 → autorag-0.2.14}/docs/source/_static/samsung_sundae.jpeg +0 -0
  181. {autorag-0.2.12 → autorag-0.2.14}/docs/source/_static/score_fusion.png +0 -0
  182. {autorag-0.2.12 → autorag-0.2.14}/docs/source/_static/trial_folder.png +0 -0
  183. {autorag-0.2.12 → autorag-0.2.14}/docs/source/_static/trial_json.png +0 -0
  184. {autorag-0.2.12 → autorag-0.2.14}/docs/source/_static/trial_summary.png +0 -0
  185. {autorag-0.2.12 → autorag-0.2.14}/docs/source/_static/web_interface.png +0 -0
  186. {autorag-0.2.12 → autorag-0.2.14}/docs/source/api_spec/autorag.data.corpus.rst +0 -0
  187. {autorag-0.2.12 → autorag-0.2.14}/docs/source/api_spec/autorag.data.qacreation.rst +0 -0
  188. {autorag-0.2.12 → autorag-0.2.14}/docs/source/api_spec/autorag.data.rst +0 -0
  189. {autorag-0.2.12 → autorag-0.2.14}/docs/source/api_spec/autorag.data.utils.rst +0 -0
  190. {autorag-0.2.12 → autorag-0.2.14}/docs/source/api_spec/autorag.evaluation.metric.rst +0 -0
  191. {autorag-0.2.12 → autorag-0.2.14}/docs/source/api_spec/autorag.evaluation.rst +0 -0
  192. {autorag-0.2.12 → autorag-0.2.14}/docs/source/api_spec/autorag.nodes.generator.rst +0 -0
  193. {autorag-0.2.12 → autorag-0.2.14}/docs/source/api_spec/autorag.nodes.passageaugmenter.rst +0 -0
  194. {autorag-0.2.12 → autorag-0.2.14}/docs/source/api_spec/autorag.nodes.passagecompressor.rst +0 -0
  195. {autorag-0.2.12 → autorag-0.2.14}/docs/source/api_spec/autorag.nodes.passagefilter.rst +0 -0
  196. {autorag-0.2.12 → autorag-0.2.14}/docs/source/api_spec/autorag.nodes.passagereranker.rst +0 -0
  197. {autorag-0.2.12 → autorag-0.2.14}/docs/source/api_spec/autorag.nodes.passagereranker.tart.rst +0 -0
  198. {autorag-0.2.12 → autorag-0.2.14}/docs/source/api_spec/autorag.nodes.promptmaker.rst +0 -0
  199. {autorag-0.2.12 → autorag-0.2.14}/docs/source/api_spec/autorag.nodes.queryexpansion.rst +0 -0
  200. {autorag-0.2.12 → autorag-0.2.14}/docs/source/api_spec/autorag.nodes.retrieval.rst +0 -0
  201. {autorag-0.2.12 → autorag-0.2.14}/docs/source/api_spec/autorag.nodes.rst +0 -0
  202. {autorag-0.2.12 → autorag-0.2.14}/docs/source/api_spec/autorag.schema.rst +0 -0
  203. {autorag-0.2.12 → autorag-0.2.14}/docs/source/api_spec/autorag.utils.rst +0 -0
  204. {autorag-0.2.12 → autorag-0.2.14}/docs/source/api_spec/modules.rst +0 -0
  205. {autorag-0.2.12 → autorag-0.2.14}/docs/source/conf.py +0 -0
  206. {autorag-0.2.12 → autorag-0.2.14}/docs/source/data_creation/ragas.md +0 -0
  207. {autorag-0.2.12 → autorag-0.2.14}/docs/source/deploy/api_endpoint.md +0 -0
  208. {autorag-0.2.12 → autorag-0.2.14}/docs/source/deploy/web.md +0 -0
  209. {autorag-0.2.12 → autorag-0.2.14}/docs/source/evaluate_metrics/generation.md +0 -0
  210. {autorag-0.2.12 → autorag-0.2.14}/docs/source/evaluate_metrics/retrieval.md +0 -0
  211. {autorag-0.2.12 → autorag-0.2.14}/docs/source/evaluate_metrics/retrieval_contents.md +0 -0
  212. {autorag-0.2.12 → autorag-0.2.14}/docs/source/index.rst +0 -0
  213. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/generator/generator.md +0 -0
  214. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/generator/openai_llm.md +0 -0
  215. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/generator/vllm.md +0 -0
  216. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/index.md +0 -0
  217. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/passage_augmenter/passage_augmenter.md +0 -0
  218. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/passage_augmenter/prev_next_augmenter.md +0 -0
  219. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/passage_compressor/longllmlingua.md +0 -0
  220. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/passage_compressor/passage_compressor.md +0 -0
  221. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/passage_compressor/refine.md +0 -0
  222. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/passage_compressor/tree_summarize.md +0 -0
  223. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/passage_filter/passage_filter.md +0 -0
  224. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/passage_filter/percentile_cutoff.md +0 -0
  225. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/passage_filter/recency_filter.md +0 -0
  226. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/passage_filter/similarity_percentile_cutoff.md +0 -0
  227. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/passage_filter/similarity_threshold_cutoff.md +0 -0
  228. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/passage_filter/threshold_cutoff.md +0 -0
  229. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/passage_reranker/cohere.md +0 -0
  230. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/passage_reranker/colbert.md +0 -0
  231. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/passage_reranker/flag_embedding_llm_reranker.md +0 -0
  232. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/passage_reranker/flag_embedding_reranker.md +0 -0
  233. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/passage_reranker/jina_reranker.md +0 -0
  234. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/passage_reranker/koreranker.md +0 -0
  235. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/passage_reranker/monot5.md +0 -0
  236. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/passage_reranker/passage_reranker.md +0 -0
  237. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/passage_reranker/rankgpt.md +0 -0
  238. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/passage_reranker/sentence_transformer_reranker.md +0 -0
  239. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/passage_reranker/tart.md +0 -0
  240. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/passage_reranker/time_reranker.md +0 -0
  241. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/passage_reranker/upr.md +0 -0
  242. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/prompt_maker/fstring.md +0 -0
  243. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/prompt_maker/long_context_reorder.md +0 -0
  244. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/prompt_maker/window_replacement.md +0 -0
  245. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/query_expansion/hyde.md +0 -0
  246. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/query_expansion/multi_query_expansion.md +0 -0
  247. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/query_expansion/query_decompose.md +0 -0
  248. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/query_expansion/query_expansion.md +0 -0
  249. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/retrieval/hybrid_cc.md +0 -0
  250. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/retrieval/hybrid_rrf.md +0 -0
  251. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/retrieval/retrieval.md +0 -0
  252. {autorag-0.2.12 → autorag-0.2.14}/docs/source/nodes/retrieval/vectordb.md +0 -0
  253. {autorag-0.2.12 → autorag-0.2.14}/docs/source/optimization/custom_config.md +0 -0
  254. {autorag-0.2.12 → autorag-0.2.14}/docs/source/optimization/folder_structure.md +0 -0
  255. {autorag-0.2.12 → autorag-0.2.14}/docs/source/optimization/strategies.md +0 -0
  256. {autorag-0.2.12 → autorag-0.2.14}/docs/source/roadmap/modular_rag.md +0 -0
  257. {autorag-0.2.12 → autorag-0.2.14}/docs/source/structure.md +0 -0
  258. {autorag-0.2.12 → autorag-0.2.14}/docs/source/troubleshooting.md +0 -0
  259. {autorag-0.2.12 → autorag-0.2.14}/sample_config/compact_local.yaml +0 -0
  260. {autorag-0.2.12 → autorag-0.2.14}/sample_config/compact_openai.yaml +0 -0
  261. {autorag-0.2.12 → autorag-0.2.14}/sample_config/extracted_sample.yaml +0 -0
  262. {autorag-0.2.12 → autorag-0.2.14}/sample_config/simple_local.yaml +0 -0
  263. {autorag-0.2.12 → autorag-0.2.14}/sample_config/simple_ollama.yaml +0 -0
  264. {autorag-0.2.12 → autorag-0.2.14}/sample_config/simple_openai.yaml +0 -0
  265. {autorag-0.2.12 → autorag-0.2.14}/sample_dataset/README.md +0 -0
  266. {autorag-0.2.12 → autorag-0.2.14}/sample_dataset/eli5/load_eli5_dataset.py +0 -0
  267. {autorag-0.2.12 → autorag-0.2.14}/sample_dataset/hotpotqa/load_hotpotqa_dataset.py +0 -0
  268. {autorag-0.2.12 → autorag-0.2.14}/sample_dataset/msmarco/load_msmarco_dataset.py +0 -0
  269. {autorag-0.2.12 → autorag-0.2.14}/sample_dataset/triviaqa/load_triviaqa_dataset.py +0 -0
  270. {autorag-0.2.12 → autorag-0.2.14}/setup.cfg +0 -0
  271. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/data/corpus/test_base.py +0 -0
  272. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/data/corpus/test_langchain.py +0 -0
  273. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/data/corpus/test_llama_index_corpus.py +0 -0
  274. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/data/qacreation/test_ragas_qa_creation.py +0 -0
  275. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/data/qacreation/test_simple.py +0 -0
  276. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/evaluate/metric/test_generation_metric.py +0 -0
  277. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/evaluate/metric/test_retrieval_contents_metric.py +0 -0
  278. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/evaluate/metric/test_retrieval_metric.py +0 -0
  279. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/evaluate/test_evaluate_util.py +0 -0
  280. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/evaluate/test_generation_evaluate.py +0 -0
  281. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/evaluate/test_retrieval_contents_evaluate.py +0 -0
  282. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/evaluate/test_retrieval_evaluate.py +0 -0
  283. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/generator/test_generator_base.py +0 -0
  284. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/generator/test_llama_index_llm.py +0 -0
  285. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/generator/test_openai.py +0 -0
  286. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/generator/test_run_generator_node.py +0 -0
  287. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/generator/test_vllm.py +0 -0
  288. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passageaugmenter/test_base_passage_augmenter.py +0 -0
  289. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passageaugmenter/test_pass_passage_augmenter.py +0 -0
  290. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passageaugmenter/test_prev_next_augmenter.py +0 -0
  291. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passageaugmenter/test_run_passage_augmenter.py +0 -0
  292. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passagecompressor/test_base_passage_compressor.py +0 -0
  293. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passagecompressor/test_longllmlingua.py +0 -0
  294. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passagecompressor/test_pass_compressor.py +0 -0
  295. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passagecompressor/test_refine.py +0 -0
  296. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passagecompressor/test_run_passage_compressor_node.py +0 -0
  297. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passagecompressor/test_tree_summarize.py +0 -0
  298. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passagefilter/test_pass_passage_filter.py +0 -0
  299. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passagefilter/test_passage_filter_base.py +0 -0
  300. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passagefilter/test_passage_filter_run.py +0 -0
  301. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passagefilter/test_percentile_cutoff.py +0 -0
  302. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passagefilter/test_recency_filter.py +0 -0
  303. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passagefilter/test_similarity_percentile_cutoff.py +0 -0
  304. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passagefilter/test_similarity_threshold_cutoff.py +0 -0
  305. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passagefilter/test_threshold_cutoff.py +0 -0
  306. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passagereranker/test_cohere_reranker.py +0 -0
  307. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passagereranker/test_colbert_reranker.py +0 -0
  308. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passagereranker/test_flag_embedding.py +0 -0
  309. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passagereranker/test_flag_embedding_llm.py +0 -0
  310. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passagereranker/test_jina_reranker.py +0 -0
  311. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passagereranker/test_koreranker.py +0 -0
  312. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passagereranker/test_monot5.py +0 -0
  313. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passagereranker/test_pass_reranker.py +0 -0
  314. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passagereranker/test_passage_reranker_base.py +0 -0
  315. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passagereranker/test_passage_reranker_run.py +0 -0
  316. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passagereranker/test_rankgpt.py +0 -0
  317. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passagereranker/test_sentence_transformer.py +0 -0
  318. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passagereranker/test_tart.py +0 -0
  319. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passagereranker/test_time_reranker.py +0 -0
  320. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/passagereranker/test_upr.py +0 -0
  321. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/promptmaker/test_fstring.py +0 -0
  322. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/promptmaker/test_long_context_reorder.py +0 -0
  323. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/promptmaker/test_prompt_maker_base.py +0 -0
  324. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/promptmaker/test_prompt_maker_run.py +0 -0
  325. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/promptmaker/test_window_replacement.py +0 -0
  326. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/queryexpansion/test_hyde.py +0 -0
  327. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/queryexpansion/test_multi_query_expansion.py +0 -0
  328. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/queryexpansion/test_pass_query_expansion.py +0 -0
  329. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/queryexpansion/test_query_decompose.py +0 -0
  330. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/queryexpansion/test_query_expansion_base.py +0 -0
  331. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/queryexpansion/test_query_expansion_run.py +0 -0
  332. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/retrieval/test_hybrid_base.py +0 -0
  333. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/retrieval/test_hybrid_cc.py +0 -0
  334. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/retrieval/test_hybrid_rrf.py +0 -0
  335. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/retrieval/test_retrieval_base.py +0 -0
  336. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/retrieval/test_run_retrieval_node.py +0 -0
  337. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/nodes/retrieval/test_vectordb.py +0 -0
  338. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/schema/test_module_schema.py +0 -0
  339. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/schema/test_node_schema.py +0 -0
  340. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/test_dashboard.py +0 -0
  341. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/test_evaluator.py +0 -0
  342. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/test_strategy.py +0 -0
  343. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/test_support.py +0 -0
  344. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/test_web.py +0 -0
  345. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/utils/test_preprocess.py +0 -0
  346. {autorag-0.2.12 → autorag-0.2.14}/tests/autorag/utils/test_util.py +0 -0
  347. {autorag-0.2.12 → autorag-0.2.14}/tests/conftest.py +0 -0
  348. {autorag-0.2.12 → autorag-0.2.14}/tests/delete_tests.py +0 -0
  349. {autorag-0.2.12 → autorag-0.2.14}/tests/mock.py +0 -0
  350. {autorag-0.2.12 → autorag-0.2.14}/tests/requirements.txt +0 -0
  351. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/README.md +0 -0
  352. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/corpus_data_sample.parquet +0 -0
  353. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/data_creation/raw_dir/sample1.txt +0 -0
  354. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/data_creation/raw_dir/sample2.txt +0 -0
  355. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/data_creation/raw_dir/sample3.txt +0 -0
  356. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/full.yaml +0 -0
  357. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/qa_data_sample.parquet +0 -0
  358. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/qa_gen_prompts/prompt1.txt +0 -0
  359. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/qa_gen_prompts/prompt2.txt +0 -0
  360. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/qa_gen_prompts/prompt3.txt +0 -0
  361. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/qa_test_data_sample.parquet +0 -0
  362. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/config.yaml +0 -0
  363. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/post_retrieve_node_line/generator/0.parquet +0 -0
  364. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/post_retrieve_node_line/generator/1.parquet +0 -0
  365. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/post_retrieve_node_line/generator/2.parquet +0 -0
  366. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/post_retrieve_node_line/generator/3.parquet +0 -0
  367. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/post_retrieve_node_line/generator/4.parquet +0 -0
  368. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/post_retrieve_node_line/generator/5.parquet +0 -0
  369. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/post_retrieve_node_line/generator/best_5.parquet +0 -0
  370. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/post_retrieve_node_line/generator/summary.csv +0 -0
  371. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/post_retrieve_node_line/prompt_maker/0.parquet +0 -0
  372. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/post_retrieve_node_line/prompt_maker/1.parquet +0 -0
  373. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/post_retrieve_node_line/prompt_maker/best_0.parquet +0 -0
  374. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/post_retrieve_node_line/prompt_maker/summary.csv +0 -0
  375. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/post_retrieve_node_line/summary.csv +0 -0
  376. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/0.parquet +0 -0
  377. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/1.parquet +0 -0
  378. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/2.parquet +0 -0
  379. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/best_0.parquet +0 -0
  380. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/summary.csv +0 -0
  381. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/pre_retrieve_node_line/summary.csv +0 -0
  382. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/retrieve_node_line/passage_compressor/0.parquet +0 -0
  383. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/retrieve_node_line/passage_compressor/best_0.parquet +0 -0
  384. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/retrieve_node_line/passage_compressor/summary.csv +0 -0
  385. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/retrieve_node_line/passage_reranker/0.parquet +0 -0
  386. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/retrieve_node_line/passage_reranker/1.parquet +0 -0
  387. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/retrieve_node_line/passage_reranker/best_0.parquet +0 -0
  388. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/retrieve_node_line/passage_reranker/summary.csv +0 -0
  389. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/retrieve_node_line/retrieval/0.parquet +0 -0
  390. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/retrieve_node_line/retrieval/1.parquet +0 -0
  391. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/retrieve_node_line/retrieval/best_0.parquet +0 -0
  392. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/retrieve_node_line/retrieval/summary.csv +0 -0
  393. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/retrieve_node_line/summary.csv +0 -0
  394. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/0/summary.csv +0 -0
  395. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/1/config.yaml +0 -0
  396. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/0.parquet +0 -0
  397. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/1.parquet +0 -0
  398. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/2.parquet +0 -0
  399. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/best_0.parquet +0 -0
  400. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/summary.csv +0 -0
  401. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/1/pre_retrieve_node_line/summary.csv +0 -0
  402. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/1/retrieve_node_line/passage_filter/0.parquet +0 -0
  403. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/1/retrieve_node_line/passage_reranker/0.parquet +0 -0
  404. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/1/retrieve_node_line/passage_reranker/1.parquet +0 -0
  405. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/1/retrieve_node_line/passage_reranker/best_0.parquet +0 -0
  406. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/1/retrieve_node_line/passage_reranker/summary.csv +0 -0
  407. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/1/retrieve_node_line/retrieval/0.parquet +0 -0
  408. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/1/retrieve_node_line/retrieval/1.parquet +0 -0
  409. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/1/retrieve_node_line/retrieval/best_0.parquet +0 -0
  410. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/1/retrieve_node_line/retrieval/summary.csv +0 -0
  411. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/2/config.yaml +0 -0
  412. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/2/post_retrieve_node_line/prompt_maker/0.parquet +0 -0
  413. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/0.parquet +0 -0
  414. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/1.parquet +0 -0
  415. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/2.parquet +0 -0
  416. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/best_0.parquet +0 -0
  417. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/summary.csv +0 -0
  418. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/2/pre_retrieve_node_line/summary.csv +0 -0
  419. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/2/retrieve_node_line/passage_compressor/0.parquet +0 -0
  420. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/2/retrieve_node_line/passage_compressor/best_0.parquet +0 -0
  421. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/2/retrieve_node_line/passage_compressor/summary.csv +0 -0
  422. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/2/retrieve_node_line/passage_reranker/0.parquet +0 -0
  423. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/2/retrieve_node_line/passage_reranker/1.parquet +0 -0
  424. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/2/retrieve_node_line/passage_reranker/best_0.parquet +0 -0
  425. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/2/retrieve_node_line/passage_reranker/summary.csv +0 -0
  426. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/2/retrieve_node_line/retrieval/0.parquet +0 -0
  427. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/2/retrieve_node_line/retrieval/1.parquet +0 -0
  428. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/2/retrieve_node_line/retrieval/best_0.parquet +0 -0
  429. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/2/retrieve_node_line/retrieval/summary.csv +0 -0
  430. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/2/retrieve_node_line/summary.csv +0 -0
  431. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/3/config.yaml +0 -0
  432. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/best.yaml +0 -0
  433. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/data/corpus.parquet +0 -0
  434. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/data/qa.parquet +0 -0
  435. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/resources/bm25_porter_stemmer.pkl +0 -0
  436. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/resources/chroma/6595d304-5270-4d9f-a267-c191366804ce/data_level0.bin +0 -0
  437. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/resources/chroma/6595d304-5270-4d9f-a267-c191366804ce/header.bin +0 -0
  438. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/resources/chroma/6595d304-5270-4d9f-a267-c191366804ce/length.bin +0 -0
  439. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/resources/chroma/6595d304-5270-4d9f-a267-c191366804ce/link_lists.bin +0 -0
  440. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/resources/chroma/chroma.sqlite3 +0 -0
  441. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/result_project/trial.json +0 -0
  442. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/sample_contents_nqa.csv +0 -0
  443. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/sample_project/data/corpus.parquet +0 -0
  444. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/sample_project/data/qa.parquet +0 -0
  445. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/sample_project/resources/bm25_gpt2.pkl +0 -0
  446. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/sample_project/resources/bm25_porter_stemmer.pkl +0 -0
  447. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/simple.yaml +0 -0
  448. {autorag-0.2.12 → autorag-0.2.14}/tests/resources/test_bm25_retrieval.pkl +0 -0
@@ -0,0 +1,35 @@
1
+ ---
2
+ name: Bug report
3
+ about: Create a report to help us improve
4
+ title: "[BUG] "
5
+ labels: bug
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Describe the bug**
11
+ A clear and concise description of what the bug is.
12
+
13
+ **To Reproduce**
14
+ Steps to reproduce the behavior:
15
+ 1. Go to '...'
16
+ 2. Click on '....'
17
+ 3. Scroll down to '....'
18
+ 4. See error
19
+
20
+ **Expected behavior**
21
+ A clear and concise description of what you expected to happen.
22
+
23
+ **Full Error log**
24
+ If applicable, add full error log to help explain your problem.
25
+
26
+ **Code that bug is happened**
27
+ If applicable, add the code that bug is happened.
28
+ (Especially, your AutoRAG YAML file or python codes that you wrote)
29
+
30
+ **Desktop (please complete the following information):**
31
+ - OS: [e.g. Windows, Linux, MacOS]
32
+ - Python version [e.g. 3.10]
33
+
34
+ **Additional context**
35
+ Add any other context about the problem here.
@@ -0,0 +1,20 @@
1
+ ---
2
+ name: Feature request
3
+ about: Suggest an idea for this project
4
+ title: "[Feature Request]"
5
+ labels: enhancement
6
+ assignees: ''
7
+
8
+ ---
9
+
10
+ **Is your feature request related to a problem? Please describe.**
11
+ A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
12
+
13
+ **Describe the solution you'd like**
14
+ A clear and concise description of what you want to happen.
15
+
16
+ **Describe alternatives you've considered**
17
+ A clear and concise description of any alternative solutions or features you've considered.
18
+
19
+ **Additional context**
20
+ Add any other context or screenshots about the feature request here.
@@ -16,6 +16,10 @@ jobs:
16
16
  runs-on: ubuntu-latest
17
17
  steps:
18
18
  - uses: actions/checkout@v4
19
+ - uses: actions/setup-java@v4
20
+ with:
21
+ distribution: 'zulu'
22
+ java-version: '17'
19
23
  - name: Upgrade pip
20
24
  run: |
21
25
  python3 -m pip install --upgrade pip
@@ -24,7 +28,7 @@ jobs:
24
28
  sudo apt-get install gcc
25
29
  - name: Install AutoRAG
26
30
  run: |
27
- pip install -e .
31
+ pip install -e '.[all]'
28
32
  - name: Install dependencies
29
33
  run: |
30
34
  pip install -r tests/requirements.txt
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: AutoRAG
3
- Version: 0.2.12
3
+ Version: 0.2.14
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
@@ -221,13 +221,12 @@ Requires-Python: >=3.8
221
221
  Description-Content-Type: text/markdown
222
222
  License-File: LICENSE
223
223
  Requires-Dist: numpy<2.0.0
224
- Requires-Dist: pandas
224
+ Requires-Dist: pandas>=2.1.0
225
225
  Requires-Dist: tqdm
226
226
  Requires-Dist: tiktoken>=0.7.0
227
227
  Requires-Dist: openai>=1.0.0
228
228
  Requires-Dist: rank_bm25
229
229
  Requires-Dist: transformers
230
- Requires-Dist: swifter
231
230
  Requires-Dist: pyyaml
232
231
  Requires-Dist: pyarrow
233
232
  Requires-Dist: fastparquet
@@ -242,15 +241,15 @@ Requires-Dist: uvicorn
242
241
  Requires-Dist: torch
243
242
  Requires-Dist: sentencepiece
244
243
  Requires-Dist: guidance
245
- Requires-Dist: cohere<=5.6.2
244
+ Requires-Dist: cohere>=5.8.0
246
245
  Requires-Dist: tokenlog>=0.0.2
247
246
  Requires-Dist: aiohttp
248
247
  Requires-Dist: bert_score
249
248
  Requires-Dist: sentence-transformers
250
249
  Requires-Dist: FlagEmbedding
251
250
  Requires-Dist: ragas
252
- Requires-Dist: kiwipiepy
253
251
  Requires-Dist: llmlingua
252
+ Requires-Dist: peft
254
253
  Requires-Dist: llama-index>=0.10.1
255
254
  Requires-Dist: llama-index-core>=0.10.1
256
255
  Requires-Dist: llama-index-readers-file
@@ -268,6 +267,11 @@ Requires-Dist: seaborn
268
267
  Requires-Dist: ipykernel
269
268
  Requires-Dist: ipywidgets
270
269
  Requires-Dist: ipywidgets_bokeh
270
+ Provides-Extra: ko
271
+ Requires-Dist: kiwipiepy; extra == "ko"
272
+ Requires-Dist: konlpy; extra == "ko"
273
+ Provides-Extra: all
274
+ Requires-Dist: AutoRAG[ko]; extra == "all"
271
275
 
272
276
  # AutoRAG
273
277
 
@@ -282,7 +286,6 @@ Plus, join our 📞 [Discord](https://discord.gg/P4DYXfmSAs) Community.
282
286
  ### 💪 Colab Tutorial
283
287
 
284
288
  - [Step 1: Basic of AutoRAG | Optimizing your RAG pipeline](https://colab.research.google.com/drive/19OEQXO_pHN6gnn2WdfPd4hjnS-4GurVd?usp=sharing)
285
- - [Step 2: Create evaluation dataset](https://colab.research.google.com/drive/1HXjVHCLTaX7mkmZp3IKlEPt0B3jVeHvP#scrollTo=cgFUCuaUZvTr)
286
289
 
287
290
  ---
288
291
 
@@ -330,7 +333,7 @@ Try now and find the best RAG pipeline for your own use-case.
330
333
 
331
334
  ## ❗Supporting Nodes & modules
332
335
 
333
- ![module_1](https://github.com/Marker-Inc-Korea/AutoRAG/assets/96727832/828d8752-13f2-4918-8ca4-2605a86596cb)
336
+ ![module_1](https://github.com/user-attachments/assets/d49cc7b4-56a6-4b5f-bb3d-2fc5b962996b)
334
337
  ![module_2](https://github.com/Marker-Inc-Korea/AutoRAG/assets/96727832/4db3d83f-3178-4b81-bad1-b751dcd31a13)
335
338
  You can check our all supporting Nodes & modules
336
339
  at [here](https://edai.notion.site/Supporting-Nodes-modules-0ebc7810649f4e41aead472a92976be4?pvs=4)
@@ -7,6 +7,8 @@ pyproject.toml
7
7
  requirements.txt
8
8
  .github/FUNDING.yml
9
9
  .github/dependabot.yml
10
+ .github/ISSUE_TEMPLATE/bug_report.md
11
+ .github/ISSUE_TEMPLATE/feature_request.md
10
12
  .github/workflows/publish.yml
11
13
  .github/workflows/sphinx.yml
12
14
  .github/workflows/test.yml
@@ -25,6 +27,7 @@ autorag/evaluator.py
25
27
  autorag/node_line.py
26
28
  autorag/strategy.py
27
29
  autorag/support.py
30
+ autorag/validator.py
28
31
  autorag/web.py
29
32
  autorag/data/__init__.py
30
33
  autorag/data/corpus/__init__.py
@@ -264,6 +267,7 @@ tests/autorag/test_deploy.py
264
267
  tests/autorag/test_evaluator.py
265
268
  tests/autorag/test_strategy.py
266
269
  tests/autorag/test_support.py
270
+ tests/autorag/test_validator.py
267
271
  tests/autorag/test_web.py
268
272
  tests/autorag/data/corpus/test_base.py
269
273
  tests/autorag/data/corpus/test_langchain.py
@@ -1,11 +1,10 @@
1
1
  numpy<2.0.0
2
- pandas
2
+ pandas>=2.1.0
3
3
  tqdm
4
4
  tiktoken>=0.7.0
5
5
  openai>=1.0.0
6
6
  rank_bm25
7
7
  transformers
8
- swifter
9
8
  pyyaml
10
9
  pyarrow
11
10
  fastparquet
@@ -20,15 +19,15 @@ uvicorn
20
19
  torch
21
20
  sentencepiece
22
21
  guidance
23
- cohere<=5.6.2
22
+ cohere>=5.8.0
24
23
  tokenlog>=0.0.2
25
24
  aiohttp
26
25
  bert_score
27
26
  sentence-transformers
28
27
  FlagEmbedding
29
28
  ragas
30
- kiwipiepy
31
29
  llmlingua
30
+ peft
32
31
  llama-index>=0.10.1
33
32
  llama-index-core>=0.10.1
34
33
  llama-index-readers-file
@@ -46,3 +45,10 @@ seaborn
46
45
  ipykernel
47
46
  ipywidgets
48
47
  ipywidgets_bokeh
48
+
49
+ [all]
50
+ AutoRAG[ko]
51
+
52
+ [ko]
53
+ kiwipiepy
54
+ konlpy
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: AutoRAG
3
- Version: 0.2.12
3
+ Version: 0.2.14
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
@@ -221,13 +221,12 @@ Requires-Python: >=3.8
221
221
  Description-Content-Type: text/markdown
222
222
  License-File: LICENSE
223
223
  Requires-Dist: numpy<2.0.0
224
- Requires-Dist: pandas
224
+ Requires-Dist: pandas>=2.1.0
225
225
  Requires-Dist: tqdm
226
226
  Requires-Dist: tiktoken>=0.7.0
227
227
  Requires-Dist: openai>=1.0.0
228
228
  Requires-Dist: rank_bm25
229
229
  Requires-Dist: transformers
230
- Requires-Dist: swifter
231
230
  Requires-Dist: pyyaml
232
231
  Requires-Dist: pyarrow
233
232
  Requires-Dist: fastparquet
@@ -242,15 +241,15 @@ Requires-Dist: uvicorn
242
241
  Requires-Dist: torch
243
242
  Requires-Dist: sentencepiece
244
243
  Requires-Dist: guidance
245
- Requires-Dist: cohere<=5.6.2
244
+ Requires-Dist: cohere>=5.8.0
246
245
  Requires-Dist: tokenlog>=0.0.2
247
246
  Requires-Dist: aiohttp
248
247
  Requires-Dist: bert_score
249
248
  Requires-Dist: sentence-transformers
250
249
  Requires-Dist: FlagEmbedding
251
250
  Requires-Dist: ragas
252
- Requires-Dist: kiwipiepy
253
251
  Requires-Dist: llmlingua
252
+ Requires-Dist: peft
254
253
  Requires-Dist: llama-index>=0.10.1
255
254
  Requires-Dist: llama-index-core>=0.10.1
256
255
  Requires-Dist: llama-index-readers-file
@@ -268,6 +267,11 @@ Requires-Dist: seaborn
268
267
  Requires-Dist: ipykernel
269
268
  Requires-Dist: ipywidgets
270
269
  Requires-Dist: ipywidgets_bokeh
270
+ Provides-Extra: ko
271
+ Requires-Dist: kiwipiepy; extra == "ko"
272
+ Requires-Dist: konlpy; extra == "ko"
273
+ Provides-Extra: all
274
+ Requires-Dist: AutoRAG[ko]; extra == "all"
271
275
 
272
276
  # AutoRAG
273
277
 
@@ -282,7 +286,6 @@ Plus, join our 📞 [Discord](https://discord.gg/P4DYXfmSAs) Community.
282
286
  ### 💪 Colab Tutorial
283
287
 
284
288
  - [Step 1: Basic of AutoRAG | Optimizing your RAG pipeline](https://colab.research.google.com/drive/19OEQXO_pHN6gnn2WdfPd4hjnS-4GurVd?usp=sharing)
285
- - [Step 2: Create evaluation dataset](https://colab.research.google.com/drive/1HXjVHCLTaX7mkmZp3IKlEPt0B3jVeHvP#scrollTo=cgFUCuaUZvTr)
286
289
 
287
290
  ---
288
291
 
@@ -330,7 +333,7 @@ Try now and find the best RAG pipeline for your own use-case.
330
333
 
331
334
  ## ❗Supporting Nodes & modules
332
335
 
333
- ![module_1](https://github.com/Marker-Inc-Korea/AutoRAG/assets/96727832/828d8752-13f2-4918-8ca4-2605a86596cb)
336
+ ![module_1](https://github.com/user-attachments/assets/d49cc7b4-56a6-4b5f-bb3d-2fc5b962996b)
334
337
  ![module_2](https://github.com/Marker-Inc-Korea/AutoRAG/assets/96727832/4db3d83f-3178-4b81-bad1-b751dcd31a13)
335
338
  You can check our all supporting Nodes & modules
336
339
  at [here](https://edai.notion.site/Supporting-Nodes-modules-0ebc7810649f4e41aead472a92976be4?pvs=4)
@@ -11,7 +11,6 @@ Plus, join our 📞 [Discord](https://discord.gg/P4DYXfmSAs) Community.
11
11
  ### 💪 Colab Tutorial
12
12
 
13
13
  - [Step 1: Basic of AutoRAG | Optimizing your RAG pipeline](https://colab.research.google.com/drive/19OEQXO_pHN6gnn2WdfPd4hjnS-4GurVd?usp=sharing)
14
- - [Step 2: Create evaluation dataset](https://colab.research.google.com/drive/1HXjVHCLTaX7mkmZp3IKlEPt0B3jVeHvP#scrollTo=cgFUCuaUZvTr)
15
14
 
16
15
  ---
17
16
 
@@ -59,7 +58,7 @@ Try now and find the best RAG pipeline for your own use-case.
59
58
 
60
59
  ## ❗Supporting Nodes & modules
61
60
 
62
- ![module_1](https://github.com/Marker-Inc-Korea/AutoRAG/assets/96727832/828d8752-13f2-4918-8ca4-2605a86596cb)
61
+ ![module_1](https://github.com/user-attachments/assets/d49cc7b4-56a6-4b5f-bb3d-2fc5b962996b)
63
62
  ![module_2](https://github.com/Marker-Inc-Korea/AutoRAG/assets/96727832/4db3d83f-3178-4b81-bad1-b751dcd31a13)
64
63
  You can check our all supporting Nodes & modules
65
64
  at [here](https://edai.notion.site/Supporting-Nodes-modules-0ebc7810649f4e41aead472a92976be4?pvs=4)
@@ -0,0 +1 @@
1
+ 0.2.14
@@ -9,19 +9,16 @@ from llama_index.embeddings.huggingface import HuggingFaceEmbedding
9
9
  from llama_index.embeddings.openai import OpenAIEmbedding
10
10
  from llama_index.embeddings.openai import OpenAIEmbeddingModelType
11
11
  from llama_index.llms.huggingface import HuggingFaceLLM
12
- from llama_index.llms.openai import OpenAI
13
12
  from llama_index.llms.ollama import Ollama
13
+ from llama_index.llms.openai import OpenAI
14
14
  from llama_index.llms.openai_like import OpenAILike
15
15
  from rich.logging import RichHandler
16
- from swifter import set_defaults
17
16
 
18
17
  version_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), 'VERSION')
19
18
 
20
19
  with open(version_path, 'r') as f:
21
20
  __version__ = f.read().strip()
22
21
 
23
- set_defaults(allow_dask_on_strings=True)
24
-
25
22
 
26
23
  class LazyInit:
27
24
  def __init__(self, factory, *args, **kwargs):
@@ -50,7 +47,8 @@ embedding_models = {
50
47
  'huggingface_cointegrated_rubert_tiny2': LazyInit(HuggingFaceEmbedding, model_name="cointegrated/rubert-tiny2"),
51
48
  'huggingface_all_mpnet_base_v2': LazyInit(HuggingFaceEmbedding,
52
49
  model_name="sentence-transformers/all-mpnet-base-v2",
53
- max_length=512, )
50
+ max_length=512, ),
51
+ 'huggingface_bge_m3': LazyInit(HuggingFaceEmbedding, model_name="BAAI/bge-m3"),
54
52
  }
55
53
 
56
54
  generator_models = {
@@ -12,6 +12,7 @@ from autorag import dashboard
12
12
  from autorag.deploy import Runner
13
13
  from autorag.deploy import extract_best_config as original_extract_best_config
14
14
  from autorag.evaluator import Evaluator
15
+ from autorag.validator import Validator
15
16
 
16
17
  logger = logging.getLogger("AutoRAG")
17
18
 
@@ -33,7 +34,6 @@ def evaluate(config, qa_data_path, corpus_data_path, project_dir):
33
34
  raise ValueError(f"Config file {config} does not exist.")
34
35
  evaluator = Evaluator(qa_data_path, corpus_data_path, project_dir=project_dir)
35
36
  evaluator.start_trial(config)
36
- logger.info('Evaluation complete.')
37
37
 
38
38
 
39
39
  @click.command()
@@ -95,7 +95,19 @@ def restart_evaluate(trial_path):
95
95
  corpus_data_path = os.path.join(project_dir, 'data', 'corpus.parquet')
96
96
  evaluator = Evaluator(qa_data_path, corpus_data_path, project_dir)
97
97
  evaluator.restart_trial(trial_path)
98
- logger.info('Evaluation complete.')
98
+
99
+
100
+ @click.command()
101
+ @click.option('--config', '-c', help='Path to config yaml file. Must be yaml or yml file.', type=str)
102
+ @click.option('--qa_data_path', help='Path to QA dataset. Must be parquet file.', type=str)
103
+ @click.option('--corpus_data_path', help='Path to corpus dataset. Must be parquet file.', type=str)
104
+ def validate(config, qa_data_path, corpus_data_path):
105
+ if not config.endswith('.yaml') and not config.endswith('.yml'):
106
+ raise ValueError(f"Config file {config} is not a parquet file.")
107
+ if not os.path.exists(config):
108
+ raise ValueError(f"Config file {config} does not exist.")
109
+ validator = Validator(qa_data_path=qa_data_path, corpus_data_path=corpus_data_path)
110
+ validator.validate(config)
99
111
 
100
112
 
101
113
  cli.add_command(evaluate, 'evaluate')
@@ -104,6 +116,7 @@ cli.add_command(run_web, 'run_web')
104
116
  cli.add_command(run_dashboard, 'dashboard')
105
117
  cli.add_command(extract_best_config, 'extract_best_config')
106
118
  cli.add_command(restart_evaluate, 'restart_evaluate')
119
+ cli.add_command(validate, 'validate')
107
120
 
108
121
  if __name__ == '__main__':
109
122
  cli()
@@ -0,0 +1,2 @@
1
+ from .base import make_single_content_qa, make_qa_with_existing_queries
2
+ from .llama_index import generate_qa_llama_index, generate_answers, generate_qa_llama_index_by_ratio
@@ -0,0 +1,168 @@
1
+ import logging
2
+ import uuid
3
+ from typing import Callable, Optional, List
4
+
5
+ import chromadb
6
+ import pandas as pd
7
+ from tqdm import tqdm
8
+
9
+ import autorag
10
+ from autorag.nodes.retrieval.vectordb import vectordb_ingest, vectordb
11
+ from autorag.utils.util import save_parquet_safe, fetch_contents
12
+
13
+ logger = logging.getLogger("AutoRAG")
14
+
15
+
16
+ def make_single_content_qa(corpus_df: pd.DataFrame,
17
+ content_size: int,
18
+ qa_creation_func: Callable,
19
+ output_filepath: Optional[str] = None,
20
+ upsert: bool = False,
21
+ random_state: int = 42,
22
+ cache_batch: int = 32,
23
+ **kwargs) -> pd.DataFrame:
24
+ """
25
+ Make single content (single-hop, single-document) QA dataset using given qa_creation_func.
26
+ It generates a single content QA dataset, which means its retrieval ground truth will be only one.
27
+ It is the most basic form of QA dataset.
28
+
29
+ :param corpus_df: The corpus dataframe to make QA dataset from.
30
+ :param content_size: This function will generate QA dataset for the given number of contents.
31
+ :param qa_creation_func: The function to create QA pairs.
32
+ You can use like `generate_qa_llama_index` or `generate_qa_llama_index_by_ratio`.
33
+ The input func must have `contents` parameter for the list of content string.
34
+ :param output_filepath: Optional filepath to save the parquet file.
35
+ If None, the function will return the processed_data as pd.DataFrame, but do not save as parquet.
36
+ File directory must exist. File extension must be .parquet
37
+ :param upsert: If true, the function will overwrite the existing file if it exists.
38
+ Default is False.
39
+ :param random_state: The random state for sampling corpus from the given corpus_df.
40
+ :param cache_batch: The number of batches to use for caching the generated QA dataset.
41
+ When the cache_batch size data is generated, the dataset will save to the designated output_filepath.
42
+ If the cache_batch size is too small, the process time will be longer.
43
+ :param kwargs: The keyword arguments for qa_creation_func.
44
+ :return: QA dataset dataframe.
45
+ You can save this as parquet file to use at AutoRAG.
46
+ """
47
+ assert content_size > 0, "content_size must be greater than 0."
48
+ if content_size > len(corpus_df):
49
+ logger.warning(f"content_size {content_size} is larger than the corpus size {len(corpus_df)}. "
50
+ "Setting content_size to the corpus size.")
51
+ content_size = len(corpus_df)
52
+ sampled_corpus = corpus_df.sample(n=content_size, random_state=random_state)
53
+ sampled_corpus = sampled_corpus.reset_index(drop=True)
54
+
55
+ def make_query_generation_gt(row):
56
+ return row['qa']['query'], row['qa']['generation_gt']
57
+
58
+ qa_data = pd.DataFrame()
59
+ for idx, i in tqdm(enumerate(range(0, len(sampled_corpus), cache_batch))):
60
+ qa = qa_creation_func(contents=sampled_corpus['contents'].tolist()[i:i + cache_batch], **kwargs)
61
+
62
+ temp_qa_data = pd.DataFrame({
63
+ 'qa': qa,
64
+ 'retrieval_gt': sampled_corpus['doc_id'].tolist()[i:i + cache_batch],
65
+ })
66
+ temp_qa_data = temp_qa_data.explode('qa', ignore_index=True)
67
+ temp_qa_data['qid'] = [str(uuid.uuid4()) for _ in range(len(temp_qa_data))]
68
+ temp_qa_data[['query', 'generation_gt']] = temp_qa_data.apply(make_query_generation_gt, axis=1,
69
+ result_type='expand')
70
+ temp_qa_data = temp_qa_data.drop(columns=['qa'])
71
+
72
+ temp_qa_data['retrieval_gt'] = temp_qa_data['retrieval_gt'].apply(lambda x: [[x]])
73
+ temp_qa_data['generation_gt'] = temp_qa_data['generation_gt'].apply(lambda x: [x])
74
+
75
+ if idx == 0:
76
+ qa_data = temp_qa_data
77
+ else:
78
+ qa_data = pd.concat([qa_data, temp_qa_data], ignore_index=True)
79
+ if output_filepath is not None:
80
+ save_parquet_safe(qa_data, output_filepath, upsert=upsert)
81
+
82
+ return qa_data
83
+
84
+
85
+ def make_qa_with_existing_queries(
86
+ corpus_df: pd.DataFrame,
87
+ existing_query_df: pd.DataFrame,
88
+ content_size: int,
89
+ answer_creation_func: Callable,
90
+ output_filepath: Optional[str] = None,
91
+ embedding_model: str = 'openai_embed_3_large',
92
+ collection: Optional[chromadb.Collection] = None,
93
+ upsert: bool = False,
94
+ random_state: int = 42,
95
+ cache_batch: int = 32,
96
+ top_k: int = 3,
97
+ **kwargs
98
+ ) -> pd.DataFrame:
99
+ """
100
+ Make single-hop QA dataset using given qa_creation_func and existing queries.
101
+
102
+ :param corpus_df: The corpus dataframe to make QA dataset from.
103
+ :param existing_query_df: Dataframe containing existing queries to use for QA pair creation.
104
+ :param content_size: This function will generate QA dataset for the given number of contents.
105
+ :param answer_creation_func: The function to create answer with input query.
106
+ :param output_filepath: Optional filepath to save the parquet file.
107
+ :param embedding_model: The embedding model to use for vectorization.
108
+ You can add your own embedding model in the autorag.embedding_models.
109
+ Please refer to how to add an embedding model in this doc: https://docs.auto-rag.com/local_model.html
110
+ The default is 'openai_embed_3_large'.
111
+ :param collection: The chromadb collection to use for vector DB.
112
+ You can make any chromadb collection and use it here.
113
+ If you already ingested the corpus_df to the collection, the embedding process will not be repeated.
114
+ The default is None. If None, it makes a temporary collection.
115
+ :param upsert: If true, the function will overwrite the existing file if it exists.
116
+ :param random_state: The random state for sampling corpus from the given corpus_df.
117
+ :param cache_batch: The number of batches to use for caching the generated QA dataset.
118
+ :param top_k: The number of sources to refer by model.
119
+ Default is 3.
120
+ :param kwargs: The keyword arguments for qa_creation_func.
121
+ :return: QA dataset dataframe.
122
+ """
123
+ assert 'query' in existing_query_df.columns, "existing_query_df must have 'query' column."
124
+ assert content_size > 0, "content_size must be greater than 0."
125
+ if content_size > len(corpus_df):
126
+ logger.warning(f"content_size {content_size} is larger than the corpus size {len(corpus_df)}. "
127
+ "Setting content_size to the corpus size.")
128
+ content_size = len(corpus_df)
129
+
130
+ logger.info("Loading local embedding model...")
131
+ embeddings = autorag.embedding_models[embedding_model]
132
+
133
+ # Vector DB creation
134
+ if collection is None:
135
+ chroma_client = chromadb.Client()
136
+ collection_name = "auto-rag"
137
+ collection = chroma_client.get_or_create_collection(collection_name)
138
+
139
+ # embed corpus_df
140
+ vectordb_ingest(collection, corpus_df, embeddings)
141
+ vectordb_func = vectordb.__wrapped__
142
+ retrieved_ids, retrieve_scores = vectordb_func(existing_query_df['query'].tolist(), top_k, collection, embeddings)
143
+
144
+ retrieved_contents: List[List[str]] = fetch_contents(corpus_df, retrieved_ids)
145
+ input_passage_strs: List[str] = list(map(
146
+ lambda x: '\n'.join([f"Document {i + 1}\n{content}" for i, content in enumerate(x)]),
147
+ retrieved_contents))
148
+ retrieved_qa_df = pd.DataFrame({
149
+ 'qid': [str(uuid.uuid4()) for _ in range(len(existing_query_df))],
150
+ 'query': existing_query_df['query'].tolist(),
151
+ 'retrieval_gt': list(map(lambda x: [x], retrieved_ids)),
152
+ 'input_passage_str': input_passage_strs,
153
+ })
154
+
155
+ sample_qa_df = retrieved_qa_df.sample(n=min(content_size, len(retrieved_qa_df)), random_state=random_state)
156
+
157
+ generation_gt = answer_creation_func(contents=sample_qa_df['input_passage_str'].tolist(),
158
+ queries=sample_qa_df['query'].tolist(),
159
+ batch=cache_batch,
160
+ **kwargs)
161
+ qa_df = sample_qa_df.copy(deep=True)
162
+ qa_df.drop(columns=['input_passage_str'], inplace=True)
163
+ qa_df['generation_gt'] = generation_gt
164
+
165
+ if output_filepath is not None:
166
+ save_parquet_safe(qa_df, output_filepath, upsert=upsert)
167
+
168
+ return qa_df
@@ -4,6 +4,7 @@ import random
4
4
  from typing import Optional, List, Dict, Any
5
5
 
6
6
  import pandas as pd
7
+ from llama_index.core.base.llms.types import ChatMessage, MessageRole
7
8
  from llama_index.core.service_context_elements.llm_predictor import LLMPredictorType
8
9
 
9
10
  from autorag.utils.util import process_batch
@@ -53,6 +54,31 @@ def generate_qa_llama_index(
53
54
  return results
54
55
 
55
56
 
57
+ def generate_answers(
58
+ llm: LLMPredictorType,
59
+ contents: List[str],
60
+ queries: List[str],
61
+ batch: int = 4,
62
+ ) -> List[List[Dict]]:
63
+ """
64
+ Generate qa sets from the list of contents using existing queries.
65
+
66
+ :param llm: Llama index model
67
+ :param contents: List of content strings.
68
+ :param queries: List of existing queries.
69
+ :param batch: The batch size to process asynchronously.
70
+ :return: 2-d list of dictionaries containing the query and generation_gt.
71
+ """
72
+
73
+ tasks = [
74
+ generate_basic_answer(llm, content, query)
75
+ for content, query in zip(contents, queries)
76
+ ]
77
+ loops = asyncio.get_event_loop()
78
+ results = loops.run_until_complete(process_batch(tasks, batch))
79
+ return results
80
+
81
+
56
82
  def generate_qa_llama_index_by_ratio(
57
83
  llm: LLMPredictorType,
58
84
  contents: List[str],
@@ -147,6 +173,21 @@ async def async_qa_gen_llama_index(
147
173
  return await generate(content, llm)
148
174
 
149
175
 
176
+ async def generate_basic_answer(llm: LLMPredictorType, passage_str: str, query: str) -> str:
177
+ basic_answer_system_prompt = """You are an AI assistant to answer the given question in the provide evidence text.
178
+ You can find the evidence from the given text about question, and you have to write a proper answer to the given question.
179
+ You have to preserve the question's language at the answer.
180
+ For example, if the input question is Korean, the output answer must be in Korean.
181
+ """
182
+ user_prompt = f"Text:\n<|text_start|>\n{passage_str}\n<|text_end|>\n\nQuestion:\n{query}\n\nAnswer:"
183
+
184
+ response = await llm.achat(messages=[
185
+ ChatMessage(role=MessageRole.SYSTEM, content=basic_answer_system_prompt),
186
+ ChatMessage(role=MessageRole.USER, content=user_prompt)
187
+ ], temperature=1.0)
188
+ return response.message.content
189
+
190
+
150
191
  def validate_llama_index_prompt(prompt: str) -> bool:
151
192
  """
152
193
  Validate the prompt for the llama index model.
@@ -4,6 +4,7 @@ import uuid
4
4
  from copy import deepcopy
5
5
  from typing import Optional, Dict, List
6
6
 
7
+ import nest_asyncio
7
8
  import pandas as pd
8
9
  import uvicorn
9
10
  import yaml
@@ -65,7 +66,7 @@ def summary_df_to_yaml(summary_df: pd.DataFrame, config_dict: Dict) -> Dict:
65
66
  summary_df['categorical_node_line_name'] = pd.Categorical(summary_df['node_line_name'], categories=node_line_names,
66
67
  ordered=True)
67
68
  summary_df = summary_df.sort_values(by='categorical_node_line_name')
68
- grouped = summary_df.groupby('categorical_node_line_name')
69
+ grouped = summary_df.groupby('categorical_node_line_name', observed=False)
69
70
 
70
71
  node_lines = [
71
72
  {
@@ -207,7 +208,7 @@ class Runner:
207
208
 
208
209
  {
209
210
  "Query": "your query",
210
- "result_column": "answer"
211
+ "result_column": "generated_texts"
211
212
  }
212
213
 
213
214
  And it returns json response like below:
@@ -222,10 +223,11 @@ class Runner:
222
223
  :param port: The port of the api server.
223
224
  :param kwargs: Other arguments for uvicorn.run.
224
225
  """
226
+ nest_asyncio.apply()
225
227
  logger.info(f"Run api server at {host}:{port}")
226
- uvicorn.run(self.app, host=host, port=port, **kwargs)
228
+ uvicorn.run(self.app, host=host, port=port, loop="asyncio", **kwargs)
227
229
 
228
230
 
229
231
  class RunnerInput(BaseModel):
230
232
  query: str
231
- result_column: str = "answer"
233
+ result_column: str = "generated_texts"
@@ -5,6 +5,7 @@ import os
5
5
  from typing import List, Optional
6
6
 
7
7
  import evaluate
8
+ import nltk
8
9
  import pandas as pd
9
10
  import torch
10
11
  from llama_index.core.embeddings import BaseEmbedding
@@ -109,6 +110,7 @@ def meteor(generation_gt: List[List[str]], generations: List[str],
109
110
  Default is 0.5.
110
111
  :return: A list of computed metric scores.
111
112
  """
113
+ nltk.download('punkt_tab')
112
114
  meteor_instance = evaluate.load("meteor")
113
115
  result = huggingface_evaluate(meteor_instance, 'meteor', generation_gt, generations,
114
116
  alpha=alpha, beta=beta, gamma=gamma)