vector-graph-rag 0.2.1__tar.gz → 0.3.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (193) hide show
  1. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/.env.example +8 -0
  2. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/PKG-INFO +88 -13
  3. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/README.md +68 -11
  4. {vector_graph_rag-0.2.1/docs → vector_graph_rag-0.3.0/docs/architecture}/design-philosophy.md +3 -1
  5. {vector_graph_rag-0.2.1/docs → vector_graph_rag-0.3.0/docs/architecture}/how-it-works.md +2 -0
  6. vector_graph_rag-0.3.0/docs/assets/evaluation/api-cost-latency.png +0 -0
  7. vector_graph_rag-0.3.0/docs/assets/evaluation/api-cost-latency.svg +537 -0
  8. vector_graph_rag-0.3.0/docs/assets/evaluation/quality-latency.png +0 -0
  9. vector_graph_rag-0.3.0/docs/assets/evaluation/quality-latency.svg +390 -0
  10. vector_graph_rag-0.3.0/docs/assets/evaluation/retrieval-comparison.png +0 -0
  11. vector_graph_rag-0.3.0/docs/assets/evaluation/retrieval-comparison.svg +689 -0
  12. vector_graph_rag-0.3.0/docs/evaluation.md +121 -0
  13. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/docs/faq.md +1 -1
  14. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/docs/getting-started.md +54 -8
  15. vector_graph_rag-0.3.0/docs/guides/document-import.md +112 -0
  16. vector_graph_rag-0.3.0/docs/guides/embedding-providers.md +79 -0
  17. vector_graph_rag-0.3.0/docs/guides/incremental-updates.md +245 -0
  18. vector_graph_rag-0.3.0/docs/guides/index.md +18 -0
  19. vector_graph_rag-0.3.0/docs/guides/multi-tenancy.md +94 -0
  20. vector_graph_rag-0.3.0/docs/guides/observability.md +174 -0
  21. vector_graph_rag-0.3.0/docs/guides/reranking.md +107 -0
  22. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/docs/index.md +22 -7
  23. {vector_graph_rag-0.2.1/docs → vector_graph_rag-0.3.0/docs/reference}/python-api.md +147 -3
  24. {vector_graph_rag-0.2.1/docs → vector_graph_rag-0.3.0/docs/reference}/rest-api.md +1 -1
  25. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/evaluation/README.md +4 -0
  26. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/evaluation/evaluate.py +59 -7
  27. vector_graph_rag-0.3.0/evaluation/jev/README.md +21 -0
  28. vector_graph_rag-0.3.0/evaluation/jev/api-cost-latency-data.json +77 -0
  29. vector_graph_rag-0.3.0/evaluation/jev/api-cost-latency.md +42 -0
  30. vector_graph_rag-0.3.0/evaluation/jev/comparison-chart-data.json +126 -0
  31. vector_graph_rag-0.3.0/evaluation/jev/historical-500.md +99 -0
  32. vector_graph_rag-0.3.0/evaluation/jev/manifest.json +6009 -0
  33. vector_graph_rag-0.3.0/evaluation/jev/plot_api_comparison.py +184 -0
  34. vector_graph_rag-0.3.0/evaluation/jev/plot_retrieval.py +157 -0
  35. vector_graph_rag-0.3.0/evaluation/jev/results.json +4002 -0
  36. vector_graph_rag-0.3.0/evaluation/jev/summarize.py +86 -0
  37. vector_graph_rag-0.3.0/evaluation/jev/summary.json +226 -0
  38. vector_graph_rag-0.3.0/evaluation/jev/two-stage/README.md +82 -0
  39. vector_graph_rag-0.3.0/evaluation/jev/two-stage/manifest.json +10020 -0
  40. vector_graph_rag-0.3.0/evaluation/jev/two-stage/plot-data.json +62 -0
  41. vector_graph_rag-0.3.0/evaluation/jev/two-stage/plot.py +164 -0
  42. vector_graph_rag-0.3.0/evaluation/jev/two-stage/results.json.gz +0 -0
  43. vector_graph_rag-0.3.0/evaluation/jev/two-stage/summarize.py +38 -0
  44. vector_graph_rag-0.3.0/evaluation/jev/two-stage/summary.json +56 -0
  45. vector_graph_rag-0.3.0/evaluation/jev/two-stage/validation.json +18 -0
  46. vector_graph_rag-0.3.0/evaluation/jev/validation.json +14 -0
  47. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/mkdocs.yml +13 -5
  48. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/pyproject.toml +25 -2
  49. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/src/vector_graph_rag/__init__.py +6 -2
  50. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/src/vector_graph_rag/api/app.py +44 -3
  51. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/src/vector_graph_rag/config.py +114 -3
  52. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/src/vector_graph_rag/graph/knowledge_graph.py +55 -23
  53. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/src/vector_graph_rag/graph/retriever.py +199 -139
  54. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/src/vector_graph_rag/llm/extractor.py +86 -51
  55. vector_graph_rag-0.3.0/src/vector_graph_rag/llm/jev.py +247 -0
  56. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/src/vector_graph_rag/llm/reranker.py +72 -44
  57. vector_graph_rag-0.3.0/src/vector_graph_rag/loaders/__init__.py +217 -0
  58. vector_graph_rag-0.3.0/src/vector_graph_rag/loaders/converter.py +125 -0
  59. vector_graph_rag-0.3.0/src/vector_graph_rag/loaders/docling.py +150 -0
  60. vector_graph_rag-0.3.0/src/vector_graph_rag/loaders/mineru.py +284 -0
  61. vector_graph_rag-0.3.0/src/vector_graph_rag/loaders/url_fetcher.py +179 -0
  62. vector_graph_rag-0.3.0/src/vector_graph_rag/observability.py +134 -0
  63. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/src/vector_graph_rag/rag.py +557 -372
  64. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/src/vector_graph_rag/storage/embeddings.py +30 -8
  65. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/src/vector_graph_rag/storage/milvus.py +413 -178
  66. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/tests/conftest.py +17 -4
  67. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/tests/test_api.py +71 -3
  68. vector_graph_rag-0.3.0/tests/test_api_settings.py +28 -0
  69. vector_graph_rag-0.3.0/tests/test_evaluation_manifest.py +82 -0
  70. vector_graph_rag-0.3.0/tests/test_jev_reranker.py +204 -0
  71. vector_graph_rag-0.3.0/tests/test_jev_two_stage.py +66 -0
  72. vector_graph_rag-0.3.0/tests/test_loaders.py +430 -0
  73. vector_graph_rag-0.3.0/tests/test_observability.py +254 -0
  74. vector_graph_rag-0.3.0/tests/test_rag_passage_order.py +29 -0
  75. vector_graph_rag-0.3.0/tests/test_task_models.py +149 -0
  76. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/uv.lock +2339 -14
  77. vector_graph_rag-0.2.1/docs/evaluation.md +0 -91
  78. vector_graph_rag-0.2.1/src/vector_graph_rag/loaders/__init__.py +0 -167
  79. vector_graph_rag-0.2.1/src/vector_graph_rag/loaders/converter.py +0 -99
  80. vector_graph_rag-0.2.1/src/vector_graph_rag/loaders/url_fetcher.py +0 -153
  81. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/.dockerignore +0 -0
  82. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/.github/workflows/docs.yml +0 -0
  83. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/.github/workflows/release.yml +0 -0
  84. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/.gitignore +0 -0
  85. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/AGENTS.md +0 -0
  86. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/CLAUDE.md +0 -0
  87. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/Dockerfile +0 -0
  88. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/LICENSE +0 -0
  89. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/api/__init__.py +0 -0
  90. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/api/main.py +0 -0
  91. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/api/schemas.py +0 -0
  92. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/docs/assets/logo.png +0 -0
  93. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/docs/assets/logo.svg +0 -0
  94. {vector_graph_rag-0.2.1/docs → vector_graph_rag-0.3.0/docs/guides}/frontend.md +0 -0
  95. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/docs/stylesheets/custom.css +0 -0
  96. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/docs/use-cases.md +0 -0
  97. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/evaluation/data/2wikimultihopqa.json +0 -0
  98. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/evaluation/data/2wikimultihopqa_corpus.json +0 -0
  99. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/evaluation/data/hotpotqa.json +0 -0
  100. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/evaluation/data/hotpotqa_corpus.json +0 -0
  101. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/evaluation/data/musique.json +0 -0
  102. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/evaluation/data/musique_corpus.json +0 -0
  103. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/evaluation/data/ner_cache/2wikimultihopqa_queries.named_entity_output.tsv +0 -0
  104. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/evaluation/data/ner_cache/hotpotqa_queries.named_entity_output.tsv +0 -0
  105. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/evaluation/data/ner_cache/hotpotqa_train_queries.named_entity_output.tsv +0 -0
  106. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/evaluation/data/ner_cache/musique_queries.named_entity_output.tsv +0 -0
  107. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/evaluation/data/ner_cache/sample_queries.named_entity_output.tsv +0 -0
  108. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/evaluation/data/openie_2wikimultihopqa_results_ner_gpt-3.5-turbo-1106_6119.json +0 -0
  109. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/evaluation/data/openie_hotpotqa_results_ner_gpt-3.5-turbo-1106_9221.json +0 -0
  110. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/evaluation/data/openie_musique_results_ner_gpt-3.5-turbo-1106_11656.json +0 -0
  111. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/evaluation/data/openie_test_sample_results_ner_gpt-3.5-turbo-1106_20.json +0 -0
  112. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/evaluation/data/test_sample.json +0 -0
  113. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/evaluation/data/test_sample_corpus.json +0 -0
  114. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/.gitignore +0 -0
  115. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/README.md +0 -0
  116. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/eslint.config.js +0 -0
  117. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/index.html +0 -0
  118. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/package-lock.json +0 -0
  119. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/package.json +0 -0
  120. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/public/vite.svg +0 -0
  121. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/App.css +0 -0
  122. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/App.tsx +0 -0
  123. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/api/client.ts +0 -0
  124. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/api/queries.ts +0 -0
  125. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/assets/react.svg +0 -0
  126. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/components/graph/EntityNode.tsx +0 -0
  127. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/components/graph/GraphCanvas.tsx +0 -0
  128. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/components/graph/GraphLegend.tsx +0 -0
  129. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/components/graph/RelationEdge.tsx +0 -0
  130. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/components/graph/index.ts +0 -0
  131. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/components/import/CreateGraphDialog.tsx +0 -0
  132. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/components/import/FileUploader.tsx +0 -0
  133. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/components/import/GraphSelector.tsx +0 -0
  134. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/components/import/GraphStatsPreview.tsx +0 -0
  135. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/components/import/ImportDialog.tsx +0 -0
  136. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/components/import/ImportProgress.tsx +0 -0
  137. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/components/import/ImportSettings.tsx +0 -0
  138. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/components/import/UrlInput.tsx +0 -0
  139. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/components/panels/AnswerPanel.tsx +0 -0
  140. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/components/panels/NodeDetailPanel.tsx +0 -0
  141. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/components/panels/index.ts +0 -0
  142. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/components/search/SearchInput.tsx +0 -0
  143. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/components/search/index.ts +0 -0
  144. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/components/settings/SettingsDialog.tsx +0 -0
  145. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/components/timeline/ProcessTimeline.tsx +0 -0
  146. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/components/timeline/index.ts +0 -0
  147. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/components/ui/Header.tsx +0 -0
  148. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/components/ui/button.tsx +0 -0
  149. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/components/ui/dialog.tsx +0 -0
  150. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/components/ui/input.tsx +0 -0
  151. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/components/ui/label.tsx +0 -0
  152. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/components/ui/progress.tsx +0 -0
  153. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/components/ui/switch.tsx +0 -0
  154. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/components/ui/tabs.tsx +0 -0
  155. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/hooks/use-toast.ts +0 -0
  156. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/index.css +0 -0
  157. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/main.tsx +0 -0
  158. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/stores/datasetStore.ts +0 -0
  159. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/stores/graphStore.ts +0 -0
  160. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/stores/searchStore.ts +0 -0
  161. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/types/api.ts +0 -0
  162. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/utils/cn.ts +0 -0
  163. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/src/utils/graphLayout.ts +0 -0
  164. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/tsconfig.app.json +0 -0
  165. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/tsconfig.json +0 -0
  166. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/tsconfig.node.json +0 -0
  167. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/frontend/vite.config.ts +0 -0
  168. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/src/vector_graph_rag/api/__init__.py +0 -0
  169. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/src/vector_graph_rag/graph/__init__.py +0 -0
  170. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/src/vector_graph_rag/graph/builder.py +0 -0
  171. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/src/vector_graph_rag/graph/graph.py +0 -0
  172. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/src/vector_graph_rag/llm/__init__.py +0 -0
  173. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/src/vector_graph_rag/llm/cache.py +0 -0
  174. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/src/vector_graph_rag/loaders/chunker.py +0 -0
  175. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/src/vector_graph_rag/models.py +0 -0
  176. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/src/vector_graph_rag/storage/__init__.py +0 -0
  177. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/src/vector_graph_rag/storage/embedding_providers/__init__.py +0 -0
  178. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/src/vector_graph_rag/storage/embedding_providers/google.py +0 -0
  179. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/src/vector_graph_rag/storage/embedding_providers/huggingface.py +0 -0
  180. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/src/vector_graph_rag/storage/embedding_providers/jina.py +0 -0
  181. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/src/vector_graph_rag/storage/embedding_providers/local.py +0 -0
  182. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/src/vector_graph_rag/storage/embedding_providers/mistral.py +0 -0
  183. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/src/vector_graph_rag/storage/embedding_providers/ollama.py +0 -0
  184. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/src/vector_graph_rag/storage/embedding_providers/onnx.py +0 -0
  185. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/src/vector_graph_rag/storage/embedding_providers/openai.py +0 -0
  186. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/src/vector_graph_rag/storage/embedding_providers/utils.py +0 -0
  187. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/src/vector_graph_rag/storage/embedding_providers/voyage.py +0 -0
  188. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/tests/__init__.py +0 -0
  189. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/tests/test_embedding_providers.py +0 -0
  190. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/tests/test_graph.py +0 -0
  191. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/tests/test_milvus_store.py +0 -0
  192. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/tests/test_rag_incremental.py +0 -0
  193. {vector_graph_rag-0.2.1 → vector_graph_rag-0.3.0}/tests/test_rag_metadata_filter.py +0 -0
@@ -99,3 +99,11 @@ MILVUS_URI=./vector_graph_rag.db
99
99
  # VGRAG_ENTITY_COLLECTION=vgrag_entities
100
100
  # VGRAG_RELATION_COLLECTION=vgrag_relations
101
101
  # VGRAG_PASSAGE_COLLECTION=vgrag_passages
102
+
103
+ # Task-specific models override the shared VGRAG_LLM_MODEL.
104
+ # VGRAG_EXTRACTOR_MODEL=gpt-5-mini
105
+ # VGRAG_RERANKER_MODEL=jev
106
+ # VGRAG_ANSWER_MODEL=gpt-4o-mini
107
+ # TYPESAFE_API_KEY=your-key
108
+
109
+ # VGRAG_JEV_MAX_CONCURRENCY=3
@@ -1,6 +1,6 @@
1
- Metadata-Version: 2.4
1
+ Metadata-Version: 2.5
2
2
  Name: vector-graph-rag
3
- Version: 0.2.1
3
+ Version: 0.3.0
4
4
  Summary: A Graph RAG implementation using pure vector search with Milvus
5
5
  Project-URL: Homepage, https://github.com/zilliztech/vector-graph-rag
6
6
  Project-URL: Documentation, https://zilliztech.github.io/vector-graph-rag/
@@ -19,6 +19,7 @@ Classifier: Programming Language :: Python :: 3.11
19
19
  Classifier: Programming Language :: Python :: 3.12
20
20
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
21
21
  Requires-Python: >=3.10
22
+ Requires-Dist: httpx>=0.27
22
23
  Requires-Dist: langchain-core>=0.3.0
23
24
  Requires-Dist: milvus-lite>=2.4.0
24
25
  Requires-Dist: numpy>=1.24.0
@@ -42,6 +43,8 @@ Requires-Dist: mistralai>=1.0; extra == 'all'
42
43
  Requires-Dist: ollama>=0.4; extra == 'all'
43
44
  Requires-Dist: onnxruntime<1.24,>=1.17; (python_version == '3.10') and extra == 'all'
44
45
  Requires-Dist: onnxruntime>=1.17; (python_version >= '3.11') and extra == 'all'
46
+ Requires-Dist: opentelemetry-api>=1.0; extra == 'all'
47
+ Requires-Dist: opentelemetry-sdk>=1.0; extra == 'all'
45
48
  Requires-Dist: pytest-asyncio>=0.21.0; extra == 'all'
46
49
  Requires-Dist: pytest>=7.0.0; extra == 'all'
47
50
  Requires-Dist: ruff>=0.1.0; extra == 'all'
@@ -55,16 +58,24 @@ Provides-Extra: api
55
58
  Requires-Dist: fastapi>=0.109.0; extra == 'api'
56
59
  Requires-Dist: uvicorn[standard]>=0.27.0; extra == 'api'
57
60
  Provides-Extra: dev
61
+ Requires-Dist: opentelemetry-sdk>=1.0; extra == 'dev'
58
62
  Requires-Dist: pytest-asyncio>=0.21.0; extra == 'dev'
59
63
  Requires-Dist: pytest>=7.0.0; extra == 'dev'
60
64
  Requires-Dist: ruff>=0.1.0; extra == 'dev'
65
+ Provides-Extra: docling
66
+ Requires-Dist: docling>=2.0.0; extra == 'docling'
67
+ Requires-Dist: lxml-html-clean; extra == 'docling'
68
+ Requires-Dist: trafilatura>=2.0.0; extra == 'docling'
61
69
  Provides-Extra: docs
62
70
  Requires-Dist: mkdocs-material>=9.0.0; extra == 'docs'
71
+ Provides-Extra: evaluation
72
+ Requires-Dist: matplotlib>=3.9; extra == 'evaluation'
63
73
  Provides-Extra: google
64
74
  Requires-Dist: google-genai>=1.0; extra == 'google'
65
75
  Provides-Extra: hf
66
76
  Requires-Dist: torch>=2.0.0; extra == 'hf'
67
77
  Requires-Dist: transformers>=4.30.0; extra == 'hf'
78
+ Provides-Extra: jev
68
79
  Provides-Extra: jina
69
80
  Requires-Dist: httpx>=0.27; extra == 'jina'
70
81
  Provides-Extra: loaders
@@ -75,8 +86,15 @@ Provides-Extra: local
75
86
  Requires-Dist: einops>=0.8.2; extra == 'local'
76
87
  Requires-Dist: sentence-transformers>=3.0; extra == 'local'
77
88
  Requires-Dist: torch>=2.0.0; extra == 'local'
89
+ Provides-Extra: mineru
90
+ Requires-Dist: lxml-html-clean; extra == 'mineru'
91
+ Requires-Dist: markitdown[docx,pdf]>=0.1.4; extra == 'mineru'
92
+ Requires-Dist: mineru[pipeline]>=3.0.0; extra == 'mineru'
93
+ Requires-Dist: trafilatura>=2.0.0; extra == 'mineru'
78
94
  Provides-Extra: mistral
79
95
  Requires-Dist: mistralai>=1.0; extra == 'mistral'
96
+ Provides-Extra: observability
97
+ Requires-Dist: opentelemetry-api>=1.0; extra == 'observability'
80
98
  Provides-Extra: ollama
81
99
  Requires-Dist: ollama>=0.4; extra == 'ollama'
82
100
  Provides-Extra: onnx
@@ -107,20 +125,24 @@ Description-Content-Type: text/markdown
107
125
  <a href="https://discord.com/invite/FG6hMJStWu"><img src="https://img.shields.io/badge/Discord-chat-7289da?style=flat-square&logo=discord&logoColor=white" alt="Discord"></a>
108
126
  </p>
109
127
 
110
- > 💡 Encode entities and relations as vectors in [Milvus](https://milvus.io/), replace iterative LLM agents with a single reranking pass — achieve state-of-the-art multi-hop retrieval at a fraction of the operational and computational cost.
128
+ > 💡 Encode entities and relations as vectors in [Milvus](https://milvus.io/), retrieve multi-hop evidence with single-pass generative reranking or two-stage Jev scoring, without an iterative search loop.
111
129
 
112
130
  <p align="center">
113
131
  <img src="https://github.com/user-attachments/assets/1185b651-ed72-4408-9dcd-25a74b12835b" alt="Vector Graph RAG Demo" width="800">
114
132
  </p>
115
133
 
134
+ ## What’s New
135
+
136
+ - **Two-stage Jev retrieval reaches the quality–latency Pareto frontier.** See the [evaluation results](evaluation/jev/README.md).
137
+
116
138
  ## ✨ Features
117
139
 
118
140
  - **No Graph Database Required** — Pure vector search with Milvus, no Neo4j or other graph databases needed
119
- - **Single-Pass LLM Reranking** — One LLM call to rerank, no iterative agent loops (unlike IRCoT or multi-step reflection)
141
+ - **Configurable Reranking** — Single-pass generative reranking or two-stage Jev relation and passage scoring
120
142
  - **Knowledge-Intensive Friendly** — Optimized for domains with dense factual content: legal, finance, medical, literature, etc.
121
143
  - **Zero Configuration** — Uses Milvus Lite by default, works out of the box with a single file
122
144
  - **Multi-hop Reasoning** — Subgraph expansion enables complex multi-hop question answering
123
- - **State-of-the-Art Performance** — 87.8% avg Recall@5 on multi-hop QA benchmarks, outperforming HippoRAG
145
+ - **State-of-the-Art Performance** — Two-stage Jev leads the compared baselines on MuSiQue and 2Wiki and reaches the quality–latency Pareto frontier. See the [latest results](evaluation/jev/README.md) and [historical three-dataset evaluation](docs/evaluation.md#historical-results).
124
146
 
125
147
  ## 📦 Installation
126
148
 
@@ -155,6 +177,17 @@ uv add "vector-graph-rag[all]"
155
177
 
156
178
  </details>
157
179
 
180
+ <details>
181
+ <summary><b>With OpenTelemetry tracing</b></summary>
182
+
183
+ ```bash
184
+ pip install "vector-graph-rag[observability]"
185
+ # or
186
+ uv add "vector-graph-rag[observability]"
187
+ ```
188
+
189
+ </details>
190
+
158
191
  ## 🚀 Quick Start
159
192
 
160
193
  ```python
@@ -202,6 +235,8 @@ argument. The method replaces only that source's chunks and graph references.
202
235
  Source-level writes are not transactionally atomic, but the same upsert/delete
203
236
  operation can be retried after an interruption to converge the source back to a
204
237
  consistent state.
238
+ See the [Incremental Updates guide](docs/guides/incremental-updates.md) for parser
239
+ integration, source key design, and retry recommendations.
205
240
 
206
241
  ```python
207
242
  from langchain_core.documents import Document
@@ -211,7 +246,7 @@ rag.upsert_documents_by_source(
211
246
  Document(
212
247
  page_content="Einstein developed relativity at Princeton.",
213
248
  metadata={
214
- "source": "sharepoint:file-123",
249
+ "source": "file:file-123",
215
250
  "triplets": [
216
251
  ["Einstein", "developed", "relativity"],
217
252
  ["Einstein", "worked at", "Princeton"],
@@ -222,7 +257,7 @@ rag.upsert_documents_by_source(
222
257
  extract_triplets=False,
223
258
  )
224
259
 
225
- rag.delete_documents_by_source("sharepoint:file-123")
260
+ rag.delete_documents_by_source("file:file-123")
226
261
  ```
227
262
 
228
263
  > **Migration note:** v0.1.5 exposed `upsert_documents(document_id=...)` and
@@ -236,6 +271,34 @@ for removal in v1.0.0. For explicit full refreshes, use `rebuild_texts()`,
236
271
 
237
272
  </details>
238
273
 
274
+ <details>
275
+ <summary>📈 <b>OpenTelemetry tracing</b> — click to expand</summary>
276
+
277
+ Vector Graph RAG can emit OpenTelemetry spans for ingestion, loaders,
278
+ embeddings, Milvus operations, retrieval, and generation. Configure the
279
+ OpenTelemetry SDK/exporter in your application, then attach request context
280
+ around RAG calls:
281
+
282
+ ```python
283
+ from vector_graph_rag import VectorGraphRAG, observability_context
284
+
285
+ rag = VectorGraphRAG(collection_prefix="my_project")
286
+
287
+ with observability_context(
288
+ request_id="req-123",
289
+ tenant_id="tenant-a",
290
+ graph_name="my_project",
291
+ source="file-123",
292
+ ):
293
+ rag.upsert_documents_by_source(chunks, source="file-123")
294
+ ```
295
+
296
+ The built-in spans avoid document text, prompts, query text, generated answers,
297
+ filters, and full URLs by default. See the
298
+ [Observability guide](docs/guides/observability.md) for setup details.
299
+
300
+ </details>
301
+
239
302
  <details>
240
303
  <summary>🌐 <b>Import from URLs and files</b> — click to expand</summary>
241
304
 
@@ -284,7 +347,7 @@ VGRAG_MILVUS_URI=http://localhost:19530
284
347
 
285
348
  </details>
286
349
 
287
- > 📖 Full Python API reference → [Python API docs](https://zilliztech.github.io/vector-graph-rag/python-api/)
350
+ > 📖 Full Python API reference → [Python API docs](https://zilliztech.github.io/vector-graph-rag/reference/python-api/)
288
351
 
289
352
  ## 🔬 How It Works
290
353
 
@@ -308,11 +371,13 @@ Question → Entity Extraction → Vector Search → Subgraph Expansion → LLM
308
371
  4. **Single-pass LLM reranking** selects the most relevant passages
309
372
  5. Generate answer from selected passages
310
373
 
311
- > 📖 Detailed pipeline walkthrough with diagrams → [How It Works](https://zilliztech.github.io/vector-graph-rag/how-it-works/) · [Design Philosophy](https://zilliztech.github.io/vector-graph-rag/design-philosophy/)
374
+ > 📖 Detailed pipeline walkthrough with diagrams → [How It Works](https://zilliztech.github.io/vector-graph-rag/architecture/how-it-works/) · [Design Philosophy](https://zilliztech.github.io/vector-graph-rag/architecture/design-philosophy/)
312
375
 
313
376
  ## 📊 Evaluation Results
314
377
 
315
- Evaluated on three multi-hop QA benchmarks (Recall@5):
378
+ ### Historical evaluation — before September 2026
379
+
380
+ Before introducing Jev, we evaluated Vector Graph RAG on three multi-hop QA benchmarks (Recall@5):
316
381
 
317
382
  <p align="center">
318
383
  <img src="https://github.com/user-attachments/assets/221a0c8d-a414-4234-ac8b-ba4223aaa2cc" alt="Recall@5: Naive RAG vs Vector Graph RAG" width="700">
@@ -329,6 +394,16 @@ Evaluated on three multi-hop QA benchmarks (Recall@5):
329
394
 
330
395
  > 📖 Detailed analysis and reproduction steps → [Evaluation](https://zilliztech.github.io/vector-graph-rag/evaluation/)
331
396
 
397
+ ### Latest evaluation — October 2026: two-stage Jev
398
+
399
+ **Two-stage Jev reaches the quality–latency Pareto frontier.**
400
+
401
+ **86.07% average Recall@5**, the highest among the compared methods, with **3.13 seconds of additional model-call latency**. On MuSiQue and 2Wiki (1,000 questions each), two-stage Jev reaches the Pareto frontier under the reference latency estimates. This two-dataset result is separate from the historical three-dataset average above.
402
+
403
+ ![Quality and additional model latency](docs/assets/evaluation/quality-latency.png)
404
+
405
+ See [Evaluation Results](evaluation/jev/README.md) for the gains over relation-only Jev and other baselines, timing details and reproduction instructions.
406
+
332
407
  ## 🗄️ Milvus Backend
333
408
 
334
409
  Just change `milvus_uri` to switch between deployment modes:
@@ -397,13 +472,13 @@ cd frontend && npm install && npm run dev
397
472
 
398
473
  See API docs at `http://localhost:8000/docs` after starting the server.
399
474
 
400
- > 📖 Full endpoint reference → [REST API docs](https://zilliztech.github.io/vector-graph-rag/rest-api/) · [Frontend guide](https://zilliztech.github.io/vector-graph-rag/frontend/)
475
+ > 📖 Full endpoint reference → [REST API docs](https://zilliztech.github.io/vector-graph-rag/reference/rest-api/) · [Frontend guide](https://zilliztech.github.io/vector-graph-rag/guides/frontend/)
401
476
 
402
477
  ## 📚 Links
403
478
 
404
479
  - [Documentation](https://zilliztech.github.io/vector-graph-rag/) — full guides, API reference, and architecture details
405
- - [How It Works](https://zilliztech.github.io/vector-graph-rag/how-it-works/) — pipeline walkthrough with diagrams
406
- - [Design Philosophy](https://zilliztech.github.io/vector-graph-rag/design-philosophy/) — why pure vector search, no graph DB
480
+ - [How It Works](https://zilliztech.github.io/vector-graph-rag/architecture/how-it-works/) — pipeline walkthrough with diagrams
481
+ - [Design Philosophy](https://zilliztech.github.io/vector-graph-rag/architecture/design-philosophy/) — why pure vector search, no graph DB
407
482
  - [Milvus](https://milvus.io/) — the vector database powering Vector Graph RAG
408
483
  - [FAQ](https://zilliztech.github.io/vector-graph-rag/faq/) — common questions and troubleshooting
409
484
 
@@ -17,20 +17,24 @@
17
17
  <a href="https://discord.com/invite/FG6hMJStWu"><img src="https://img.shields.io/badge/Discord-chat-7289da?style=flat-square&logo=discord&logoColor=white" alt="Discord"></a>
18
18
  </p>
19
19
 
20
- > 💡 Encode entities and relations as vectors in [Milvus](https://milvus.io/), replace iterative LLM agents with a single reranking pass — achieve state-of-the-art multi-hop retrieval at a fraction of the operational and computational cost.
20
+ > 💡 Encode entities and relations as vectors in [Milvus](https://milvus.io/), retrieve multi-hop evidence with single-pass generative reranking or two-stage Jev scoring, without an iterative search loop.
21
21
 
22
22
  <p align="center">
23
23
  <img src="https://github.com/user-attachments/assets/1185b651-ed72-4408-9dcd-25a74b12835b" alt="Vector Graph RAG Demo" width="800">
24
24
  </p>
25
25
 
26
+ ## What’s New
27
+
28
+ - **Two-stage Jev retrieval reaches the quality–latency Pareto frontier.** See the [evaluation results](evaluation/jev/README.md).
29
+
26
30
  ## ✨ Features
27
31
 
28
32
  - **No Graph Database Required** — Pure vector search with Milvus, no Neo4j or other graph databases needed
29
- - **Single-Pass LLM Reranking** — One LLM call to rerank, no iterative agent loops (unlike IRCoT or multi-step reflection)
33
+ - **Configurable Reranking** — Single-pass generative reranking or two-stage Jev relation and passage scoring
30
34
  - **Knowledge-Intensive Friendly** — Optimized for domains with dense factual content: legal, finance, medical, literature, etc.
31
35
  - **Zero Configuration** — Uses Milvus Lite by default, works out of the box with a single file
32
36
  - **Multi-hop Reasoning** — Subgraph expansion enables complex multi-hop question answering
33
- - **State-of-the-Art Performance** — 87.8% avg Recall@5 on multi-hop QA benchmarks, outperforming HippoRAG
37
+ - **State-of-the-Art Performance** — Two-stage Jev leads the compared baselines on MuSiQue and 2Wiki and reaches the quality–latency Pareto frontier. See the [latest results](evaluation/jev/README.md) and [historical three-dataset evaluation](docs/evaluation.md#historical-results).
34
38
 
35
39
  ## 📦 Installation
36
40
 
@@ -65,6 +69,17 @@ uv add "vector-graph-rag[all]"
65
69
 
66
70
  </details>
67
71
 
72
+ <details>
73
+ <summary><b>With OpenTelemetry tracing</b></summary>
74
+
75
+ ```bash
76
+ pip install "vector-graph-rag[observability]"
77
+ # or
78
+ uv add "vector-graph-rag[observability]"
79
+ ```
80
+
81
+ </details>
82
+
68
83
  ## 🚀 Quick Start
69
84
 
70
85
  ```python
@@ -112,6 +127,8 @@ argument. The method replaces only that source's chunks and graph references.
112
127
  Source-level writes are not transactionally atomic, but the same upsert/delete
113
128
  operation can be retried after an interruption to converge the source back to a
114
129
  consistent state.
130
+ See the [Incremental Updates guide](docs/guides/incremental-updates.md) for parser
131
+ integration, source key design, and retry recommendations.
115
132
 
116
133
  ```python
117
134
  from langchain_core.documents import Document
@@ -121,7 +138,7 @@ rag.upsert_documents_by_source(
121
138
  Document(
122
139
  page_content="Einstein developed relativity at Princeton.",
123
140
  metadata={
124
- "source": "sharepoint:file-123",
141
+ "source": "file:file-123",
125
142
  "triplets": [
126
143
  ["Einstein", "developed", "relativity"],
127
144
  ["Einstein", "worked at", "Princeton"],
@@ -132,7 +149,7 @@ rag.upsert_documents_by_source(
132
149
  extract_triplets=False,
133
150
  )
134
151
 
135
- rag.delete_documents_by_source("sharepoint:file-123")
152
+ rag.delete_documents_by_source("file:file-123")
136
153
  ```
137
154
 
138
155
  > **Migration note:** v0.1.5 exposed `upsert_documents(document_id=...)` and
@@ -146,6 +163,34 @@ for removal in v1.0.0. For explicit full refreshes, use `rebuild_texts()`,
146
163
 
147
164
  </details>
148
165
 
166
+ <details>
167
+ <summary>📈 <b>OpenTelemetry tracing</b> — click to expand</summary>
168
+
169
+ Vector Graph RAG can emit OpenTelemetry spans for ingestion, loaders,
170
+ embeddings, Milvus operations, retrieval, and generation. Configure the
171
+ OpenTelemetry SDK/exporter in your application, then attach request context
172
+ around RAG calls:
173
+
174
+ ```python
175
+ from vector_graph_rag import VectorGraphRAG, observability_context
176
+
177
+ rag = VectorGraphRAG(collection_prefix="my_project")
178
+
179
+ with observability_context(
180
+ request_id="req-123",
181
+ tenant_id="tenant-a",
182
+ graph_name="my_project",
183
+ source="file-123",
184
+ ):
185
+ rag.upsert_documents_by_source(chunks, source="file-123")
186
+ ```
187
+
188
+ The built-in spans avoid document text, prompts, query text, generated answers,
189
+ filters, and full URLs by default. See the
190
+ [Observability guide](docs/guides/observability.md) for setup details.
191
+
192
+ </details>
193
+
149
194
  <details>
150
195
  <summary>🌐 <b>Import from URLs and files</b> — click to expand</summary>
151
196
 
@@ -194,7 +239,7 @@ VGRAG_MILVUS_URI=http://localhost:19530
194
239
 
195
240
  </details>
196
241
 
197
- > 📖 Full Python API reference → [Python API docs](https://zilliztech.github.io/vector-graph-rag/python-api/)
242
+ > 📖 Full Python API reference → [Python API docs](https://zilliztech.github.io/vector-graph-rag/reference/python-api/)
198
243
 
199
244
  ## 🔬 How It Works
200
245
 
@@ -218,11 +263,13 @@ Question → Entity Extraction → Vector Search → Subgraph Expansion → LLM
218
263
  4. **Single-pass LLM reranking** selects the most relevant passages
219
264
  5. Generate answer from selected passages
220
265
 
221
- > 📖 Detailed pipeline walkthrough with diagrams → [How It Works](https://zilliztech.github.io/vector-graph-rag/how-it-works/) · [Design Philosophy](https://zilliztech.github.io/vector-graph-rag/design-philosophy/)
266
+ > 📖 Detailed pipeline walkthrough with diagrams → [How It Works](https://zilliztech.github.io/vector-graph-rag/architecture/how-it-works/) · [Design Philosophy](https://zilliztech.github.io/vector-graph-rag/architecture/design-philosophy/)
222
267
 
223
268
  ## 📊 Evaluation Results
224
269
 
225
- Evaluated on three multi-hop QA benchmarks (Recall@5):
270
+ ### Historical evaluation — before September 2026
271
+
272
+ Before introducing Jev, we evaluated Vector Graph RAG on three multi-hop QA benchmarks (Recall@5):
226
273
 
227
274
  <p align="center">
228
275
  <img src="https://github.com/user-attachments/assets/221a0c8d-a414-4234-ac8b-ba4223aaa2cc" alt="Recall@5: Naive RAG vs Vector Graph RAG" width="700">
@@ -239,6 +286,16 @@ Evaluated on three multi-hop QA benchmarks (Recall@5):
239
286
 
240
287
  > 📖 Detailed analysis and reproduction steps → [Evaluation](https://zilliztech.github.io/vector-graph-rag/evaluation/)
241
288
 
289
+ ### Latest evaluation — October 2026: two-stage Jev
290
+
291
+ **Two-stage Jev reaches the quality–latency Pareto frontier.**
292
+
293
+ **86.07% average Recall@5**, the highest among the compared methods, with **3.13 seconds of additional model-call latency**. On MuSiQue and 2Wiki (1,000 questions each), two-stage Jev reaches the Pareto frontier under the reference latency estimates. This two-dataset result is separate from the historical three-dataset average above.
294
+
295
+ ![Quality and additional model latency](docs/assets/evaluation/quality-latency.png)
296
+
297
+ See [Evaluation Results](evaluation/jev/README.md) for the gains over relation-only Jev and other baselines, timing details and reproduction instructions.
298
+
242
299
  ## 🗄️ Milvus Backend
243
300
 
244
301
  Just change `milvus_uri` to switch between deployment modes:
@@ -307,13 +364,13 @@ cd frontend && npm install && npm run dev
307
364
 
308
365
  See API docs at `http://localhost:8000/docs` after starting the server.
309
366
 
310
- > 📖 Full endpoint reference → [REST API docs](https://zilliztech.github.io/vector-graph-rag/rest-api/) · [Frontend guide](https://zilliztech.github.io/vector-graph-rag/frontend/)
367
+ > 📖 Full endpoint reference → [REST API docs](https://zilliztech.github.io/vector-graph-rag/reference/rest-api/) · [Frontend guide](https://zilliztech.github.io/vector-graph-rag/guides/frontend/)
311
368
 
312
369
  ## 📚 Links
313
370
 
314
371
  - [Documentation](https://zilliztech.github.io/vector-graph-rag/) — full guides, API reference, and architecture details
315
- - [How It Works](https://zilliztech.github.io/vector-graph-rag/how-it-works/) — pipeline walkthrough with diagrams
316
- - [Design Philosophy](https://zilliztech.github.io/vector-graph-rag/design-philosophy/) — why pure vector search, no graph DB
372
+ - [How It Works](https://zilliztech.github.io/vector-graph-rag/architecture/how-it-works/) — pipeline walkthrough with diagrams
373
+ - [Design Philosophy](https://zilliztech.github.io/vector-graph-rag/architecture/design-philosophy/) — why pure vector search, no graph DB
317
374
  - [Milvus](https://milvus.io/) — the vector database powering Vector Graph RAG
318
375
  - [FAQ](https://zilliztech.github.io/vector-graph-rag/faq/) — common questions and troubleshooting
319
376
 
@@ -1,5 +1,7 @@
1
1
  # Design Philosophy
2
2
 
3
+ > The single-pass descriptions below cover the default generative reranker. Jev uses two-stage relation and passage scoring; see [models and reranking](../guides/reranking.md) for that pipeline and configuration.
4
+
3
5
  Vector Graph RAG is built on a simple but powerful observation: **you do not need a graph database to do Graph RAG**. By encoding entities, relations, and passages as vectors in Milvus, and replacing iterative LLM agents with a single reranking pass, we achieve competitive retrieval quality at a fraction of the operational and computational cost.
4
6
 
5
7
  This page explains the reasoning behind these choices, the trade-offs involved, and how the system compares to alternative approaches.
@@ -250,7 +252,7 @@ flowchart TB
250
252
  | **Vector Graph RAG** | 73.0% | **96.3%** | **94.1%** | **87.8%** |
251
253
 
252
254
  > [!INFO]
253
- > Recall@5 on standard multi-hop QA benchmarks. Vector Graph RAG achieves the highest average score while using fewer LLM calls and no graph database. See [Evaluation](evaluation.md) for methodology details.
255
+ > Recall@5 on standard multi-hop QA benchmarks. Vector Graph RAG achieves the highest average score while using fewer LLM calls and no graph database. See [Evaluation](../evaluation.md) for methodology details.
254
256
 
255
257
  ### Key Differentiators
256
258
 
@@ -1,5 +1,7 @@
1
1
  # How It Works
2
2
 
3
+ > The single-pass descriptions below cover the default generative reranker. Jev uses two-stage relation and passage scoring; see [models and reranking](../guides/reranking.md) for that pipeline and configuration.
4
+
3
5
  ## Overview
4
6
 
5
7
  Vector Graph RAG processes documents and answers questions through two main pipelines: **indexing** (offline) and **querying** (online).