AutoRAG 0.2.9__tar.gz → 0.2.11__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (455) hide show
  1. {autorag-0.2.9 → autorag-0.2.11}/AutoRAG.egg-info/PKG-INFO +2 -2
  2. {autorag-0.2.9 → autorag-0.2.11}/AutoRAG.egg-info/SOURCES.txt +0 -7
  3. {autorag-0.2.9 → autorag-0.2.11}/AutoRAG.egg-info/requires.txt +1 -1
  4. {autorag-0.2.9 → autorag-0.2.11}/PKG-INFO +2 -2
  5. autorag-0.2.11/autorag/VERSION +1 -0
  6. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/generator/openai_llm.py +2 -0
  7. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/retrieval/__init__.py +0 -2
  8. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/retrieval/base.py +3 -4
  9. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/retrieval/bm25.py +35 -6
  10. autorag-0.2.11/autorag/nodes/retrieval/hybrid_cc.py +137 -0
  11. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/retrieval/hybrid_rrf.py +14 -5
  12. autorag-0.2.11/autorag/nodes/retrieval/run.py +338 -0
  13. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/retrieval/vectordb.py +61 -18
  14. {autorag-0.2.9 → autorag-0.2.11}/autorag/support.py +0 -2
  15. {autorag-0.2.9 → autorag-0.2.11}/autorag/utils/util.py +16 -0
  16. {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.nodes.retrieval.rst +0 -16
  17. {autorag-0.2.9 → autorag-0.2.11}/docs/source/evaluate_metrics/generation.md +16 -5
  18. autorag-0.2.11/docs/source/nodes/retrieval/hybrid_cc.md +59 -0
  19. autorag-0.2.11/docs/source/nodes/retrieval/hybrid_rrf.md +34 -0
  20. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/retrieval/retrieval.md +5 -10
  21. {autorag-0.2.9 → autorag-0.2.11}/requirements.txt +1 -1
  22. {autorag-0.2.9 → autorag-0.2.11}/sample_config/compact_local.yaml +1 -7
  23. autorag-0.2.11/sample_config/compact_openai.yaml +59 -0
  24. {autorag-0.2.9 → autorag-0.2.11}/sample_config/full.yaml +4 -19
  25. {autorag-0.2.9 → autorag-0.2.11}/sample_config/simple_ollama.yaml +2 -19
  26. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/generator/test_openai.py +2 -2
  27. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/retrieval/test_bm25.py +44 -1
  28. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/retrieval/test_hybrid_base.py +18 -1
  29. autorag-0.2.11/tests/autorag/nodes/retrieval/test_hybrid_cc.py +54 -0
  30. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/retrieval/test_hybrid_rrf.py +3 -3
  31. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/retrieval/test_retrieval_base.py +7 -1
  32. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/retrieval/test_run_retrieval_node.py +17 -38
  33. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/retrieval/test_vectordb.py +55 -2
  34. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/test_evaluator.py +9 -13
  35. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/full.yaml +4 -7
  36. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/3/config.yaml +1 -2
  37. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/simple.yaml +1 -2
  38. autorag-0.2.9/autorag/VERSION +0 -1
  39. autorag-0.2.9/autorag/nodes/retrieval/hybrid_cc.py +0 -63
  40. autorag-0.2.9/autorag/nodes/retrieval/hybrid_dbsf.py +0 -70
  41. autorag-0.2.9/autorag/nodes/retrieval/hybrid_rsf.py +0 -96
  42. autorag-0.2.9/autorag/nodes/retrieval/run.py +0 -217
  43. autorag-0.2.9/docs/source/nodes/retrieval/hybrid_cc.md +0 -44
  44. autorag-0.2.9/docs/source/nodes/retrieval/hybrid_dbsf.md +0 -131
  45. autorag-0.2.9/docs/source/nodes/retrieval/hybrid_rrf.md +0 -40
  46. autorag-0.2.9/docs/source/nodes/retrieval/hybrid_rsf.md +0 -134
  47. autorag-0.2.9/docs/source/optimization/sample_full_config.yaml +0 -78
  48. autorag-0.2.9/sample_config/compact_openai.yaml +0 -65
  49. autorag-0.2.9/tests/autorag/nodes/retrieval/test_hybrid_cc.py +0 -33
  50. autorag-0.2.9/tests/autorag/nodes/retrieval/test_hybrid_dbsf.py +0 -20
  51. autorag-0.2.9/tests/autorag/nodes/retrieval/test_hybrid_rsf.py +0 -20
  52. {autorag-0.2.9 → autorag-0.2.11}/.github/FUNDING.yml +0 -0
  53. {autorag-0.2.9 → autorag-0.2.11}/.github/dependabot.yml +0 -0
  54. {autorag-0.2.9 → autorag-0.2.11}/.github/workflows/publish.yml +0 -0
  55. {autorag-0.2.9 → autorag-0.2.11}/.github/workflows/sphinx.yml +0 -0
  56. {autorag-0.2.9 → autorag-0.2.11}/.github/workflows/test.yml +0 -0
  57. {autorag-0.2.9 → autorag-0.2.11}/.gitignore +0 -0
  58. {autorag-0.2.9 → autorag-0.2.11}/AutoRAG.egg-info/dependency_links.txt +0 -0
  59. {autorag-0.2.9 → autorag-0.2.11}/AutoRAG.egg-info/entry_points.txt +0 -0
  60. {autorag-0.2.9 → autorag-0.2.11}/AutoRAG.egg-info/top_level.txt +0 -0
  61. {autorag-0.2.9 → autorag-0.2.11}/CODE_OF_CONDUCT.md +0 -0
  62. {autorag-0.2.9 → autorag-0.2.11}/CONTRIBUTING.md +0 -0
  63. {autorag-0.2.9 → autorag-0.2.11}/LICENSE +0 -0
  64. {autorag-0.2.9 → autorag-0.2.11}/README.md +0 -0
  65. {autorag-0.2.9 → autorag-0.2.11}/autorag/__init__.py +0 -0
  66. {autorag-0.2.9 → autorag-0.2.11}/autorag/cli.py +0 -0
  67. {autorag-0.2.9 → autorag-0.2.11}/autorag/dashboard.py +0 -0
  68. {autorag-0.2.9 → autorag-0.2.11}/autorag/data/__init__.py +0 -0
  69. {autorag-0.2.9 → autorag-0.2.11}/autorag/data/corpus/__init__.py +0 -0
  70. {autorag-0.2.9 → autorag-0.2.11}/autorag/data/corpus/langchain.py +0 -0
  71. {autorag-0.2.9 → autorag-0.2.11}/autorag/data/corpus/llama_index.py +0 -0
  72. {autorag-0.2.9 → autorag-0.2.11}/autorag/data/qacreation/__init__.py +0 -0
  73. {autorag-0.2.9 → autorag-0.2.11}/autorag/data/qacreation/base.py +0 -0
  74. {autorag-0.2.9 → autorag-0.2.11}/autorag/data/qacreation/llama_index.py +0 -0
  75. {autorag-0.2.9 → autorag-0.2.11}/autorag/data/qacreation/llama_index_default_prompt.txt +0 -0
  76. {autorag-0.2.9 → autorag-0.2.11}/autorag/data/qacreation/ragas.py +0 -0
  77. {autorag-0.2.9 → autorag-0.2.11}/autorag/data/qacreation/simple.py +0 -0
  78. {autorag-0.2.9 → autorag-0.2.11}/autorag/data/utils/__init__.py +0 -0
  79. {autorag-0.2.9 → autorag-0.2.11}/autorag/data/utils/util.py +0 -0
  80. {autorag-0.2.9 → autorag-0.2.11}/autorag/deploy.py +0 -0
  81. {autorag-0.2.9 → autorag-0.2.11}/autorag/evaluation/__init__.py +0 -0
  82. {autorag-0.2.9 → autorag-0.2.11}/autorag/evaluation/generation.py +0 -0
  83. {autorag-0.2.9 → autorag-0.2.11}/autorag/evaluation/metric/__init__.py +0 -0
  84. {autorag-0.2.9 → autorag-0.2.11}/autorag/evaluation/metric/g_eval_prompts/coh_detailed.txt +0 -0
  85. {autorag-0.2.9 → autorag-0.2.11}/autorag/evaluation/metric/g_eval_prompts/con_detailed.txt +0 -0
  86. {autorag-0.2.9 → autorag-0.2.11}/autorag/evaluation/metric/g_eval_prompts/flu_detailed.txt +0 -0
  87. {autorag-0.2.9 → autorag-0.2.11}/autorag/evaluation/metric/g_eval_prompts/rel_detailed.txt +0 -0
  88. {autorag-0.2.9 → autorag-0.2.11}/autorag/evaluation/metric/generation.py +0 -0
  89. {autorag-0.2.9 → autorag-0.2.11}/autorag/evaluation/metric/retrieval.py +0 -0
  90. {autorag-0.2.9 → autorag-0.2.11}/autorag/evaluation/metric/retrieval_contents.py +0 -0
  91. {autorag-0.2.9 → autorag-0.2.11}/autorag/evaluation/metric/util.py +0 -0
  92. {autorag-0.2.9 → autorag-0.2.11}/autorag/evaluation/retrieval.py +0 -0
  93. {autorag-0.2.9 → autorag-0.2.11}/autorag/evaluation/retrieval_contents.py +0 -0
  94. {autorag-0.2.9 → autorag-0.2.11}/autorag/evaluation/util.py +0 -0
  95. {autorag-0.2.9 → autorag-0.2.11}/autorag/evaluator.py +0 -0
  96. {autorag-0.2.9 → autorag-0.2.11}/autorag/node_line.py +0 -0
  97. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/__init__.py +0 -0
  98. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/generator/__init__.py +0 -0
  99. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/generator/base.py +0 -0
  100. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/generator/llama_index_llm.py +0 -0
  101. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/generator/run.py +0 -0
  102. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/generator/vllm.py +0 -0
  103. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passageaugmenter/__init__.py +0 -0
  104. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passageaugmenter/base.py +0 -0
  105. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passageaugmenter/pass_passage_augmenter.py +0 -0
  106. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passageaugmenter/prev_next_augmenter.py +0 -0
  107. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passageaugmenter/run.py +0 -0
  108. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagecompressor/__init__.py +0 -0
  109. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagecompressor/base.py +0 -0
  110. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagecompressor/longllmlingua.py +0 -0
  111. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagecompressor/pass_compressor.py +0 -0
  112. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagecompressor/refine.py +0 -0
  113. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagecompressor/run.py +0 -0
  114. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagecompressor/tree_summarize.py +0 -0
  115. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagefilter/__init__.py +0 -0
  116. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagefilter/base.py +0 -0
  117. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagefilter/pass_passage_filter.py +0 -0
  118. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagefilter/percentile_cutoff.py +0 -0
  119. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagefilter/recency.py +0 -0
  120. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagefilter/run.py +0 -0
  121. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagefilter/similarity_percentile_cutoff.py +0 -0
  122. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagefilter/similarity_threshold_cutoff.py +0 -0
  123. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagefilter/threshold_cutoff.py +0 -0
  124. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/__init__.py +0 -0
  125. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/base.py +0 -0
  126. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/cohere.py +0 -0
  127. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/colbert.py +0 -0
  128. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/flag_embedding.py +0 -0
  129. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/flag_embedding_llm.py +0 -0
  130. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/jina.py +0 -0
  131. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/koreranker.py +0 -0
  132. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/monot5.py +0 -0
  133. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/pass_reranker.py +0 -0
  134. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/rankgpt.py +0 -0
  135. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/run.py +0 -0
  136. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/sentence_transformer.py +0 -0
  137. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/tart/__init__.py +0 -0
  138. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/tart/modeling_enc_t5.py +0 -0
  139. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/tart/tart.py +0 -0
  140. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/tart/tokenization_enc_t5.py +0 -0
  141. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/time_reranker.py +0 -0
  142. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/passagereranker/upr.py +0 -0
  143. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/promptmaker/__init__.py +0 -0
  144. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/promptmaker/base.py +0 -0
  145. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/promptmaker/fstring.py +0 -0
  146. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/promptmaker/long_context_reorder.py +0 -0
  147. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/promptmaker/run.py +0 -0
  148. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/promptmaker/window_replacement.py +0 -0
  149. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/queryexpansion/__init__.py +0 -0
  150. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/queryexpansion/base.py +0 -0
  151. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/queryexpansion/hyde.py +0 -0
  152. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/queryexpansion/multi_query_expansion.py +0 -0
  153. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/queryexpansion/pass_query_expansion.py +0 -0
  154. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/queryexpansion/query_decompose.py +0 -0
  155. {autorag-0.2.9 → autorag-0.2.11}/autorag/nodes/queryexpansion/run.py +0 -0
  156. {autorag-0.2.9 → autorag-0.2.11}/autorag/schema/__init__.py +0 -0
  157. {autorag-0.2.9 → autorag-0.2.11}/autorag/schema/module.py +0 -0
  158. {autorag-0.2.9 → autorag-0.2.11}/autorag/schema/node.py +0 -0
  159. {autorag-0.2.9 → autorag-0.2.11}/autorag/strategy.py +0 -0
  160. {autorag-0.2.9 → autorag-0.2.11}/autorag/utils/__init__.py +0 -0
  161. {autorag-0.2.9 → autorag-0.2.11}/autorag/utils/preprocess.py +0 -0
  162. {autorag-0.2.9 → autorag-0.2.11}/autorag/web.py +0 -0
  163. {autorag-0.2.9 → autorag-0.2.11}/docs/Makefile +0 -0
  164. {autorag-0.2.9 → autorag-0.2.11}/docs/make.bat +0 -0
  165. {autorag-0.2.9 → autorag-0.2.11}/docs/requirements.txt +0 -0
  166. {autorag-0.2.9 → autorag-0.2.11}/docs/source/CNAME +0 -0
  167. {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/data_creation.png +0 -0
  168. {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/data_folder.png +0 -0
  169. {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/dcg.png +0 -0
  170. {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/f1_score.png +0 -0
  171. {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/map.png +0 -0
  172. {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/mrr.png +0 -0
  173. {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/ndcg.png +0 -0
  174. {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/ndcg_formula.png +0 -0
  175. {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/node_folder.png +0 -0
  176. {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/node_line_folder.png +0 -0
  177. {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/node_line_summary.png +0 -0
  178. {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/node_lines.png +0 -0
  179. {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/node_summary.png +0 -0
  180. {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/normal_distribution.png +0 -0
  181. {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/project_folder_example.png +0 -0
  182. {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/project_folders.png +0 -0
  183. {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/resources_folder.png +0 -0
  184. {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/roadmap/RAG_paradigms.png +0 -0
  185. {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/roadmap/advanced_RAG.png +0 -0
  186. {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/roadmap/cycle.png +0 -0
  187. {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/roadmap/merger.png +0 -0
  188. {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/roadmap/node_line_modular.png +0 -0
  189. {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/roadmap/policy.png +0 -0
  190. {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/samsung_sundae.jpeg +0 -0
  191. {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/score_fusion.png +0 -0
  192. {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/trial_folder.png +0 -0
  193. {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/trial_json.png +0 -0
  194. {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/trial_summary.png +0 -0
  195. {autorag-0.2.9 → autorag-0.2.11}/docs/source/_static/web_interface.png +0 -0
  196. {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.data.corpus.rst +0 -0
  197. {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.data.qacreation.rst +0 -0
  198. {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.data.rst +0 -0
  199. {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.data.utils.rst +0 -0
  200. {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.evaluation.metric.rst +0 -0
  201. {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.evaluation.rst +0 -0
  202. {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.nodes.generator.rst +0 -0
  203. {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.nodes.passageaugmenter.rst +0 -0
  204. {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.nodes.passagecompressor.rst +0 -0
  205. {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.nodes.passagefilter.rst +0 -0
  206. {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.nodes.passagereranker.rst +0 -0
  207. {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.nodes.passagereranker.tart.rst +0 -0
  208. {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.nodes.promptmaker.rst +0 -0
  209. {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.nodes.queryexpansion.rst +0 -0
  210. {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.nodes.rst +0 -0
  211. {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.rst +0 -0
  212. {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.schema.rst +0 -0
  213. {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/autorag.utils.rst +0 -0
  214. {autorag-0.2.9 → autorag-0.2.11}/docs/source/api_spec/modules.rst +0 -0
  215. {autorag-0.2.9 → autorag-0.2.11}/docs/source/conf.py +0 -0
  216. {autorag-0.2.9 → autorag-0.2.11}/docs/source/data_creation/data_format.md +0 -0
  217. {autorag-0.2.9 → autorag-0.2.11}/docs/source/data_creation/ragas.md +0 -0
  218. {autorag-0.2.9 → autorag-0.2.11}/docs/source/data_creation/tutorial.md +0 -0
  219. {autorag-0.2.9 → autorag-0.2.11}/docs/source/deploy/api_endpoint.md +0 -0
  220. {autorag-0.2.9 → autorag-0.2.11}/docs/source/deploy/web.md +0 -0
  221. {autorag-0.2.9 → autorag-0.2.11}/docs/source/evaluate_metrics/retrieval.md +0 -0
  222. {autorag-0.2.9 → autorag-0.2.11}/docs/source/evaluate_metrics/retrieval_contents.md +0 -0
  223. {autorag-0.2.9 → autorag-0.2.11}/docs/source/index.rst +0 -0
  224. {autorag-0.2.9 → autorag-0.2.11}/docs/source/install.md +0 -0
  225. {autorag-0.2.9 → autorag-0.2.11}/docs/source/local_model.md +0 -0
  226. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/generator/generator.md +0 -0
  227. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/generator/llama_index_llm.md +0 -0
  228. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/generator/openai_llm.md +0 -0
  229. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/generator/vllm.md +0 -0
  230. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/index.md +0 -0
  231. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_augmenter/passage_augmenter.md +0 -0
  232. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_augmenter/prev_next_augmenter.md +0 -0
  233. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_compressor/longllmlingua.md +0 -0
  234. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_compressor/passage_compressor.md +0 -0
  235. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_compressor/refine.md +0 -0
  236. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_compressor/tree_summarize.md +0 -0
  237. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_filter/passage_filter.md +0 -0
  238. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_filter/percentile_cutoff.md +0 -0
  239. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_filter/recency_filter.md +0 -0
  240. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_filter/similarity_percentile_cutoff.md +0 -0
  241. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_filter/similarity_threshold_cutoff.md +0 -0
  242. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_filter/threshold_cutoff.md +0 -0
  243. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_reranker/cohere.md +0 -0
  244. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_reranker/colbert.md +0 -0
  245. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_reranker/flag_embedding_llm_reranker.md +0 -0
  246. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_reranker/flag_embedding_reranker.md +0 -0
  247. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_reranker/jina_reranker.md +0 -0
  248. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_reranker/koreranker.md +0 -0
  249. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_reranker/monot5.md +0 -0
  250. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_reranker/passage_reranker.md +0 -0
  251. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_reranker/rankgpt.md +0 -0
  252. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_reranker/sentence_transformer_reranker.md +0 -0
  253. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_reranker/tart.md +0 -0
  254. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_reranker/time_reranker.md +0 -0
  255. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/passage_reranker/upr.md +0 -0
  256. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/prompt_maker/fstring.md +0 -0
  257. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/prompt_maker/long_context_reorder.md +0 -0
  258. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/prompt_maker/prompt_maker.md +0 -0
  259. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/prompt_maker/window_replacement.md +0 -0
  260. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/query_expansion/hyde.md +0 -0
  261. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/query_expansion/multi_query_expansion.md +0 -0
  262. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/query_expansion/query_decompose.md +0 -0
  263. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/query_expansion/query_expansion.md +0 -0
  264. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/retrieval/bm25.md +0 -0
  265. {autorag-0.2.9 → autorag-0.2.11}/docs/source/nodes/retrieval/vectordb.md +0 -0
  266. {autorag-0.2.9 → autorag-0.2.11}/docs/source/optimization/custom_config.md +0 -0
  267. {autorag-0.2.9 → autorag-0.2.11}/docs/source/optimization/folder_structure.md +0 -0
  268. {autorag-0.2.9 → autorag-0.2.11}/docs/source/optimization/optimization.md +0 -0
  269. {autorag-0.2.9 → autorag-0.2.11}/docs/source/optimization/strategies.md +0 -0
  270. {autorag-0.2.9 → autorag-0.2.11}/docs/source/roadmap/modular_rag.md +0 -0
  271. {autorag-0.2.9 → autorag-0.2.11}/docs/source/structure.md +0 -0
  272. {autorag-0.2.9 → autorag-0.2.11}/docs/source/troubleshooting.md +0 -0
  273. {autorag-0.2.9 → autorag-0.2.11}/docs/source/tutorial.md +0 -0
  274. {autorag-0.2.9 → autorag-0.2.11}/pyproject.toml +0 -0
  275. {autorag-0.2.9 → autorag-0.2.11}/sample_config/config_korean.yaml +0 -0
  276. {autorag-0.2.9 → autorag-0.2.11}/sample_config/extracted_sample.yaml +0 -0
  277. {autorag-0.2.9 → autorag-0.2.11}/sample_config/simple_local.yaml +0 -0
  278. {autorag-0.2.9 → autorag-0.2.11}/sample_config/simple_openai.yaml +0 -0
  279. {autorag-0.2.9 → autorag-0.2.11}/sample_dataset/README.md +0 -0
  280. {autorag-0.2.9 → autorag-0.2.11}/sample_dataset/eli5/load_eli5_dataset.py +0 -0
  281. {autorag-0.2.9 → autorag-0.2.11}/sample_dataset/hotpotqa/load_hotpotqa_dataset.py +0 -0
  282. {autorag-0.2.9 → autorag-0.2.11}/sample_dataset/msmarco/load_msmarco_dataset.py +0 -0
  283. {autorag-0.2.9 → autorag-0.2.11}/sample_dataset/triviaqa/load_triviaqa_dataset.py +0 -0
  284. {autorag-0.2.9 → autorag-0.2.11}/setup.cfg +0 -0
  285. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/data/corpus/test_base.py +0 -0
  286. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/data/corpus/test_langchain.py +0 -0
  287. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/data/corpus/test_llama_index_corpus.py +0 -0
  288. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/data/qacreation/test_base_qacreation.py +0 -0
  289. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/data/qacreation/test_llama_index_qacreation.py +0 -0
  290. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/data/qacreation/test_ragas_qa_creation.py +0 -0
  291. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/data/qacreation/test_simple.py +0 -0
  292. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/evaluate/metric/test_generation_metric.py +0 -0
  293. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/evaluate/metric/test_retrieval_contents_metric.py +0 -0
  294. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/evaluate/metric/test_retrieval_metric.py +0 -0
  295. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/evaluate/test_evaluate_util.py +0 -0
  296. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/evaluate/test_generation_evaluate.py +0 -0
  297. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/evaluate/test_retrieval_contents_evaluate.py +0 -0
  298. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/evaluate/test_retrieval_evaluate.py +0 -0
  299. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/generator/test_generator_base.py +0 -0
  300. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/generator/test_llama_index_llm.py +0 -0
  301. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/generator/test_run_generator_node.py +0 -0
  302. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/generator/test_vllm.py +0 -0
  303. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passageaugmenter/test_base_passage_augmenter.py +0 -0
  304. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passageaugmenter/test_pass_passage_augmenter.py +0 -0
  305. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passageaugmenter/test_prev_next_augmenter.py +0 -0
  306. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passageaugmenter/test_run_passage_augmenter.py +0 -0
  307. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagecompressor/test_base_passage_compressor.py +0 -0
  308. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagecompressor/test_longllmlingua.py +0 -0
  309. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagecompressor/test_pass_compressor.py +0 -0
  310. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagecompressor/test_refine.py +0 -0
  311. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagecompressor/test_run_passage_compressor_node.py +0 -0
  312. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagecompressor/test_tree_summarize.py +0 -0
  313. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagefilter/test_pass_passage_filter.py +0 -0
  314. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagefilter/test_passage_filter_base.py +0 -0
  315. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagefilter/test_passage_filter_run.py +0 -0
  316. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagefilter/test_percentile_cutoff.py +0 -0
  317. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagefilter/test_recency_filter.py +0 -0
  318. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagefilter/test_similarity_percentile_cutoff.py +0 -0
  319. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagefilter/test_similarity_threshold_cutoff.py +0 -0
  320. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagefilter/test_threshold_cutoff.py +0 -0
  321. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagereranker/test_cohere_reranker.py +0 -0
  322. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagereranker/test_colbert_reranker.py +0 -0
  323. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagereranker/test_flag_embedding.py +0 -0
  324. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagereranker/test_flag_embedding_llm.py +0 -0
  325. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagereranker/test_jina_reranker.py +0 -0
  326. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagereranker/test_koreranker.py +0 -0
  327. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagereranker/test_monot5.py +0 -0
  328. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagereranker/test_pass_reranker.py +0 -0
  329. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagereranker/test_passage_reranker_base.py +0 -0
  330. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagereranker/test_passage_reranker_run.py +0 -0
  331. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagereranker/test_rankgpt.py +0 -0
  332. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagereranker/test_sentence_transformer.py +0 -0
  333. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagereranker/test_tart.py +0 -0
  334. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagereranker/test_time_reranker.py +0 -0
  335. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/passagereranker/test_upr.py +0 -0
  336. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/promptmaker/test_fstring.py +0 -0
  337. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/promptmaker/test_long_context_reorder.py +0 -0
  338. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/promptmaker/test_prompt_maker_base.py +0 -0
  339. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/promptmaker/test_prompt_maker_run.py +0 -0
  340. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/promptmaker/test_window_replacement.py +0 -0
  341. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/queryexpansion/test_hyde.py +0 -0
  342. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/queryexpansion/test_multi_query_expansion.py +0 -0
  343. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/queryexpansion/test_pass_query_expansion.py +0 -0
  344. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/queryexpansion/test_query_decompose.py +0 -0
  345. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/queryexpansion/test_query_expansion_base.py +0 -0
  346. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/nodes/queryexpansion/test_query_expansion_run.py +0 -0
  347. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/schema/test_module_schema.py +0 -0
  348. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/schema/test_node_schema.py +0 -0
  349. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/test_cli.py +0 -0
  350. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/test_dashboard.py +0 -0
  351. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/test_deploy.py +0 -0
  352. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/test_strategy.py +0 -0
  353. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/test_support.py +0 -0
  354. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/test_web.py +0 -0
  355. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/utils/test_preprocess.py +0 -0
  356. {autorag-0.2.9 → autorag-0.2.11}/tests/autorag/utils/test_util.py +0 -0
  357. {autorag-0.2.9 → autorag-0.2.11}/tests/conftest.py +0 -0
  358. {autorag-0.2.9 → autorag-0.2.11}/tests/delete_tests.py +0 -0
  359. {autorag-0.2.9 → autorag-0.2.11}/tests/mock.py +0 -0
  360. {autorag-0.2.9 → autorag-0.2.11}/tests/requirements.txt +0 -0
  361. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/README.md +0 -0
  362. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/corpus_data_sample.parquet +0 -0
  363. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/data_creation/raw_dir/sample1.txt +0 -0
  364. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/data_creation/raw_dir/sample2.txt +0 -0
  365. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/data_creation/raw_dir/sample3.txt +0 -0
  366. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/qa_data_sample.parquet +0 -0
  367. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/qa_gen_prompts/prompt1.txt +0 -0
  368. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/qa_gen_prompts/prompt2.txt +0 -0
  369. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/qa_gen_prompts/prompt3.txt +0 -0
  370. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/qa_test_data_sample.parquet +0 -0
  371. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/config.yaml +0 -0
  372. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/post_retrieve_node_line/generator/0.parquet +0 -0
  373. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/post_retrieve_node_line/generator/1.parquet +0 -0
  374. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/post_retrieve_node_line/generator/2.parquet +0 -0
  375. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/post_retrieve_node_line/generator/3.parquet +0 -0
  376. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/post_retrieve_node_line/generator/4.parquet +0 -0
  377. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/post_retrieve_node_line/generator/5.parquet +0 -0
  378. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/post_retrieve_node_line/generator/best_5.parquet +0 -0
  379. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/post_retrieve_node_line/generator/summary.csv +0 -0
  380. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/post_retrieve_node_line/prompt_maker/0.parquet +0 -0
  381. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/post_retrieve_node_line/prompt_maker/1.parquet +0 -0
  382. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/post_retrieve_node_line/prompt_maker/best_0.parquet +0 -0
  383. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/post_retrieve_node_line/prompt_maker/summary.csv +0 -0
  384. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/post_retrieve_node_line/summary.csv +0 -0
  385. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/0.parquet +0 -0
  386. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/1.parquet +0 -0
  387. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/2.parquet +0 -0
  388. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/best_0.parquet +0 -0
  389. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/pre_retrieve_node_line/query_expansion/summary.csv +0 -0
  390. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/pre_retrieve_node_line/summary.csv +0 -0
  391. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/retrieve_node_line/passage_compressor/0.parquet +0 -0
  392. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/retrieve_node_line/passage_compressor/best_0.parquet +0 -0
  393. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/retrieve_node_line/passage_compressor/summary.csv +0 -0
  394. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/retrieve_node_line/passage_reranker/0.parquet +0 -0
  395. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/retrieve_node_line/passage_reranker/1.parquet +0 -0
  396. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/retrieve_node_line/passage_reranker/best_0.parquet +0 -0
  397. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/retrieve_node_line/passage_reranker/summary.csv +0 -0
  398. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/retrieve_node_line/retrieval/0.parquet +0 -0
  399. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/retrieve_node_line/retrieval/1.parquet +0 -0
  400. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/retrieve_node_line/retrieval/best_0.parquet +0 -0
  401. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/retrieve_node_line/retrieval/summary.csv +0 -0
  402. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/retrieve_node_line/summary.csv +0 -0
  403. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/0/summary.csv +0 -0
  404. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/config.yaml +0 -0
  405. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/0.parquet +0 -0
  406. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/1.parquet +0 -0
  407. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/2.parquet +0 -0
  408. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/best_0.parquet +0 -0
  409. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/pre_retrieve_node_line/query_expansion/summary.csv +0 -0
  410. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/pre_retrieve_node_line/summary.csv +0 -0
  411. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/retrieve_node_line/passage_filter/0.parquet +0 -0
  412. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/retrieve_node_line/passage_reranker/0.parquet +0 -0
  413. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/retrieve_node_line/passage_reranker/1.parquet +0 -0
  414. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/retrieve_node_line/passage_reranker/best_0.parquet +0 -0
  415. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/retrieve_node_line/passage_reranker/summary.csv +0 -0
  416. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/retrieve_node_line/retrieval/0.parquet +0 -0
  417. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/retrieve_node_line/retrieval/1.parquet +0 -0
  418. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/retrieve_node_line/retrieval/best_0.parquet +0 -0
  419. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/1/retrieve_node_line/retrieval/summary.csv +0 -0
  420. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/config.yaml +0 -0
  421. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/post_retrieve_node_line/prompt_maker/0.parquet +0 -0
  422. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/0.parquet +0 -0
  423. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/1.parquet +0 -0
  424. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/2.parquet +0 -0
  425. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/best_0.parquet +0 -0
  426. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/pre_retrieve_node_line/query_expansion/summary.csv +0 -0
  427. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/pre_retrieve_node_line/summary.csv +0 -0
  428. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/retrieve_node_line/passage_compressor/0.parquet +0 -0
  429. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/retrieve_node_line/passage_compressor/best_0.parquet +0 -0
  430. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/retrieve_node_line/passage_compressor/summary.csv +0 -0
  431. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/retrieve_node_line/passage_reranker/0.parquet +0 -0
  432. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/retrieve_node_line/passage_reranker/1.parquet +0 -0
  433. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/retrieve_node_line/passage_reranker/best_0.parquet +0 -0
  434. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/retrieve_node_line/passage_reranker/summary.csv +0 -0
  435. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/retrieve_node_line/retrieval/0.parquet +0 -0
  436. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/retrieve_node_line/retrieval/1.parquet +0 -0
  437. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/retrieve_node_line/retrieval/best_0.parquet +0 -0
  438. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/retrieve_node_line/retrieval/summary.csv +0 -0
  439. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/2/retrieve_node_line/summary.csv +0 -0
  440. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/best.yaml +0 -0
  441. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/data/corpus.parquet +0 -0
  442. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/data/qa.parquet +0 -0
  443. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/resources/bm25_porter_stemmer.pkl +0 -0
  444. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/resources/chroma/6595d304-5270-4d9f-a267-c191366804ce/data_level0.bin +0 -0
  445. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/resources/chroma/6595d304-5270-4d9f-a267-c191366804ce/header.bin +0 -0
  446. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/resources/chroma/6595d304-5270-4d9f-a267-c191366804ce/length.bin +0 -0
  447. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/resources/chroma/6595d304-5270-4d9f-a267-c191366804ce/link_lists.bin +0 -0
  448. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/resources/chroma/chroma.sqlite3 +0 -0
  449. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/result_project/trial.json +0 -0
  450. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/sample_contents_nqa.csv +0 -0
  451. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/sample_project/data/corpus.parquet +0 -0
  452. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/sample_project/data/qa.parquet +0 -0
  453. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/sample_project/resources/bm25_gpt2.pkl +0 -0
  454. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/sample_project/resources/bm25_porter_stemmer.pkl +0 -0
  455. {autorag-0.2.9 → autorag-0.2.11}/tests/resources/test_bm25_retrieval.pkl +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: AutoRAG
3
- Version: 0.2.9
3
+ Version: 0.2.11
4
4
  Summary: Automatically Evaluate RAG pipelines with your own data. Find optimal structure for new RAG product.
5
5
  Author-email: Marker-Inc <vkehfdl1@gmail.com>
6
6
  License: Apache License
@@ -256,7 +256,7 @@ Requires-Dist: llama-index-core>=0.10.1
256
256
  Requires-Dist: llama-index-readers-file
257
257
  Requires-Dist: llama-index-embeddings-openai
258
258
  Requires-Dist: llama-index-embeddings-huggingface
259
- Requires-Dist: llama-index-llms-openai
259
+ Requires-Dist: llama-index-llms-openai>=0.1.26
260
260
  Requires-Dist: llama-index-llms-huggingface
261
261
  Requires-Dist: llama-index-llms-openai-like
262
262
  Requires-Dist: llama-index-llms-ollama
@@ -116,9 +116,7 @@ autorag/nodes/retrieval/__init__.py
116
116
  autorag/nodes/retrieval/base.py
117
117
  autorag/nodes/retrieval/bm25.py
118
118
  autorag/nodes/retrieval/hybrid_cc.py
119
- autorag/nodes/retrieval/hybrid_dbsf.py
120
119
  autorag/nodes/retrieval/hybrid_rrf.py
121
- autorag/nodes/retrieval/hybrid_rsf.py
122
120
  autorag/nodes/retrieval/run.py
123
121
  autorag/nodes/retrieval/vectordb.py
124
122
  autorag/schema/__init__.py
@@ -235,15 +233,12 @@ docs/source/nodes/query_expansion/query_decompose.md
235
233
  docs/source/nodes/query_expansion/query_expansion.md
236
234
  docs/source/nodes/retrieval/bm25.md
237
235
  docs/source/nodes/retrieval/hybrid_cc.md
238
- docs/source/nodes/retrieval/hybrid_dbsf.md
239
236
  docs/source/nodes/retrieval/hybrid_rrf.md
240
- docs/source/nodes/retrieval/hybrid_rsf.md
241
237
  docs/source/nodes/retrieval/retrieval.md
242
238
  docs/source/nodes/retrieval/vectordb.md
243
239
  docs/source/optimization/custom_config.md
244
240
  docs/source/optimization/folder_structure.md
245
241
  docs/source/optimization/optimization.md
246
- docs/source/optimization/sample_full_config.yaml
247
242
  docs/source/optimization/strategies.md
248
243
  docs/source/roadmap/modular_rag.md
249
244
  sample_config/compact_local.yaml
@@ -336,9 +331,7 @@ tests/autorag/nodes/queryexpansion/test_query_expansion_run.py
336
331
  tests/autorag/nodes/retrieval/test_bm25.py
337
332
  tests/autorag/nodes/retrieval/test_hybrid_base.py
338
333
  tests/autorag/nodes/retrieval/test_hybrid_cc.py
339
- tests/autorag/nodes/retrieval/test_hybrid_dbsf.py
340
334
  tests/autorag/nodes/retrieval/test_hybrid_rrf.py
341
- tests/autorag/nodes/retrieval/test_hybrid_rsf.py
342
335
  tests/autorag/nodes/retrieval/test_retrieval_base.py
343
336
  tests/autorag/nodes/retrieval/test_run_retrieval_node.py
344
337
  tests/autorag/nodes/retrieval/test_vectordb.py
@@ -34,7 +34,7 @@ llama-index-core>=0.10.1
34
34
  llama-index-readers-file
35
35
  llama-index-embeddings-openai
36
36
  llama-index-embeddings-huggingface
37
- llama-index-llms-openai
37
+ llama-index-llms-openai>=0.1.26
38
38
  llama-index-llms-huggingface
39
39
  llama-index-llms-openai-like
40
40
  llama-index-llms-ollama
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: AutoRAG
3
- Version: 0.2.9
3
+ Version: 0.2.11
4
4
  Summary: Automatically Evaluate RAG pipelines with your own data. Find optimal structure for new RAG product.
5
5
  Author-email: Marker-Inc <vkehfdl1@gmail.com>
6
6
  License: Apache License
@@ -256,7 +256,7 @@ Requires-Dist: llama-index-core>=0.10.1
256
256
  Requires-Dist: llama-index-readers-file
257
257
  Requires-Dist: llama-index-embeddings-openai
258
258
  Requires-Dist: llama-index-embeddings-huggingface
259
- Requires-Dist: llama-index-llms-openai
259
+ Requires-Dist: llama-index-llms-openai>=0.1.26
260
260
  Requires-Dist: llama-index-llms-huggingface
261
261
  Requires-Dist: llama-index-llms-openai-like
262
262
  Requires-Dist: llama-index-llms-ollama
@@ -0,0 +1 @@
1
+ 0.2.11
@@ -13,6 +13,8 @@ from autorag.utils.util import process_batch
13
13
  logger = logging.getLogger("AutoRAG")
14
14
 
15
15
  MAX_TOKEN_DICT = { # model name : token limit
16
+ 'gpt-4o-mini': 128_000,
17
+ 'gpt-4o-mini-2024-07-18': 128_000,
16
18
  'gpt-4o': 128_000,
17
19
  'gpt-4o-2024-05-13': 128_000,
18
20
  'gpt-4-turbo': 128_000,
@@ -1,7 +1,5 @@
1
1
  from .base import retrieval_node
2
2
  from .bm25 import bm25
3
3
  from .hybrid_cc import hybrid_cc
4
- from .hybrid_dbsf import hybrid_dbsf
5
4
  from .hybrid_rrf import hybrid_rrf
6
- from .hybrid_rsf import hybrid_rsf
7
5
  from .vectordb import vectordb
@@ -32,7 +32,6 @@ def retrieval_node(func):
32
32
  project_dir: Union[str, Path],
33
33
  previous_result: pd.DataFrame,
34
34
  **kwargs) -> Tuple[List[List[str]], List[List[str]], List[List[float]]]:
35
- logger.info(f"Running retrieval node - {func.__name__} module...")
36
35
  validate_qa_dataset(previous_result)
37
36
  resources_dir = os.path.join(project_dir, "resources")
38
37
  data_dir = os.path.join(project_dir, "data")
@@ -75,10 +74,10 @@ def retrieval_node(func):
75
74
  del embedding_model
76
75
  if torch.cuda.is_available():
77
76
  torch.cuda.empty_cache()
78
- elif func.__name__ in ["hybrid_rrf", "hybrid_cc", "hybrid_rsf", "hybrid_dbsf"]:
79
- if 'ids' in kwargs and 'scores' in kwargs:
77
+ elif func.__name__ in ["hybrid_rrf", "hybrid_cc"]:
78
+ if 'ids' in kwargs and 'scores' in kwargs: # ordinary run_evaluate
80
79
  ids, scores = func(**kwargs)
81
- else:
80
+ else: # => for Runner.run
82
81
  if not ('target_modules' in kwargs and 'target_module_params' in kwargs):
83
82
  raise ValueError(
84
83
  f"If there are no ids and scores specified, target_modules and target_module_params must be specified for using {func.__name__}.")
@@ -2,7 +2,7 @@ import asyncio
2
2
  import os
3
3
  import pickle
4
4
  import re
5
- from typing import List, Dict, Tuple, Callable, Union, Iterable
5
+ from typing import List, Dict, Tuple, Callable, Union, Iterable, Optional
6
6
 
7
7
  import numpy as np
8
8
  import pandas as pd
@@ -51,7 +51,8 @@ BM25_TOKENIZER = {
51
51
 
52
52
 
53
53
  @retrieval_node
54
- def bm25(queries: List[List[str]], top_k: int, bm25_corpus: Dict, bm25_tokenizer: str = 'porter_stemmer') -> \
54
+ def bm25(queries: List[List[str]], top_k: int, bm25_corpus: Dict, bm25_tokenizer: str = 'porter_stemmer',
55
+ ids: Optional[List[List[str]]] = None) -> \
55
56
  Tuple[List[List[str]], List[List[float]]]:
56
57
  """
57
58
  BM25 retrieval function.
@@ -74,6 +75,9 @@ def bm25(queries: List[List[str]], top_k: int, bm25_corpus: Dict, bm25_tokenizer
74
75
  It supports 'porter_stemmer', 'ko_kiwi', and huggingface `AutoTokenizer`.
75
76
  You can pass huggingface tokenizer name.
76
77
  Default is porter_stemmer.
78
+ :param ids: The optional list of ids that you want to retrieve.
79
+ You don't need to specify this in the general use cases.
80
+ Default is None.
77
81
  :return: The 2-d list contains a list of passage ids that retrieved from bm25 and 2-d list of its scores.
78
82
  It will be a length of queries. And each element has a length of top_k.
79
83
  """
@@ -85,6 +89,12 @@ def bm25(queries: List[List[str]], top_k: int, bm25_corpus: Dict, bm25_tokenizer
85
89
  (f"The bm25 corpus tokenizer is {bm25_corpus['tokenizer_name']}, but your input is {bm25_tokenizer}. "
86
90
  f"You need to ingest again. Delete bm25 pkl file and re-ingest it.")
87
91
  bm25_instance = BM25Okapi(bm25_corpus["tokens"])
92
+
93
+ if ids is not None:
94
+ score_result = list(map(lambda query_list, id_list: get_bm25_scores(
95
+ query_list, id_list, tokenizer, bm25_instance, bm25_corpus), queries, ids))
96
+ return ids, score_result
97
+
88
98
  # run async bm25_pure function
89
99
  tasks = [bm25_pure(input_queries, top_k, tokenizer, bm25_instance, bm25_corpus) for input_queries in queries]
90
100
  loop = asyncio.get_event_loop()
@@ -116,10 +126,7 @@ async def bm25_pure(queries: List[str], top_k: int, tokenizer, bm25_api: BM25Oka
116
126
  :return: The tuple contains a list of passage ids that retrieved from bm25 and its scores.
117
127
  """
118
128
  # I don't make queries operation to async, because queries length might be small, so it will occur overhead.
119
- if isinstance(tokenizer, PreTrainedTokenizerBase):
120
- tokenized_queries = tokenizer(queries).input_ids
121
- else:
122
- tokenized_queries = tokenizer(queries)
129
+ tokenized_queries = tokenize(queries, tokenizer)
123
130
  id_result = []
124
131
  score_result = []
125
132
  for query in tokenized_queries:
@@ -139,6 +146,28 @@ async def bm25_pure(queries: List[str], top_k: int, tokenizer, bm25_api: BM25Oka
139
146
  return list(id_result), list(score_result)
140
147
 
141
148
 
149
+ def get_bm25_scores(queries: List[str], ids: List[str], tokenizer,
150
+ bm25_api: BM25Okapi, bm25_corpus: Dict) -> List[float]:
151
+ if len(ids) == 0 or not bool(ids):
152
+ return []
153
+ tokenized_queries = tokenize(queries, tokenizer)
154
+ result_dict = {id_: [] for id_ in ids}
155
+ for query in tokenized_queries:
156
+ scores = bm25_api.get_scores(query)
157
+ for i, id_ in enumerate(ids):
158
+ result_dict[id_].append(scores[bm25_corpus['passage_id'].index(id_)])
159
+ result_df = pd.DataFrame(result_dict)
160
+ return result_df.max(axis=0).tolist()
161
+
162
+
163
+ def tokenize(queries: List[str], tokenizer) -> List[List[int]]:
164
+ if isinstance(tokenizer, PreTrainedTokenizerBase):
165
+ tokenized_queries = tokenizer(queries).input_ids
166
+ else:
167
+ tokenized_queries = tokenizer(queries)
168
+ return tokenized_queries
169
+
170
+
142
171
  def bm25_ingest(corpus_path: str, corpus_data: pd.DataFrame, bm25_tokenizer: str = 'porter_stemmer'):
143
172
  if not corpus_path.endswith('.pkl'):
144
173
  raise ValueError(f"Corpus path {corpus_path} is not a pickle file.")
@@ -0,0 +1,137 @@
1
+ from typing import Tuple, List
2
+
3
+ import numpy as np
4
+ import pandas as pd
5
+
6
+ from autorag.nodes.retrieval import retrieval_node
7
+
8
+
9
+ def normalize_mm(scores: List[str], fixed_min_value: float = 0):
10
+ arr = np.array(scores)
11
+ max_value = np.max(arr)
12
+ min_value = np.min(arr)
13
+ norm_score = (arr - min_value) / (max_value - min_value)
14
+ return norm_score
15
+
16
+
17
+ def normalize_tmm(scores: List[str], fixed_min_value: float):
18
+ arr = np.array(scores)
19
+ max_value = np.max(arr)
20
+ norm_score = (arr - fixed_min_value) / (max_value - fixed_min_value)
21
+ return norm_score
22
+
23
+
24
+ def normalize_z(scores: List[str], fixed_min_value: float = 0):
25
+ arr = np.array(scores)
26
+ mean_value = np.mean(arr)
27
+ std_value = np.std(arr)
28
+ norm_score = (arr - mean_value) / std_value
29
+ return norm_score
30
+
31
+
32
+ def normalize_dbsf(scores: List[str], fixed_min_value: float = 0):
33
+ arr = np.array(scores)
34
+ mean_value = np.mean(arr)
35
+ std_value = np.std(arr)
36
+ min_value = mean_value - 3 * std_value
37
+ max_value = mean_value + 3 * std_value
38
+ norm_score = (arr - min_value) / (max_value - min_value)
39
+ return norm_score
40
+
41
+
42
+ normalize_method_dict = {
43
+ 'mm': normalize_mm,
44
+ 'tmm': normalize_tmm,
45
+ 'z': normalize_z,
46
+ 'dbsf': normalize_dbsf,
47
+ }
48
+
49
+
50
+ @retrieval_node
51
+ def hybrid_cc(
52
+ ids: Tuple,
53
+ scores: Tuple,
54
+ top_k: int,
55
+ weight: float,
56
+ normalize_method: str = 'mm',
57
+ semantic_theoretical_min_value: float = -1.0,
58
+ lexical_theoretical_min_value: float = 0.0,
59
+ ) -> Tuple[List[List[str]], List[List[float]]]:
60
+ """
61
+ Hybrid CC function.
62
+ CC (convex combination) is a method to fuse lexical and semantic retrieval results.
63
+ It is a method that first normalizes the scores of each retrieval result,
64
+ and then combines them with the given weights.
65
+ It is uniquer than other retrieval modules, because it does not really execute retrieval,
66
+ but just fuse the results of other retrieval functions.
67
+ So you have to run more than two retrieval modules before running this function.
68
+ And collect ids and scores result from each retrieval module.
69
+ Make it as tuple and input it to this function.
70
+
71
+ :param ids: The tuple of ids that you want to fuse.
72
+ The length of this must be the same as the length of scores.
73
+ The semantic retrieval ids must be the first index.
74
+ :param scores: The retrieve scores that you want to fuse.
75
+ The length of this must be the same as the length of ids.
76
+ The semantic retrieval scores must be the first index.
77
+ :param top_k: The number of passages to be retrieved.
78
+ :param normalize_method: The normalization method to use.
79
+ There are some normalization method that you can use at the hybrid cc method.
80
+ AutoRAG support following.
81
+ - `mm`: Min-max scaling
82
+ - `tmm`: Theoretical min-max scaling
83
+ - `z`: z-score normalization
84
+ - `dbsf`: 3-sigma normalization
85
+ :param weight: The weight value. If the weight is 1.0, it means the
86
+ weight to the semantic module will be 1.0 and weight to the lexical module will be 0.0.
87
+ :param semantic_theoretical_min_value: This value used by `tmm` normalization method. You can set the
88
+ theoretical minimum value by yourself. Default is -1.
89
+ :param lexical_theoretical_min_value: This value used by `tmm` normalization method. You can set the
90
+ theoretical minimum value by yourself. Default is 0.
91
+ :return: The tuple of ids and fused scores that fused by CC. Plus, the third element is selected weight value.
92
+ """
93
+ assert len(ids) == len(scores), "The length of ids and scores must be the same."
94
+ assert len(ids) > 1, "You must input more than one retrieval results."
95
+ assert top_k > 0, "top_k must be greater than 0."
96
+ assert weight >= 0, "The weight must be greater than 0."
97
+ assert weight <= 1, "The weight must be less than 1."
98
+
99
+ df = pd.DataFrame({
100
+ 'semantic_ids': ids[0],
101
+ 'lexical_ids': ids[1],
102
+ 'semantic_score': scores[0],
103
+ 'lexical_score': scores[1],
104
+ })
105
+
106
+ def cc_pure_apply(row):
107
+ return fuse_per_query(row['semantic_ids'], row['lexical_ids'],
108
+ row['semantic_score'], row['lexical_score'],
109
+ normalize_method=normalize_method,
110
+ weight=weight, top_k=top_k,
111
+ semantic_theoretical_min_value=semantic_theoretical_min_value,
112
+ lexical_theoretical_min_value=lexical_theoretical_min_value)
113
+
114
+ # fixed weight
115
+ df[['cc_id', 'cc_score']] = df.apply(lambda row: cc_pure_apply(row), axis=1,
116
+ result_type='expand')
117
+ return df['cc_id'].tolist(), df['cc_score'].tolist()
118
+
119
+
120
+ def fuse_per_query(semantic_ids: List[str], lexical_ids: List[str],
121
+ semantic_scores: List[float], lexical_scores: List[float],
122
+ normalize_method: str,
123
+ weight: float,
124
+ top_k: int,
125
+ semantic_theoretical_min_value: float,
126
+ lexical_theoretical_min_value: float):
127
+ normalize_func = normalize_method_dict[normalize_method]
128
+ norm_semantic_scores = normalize_func(semantic_scores, semantic_theoretical_min_value)
129
+ norm_lexical_scores = normalize_func(lexical_scores, lexical_theoretical_min_value)
130
+ ids = [semantic_ids, lexical_ids]
131
+ scores = [norm_semantic_scores, norm_lexical_scores]
132
+ df = pd.concat([pd.Series(dict(zip(_id, score))) for _id, score in zip(ids, scores)], axis=1)
133
+ df.columns = ['semantic', 'lexical']
134
+ df = df.fillna(0)
135
+ df['weighted_sum'] = df.mul((weight, 1.0 - weight)).sum(axis=1)
136
+ df = df.sort_values(by='weighted_sum', ascending=False)
137
+ return df.index.tolist()[:top_k], df['weighted_sum'][:top_k].tolist()
@@ -10,7 +10,8 @@ def hybrid_rrf(
10
10
  ids: Tuple,
11
11
  scores: Tuple,
12
12
  top_k: int,
13
- rrf_k: int = 60) -> Tuple[List[List[str]], List[List[float]]]:
13
+ weight: int = 60,
14
+ rrf_k: int = -1, ) -> Tuple[List[List[str]], List[List[float]]]:
14
15
  """
15
16
  Hybrid RRF function.
16
17
  RRF (Rank Reciprocal Fusion) is a method to fuse multiple retrieval results.
@@ -27,15 +28,23 @@ def hybrid_rrf(
27
28
  :param scores: The retrieve scores that you want to fuse.
28
29
  The length of this must be the same as the length of ids.
29
30
  :param top_k: The number of passages to be retrieved.
30
- :param rrf_k: Hyperparameter for RRF.
31
+ :param weight: Hyperparameter for RRF.
32
+ It was originally rrf_k value.
31
33
  Default is 60.
32
34
  For more information, please visit our documentation.
35
+ :param rrf_k: (Deprecated) Hyperparameter for RRF.
36
+ It was originally rrf_k value. Will remove at further version.
33
37
  :return: The tuple of ids and fused scores that fused by RRF.
34
38
  """
35
39
  assert len(ids) == len(scores), "The length of ids and scores must be the same."
36
40
  assert len(ids) > 1, "You must input more than one retrieval results."
37
41
  assert top_k > 0, "top_k must be greater than 0."
38
- assert rrf_k > 0, "rrf_k must be greater than 0."
42
+ assert weight > 0, "rrf_k must be greater than 0."
43
+
44
+ if rrf_k != -1:
45
+ weight = int(rrf_k)
46
+ else:
47
+ weight = int(weight)
39
48
 
40
49
  id_df = pd.DataFrame({f'id_{i}': id_list for i, id_list in enumerate(ids)})
41
50
  score_df = pd.DataFrame({f'score_{i}': score_list for i, score_list in enumerate(scores)})
@@ -44,9 +53,9 @@ def hybrid_rrf(
44
53
  def rrf_pure_apply(row):
45
54
  ids_tuple = tuple(row[[f'id_{i}' for i in range(len(ids))]].values)
46
55
  scores_tuple = tuple(row[[f'score_{i}' for i in range(len(scores))]].values)
47
- return pd.Series(rrf_pure(ids_tuple, scores_tuple, rrf_k, top_k))
56
+ return pd.Series(rrf_pure(ids_tuple, scores_tuple, weight, top_k))
48
57
 
49
- df[['rrf_id', 'rrf_score']] = df.swifter.apply(rrf_pure_apply, axis=1)
58
+ df[['rrf_id', 'rrf_score']] = df.apply(rrf_pure_apply, axis=1)
50
59
  return df['rrf_id'].tolist(), df['rrf_score'].tolist()
51
60
 
52
61