vector-graph-rag 0.3.1__tar.gz → 0.4.1__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 (206) hide show
  1. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/.env.example +5 -3
  2. vector_graph_rag-0.4.1/.github/workflows/release.yml +69 -0
  3. vector_graph_rag-0.4.1/CHANGELOG.md +35 -0
  4. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/PKG-INFO +3 -3
  5. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/README.md +1 -1
  6. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/architecture/design-philosophy.md +5 -9
  7. vector_graph_rag-0.4.1/docs/assets/evaluation/quality-latency.png +0 -0
  8. vector_graph_rag-0.4.1/docs/assets/evaluation/quality-latency.svg +456 -0
  9. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/evaluation.md +17 -18
  10. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/guides/incremental-updates.md +13 -0
  11. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/guides/reranking.md +17 -11
  12. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/index.md +3 -3
  13. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/reference/python-api.md +16 -4
  14. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/reference/rest-api.md +5 -0
  15. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/README.md +11 -9
  16. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/evaluate.py +4 -4
  17. vector_graph_rag-0.4.1/evaluation/jev/README.md +15 -0
  18. vector_graph_rag-0.4.1/evaluation/jev/two-stage/README.md +118 -0
  19. vector_graph_rag-0.4.1/evaluation/jev/two-stage/calibrate_latency.py +19 -0
  20. vector_graph_rag-0.3.1/evaluation/jev/two-stage/plot-data.json → vector_graph_rag-0.4.1/evaluation/jev/two-stage/chart-data.json +38 -18
  21. vector_graph_rag-0.4.1/evaluation/jev/two-stage/compare_versions.py +52 -0
  22. vector_graph_rag-0.4.1/evaluation/jev/two-stage/comparison.csv +19 -0
  23. vector_graph_rag-0.4.1/evaluation/jev/two-stage/flash-summary.json +218 -0
  24. vector_graph_rag-0.4.1/evaluation/jev/two-stage/jev114-audit.json +275 -0
  25. vector_graph_rag-0.4.1/evaluation/jev/two-stage/jev114-latency-calibration.json +811 -0
  26. vector_graph_rag-0.4.1/evaluation/jev/two-stage/plot.py +34 -0
  27. vector_graph_rag-0.4.1/evaluation/jev/two-stage/results.json.gz +0 -0
  28. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/jev/two-stage/summarize.py +5 -1
  29. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/jev/two-stage/summary.json +10 -20
  30. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/jev/two-stage/validation.json +2 -1
  31. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/pyproject.toml +2 -2
  32. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/__init__.py +1 -1
  33. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/api/app.py +21 -11
  34. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/config.py +4 -1
  35. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/graph/builder.py +6 -4
  36. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/graph/graph.py +4 -0
  37. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/llm/cache.py +3 -3
  38. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/llm/extractor.py +9 -7
  39. vector_graph_rag-0.4.1/src/vector_graph_rag/llm/generation.py +53 -0
  40. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/llm/reranker.py +23 -26
  41. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/loaders/chunker.py +10 -0
  42. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/rag.py +10 -12
  43. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/milvus.py +19 -21
  44. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/conftest.py +1 -1
  45. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/test_api.py +135 -1
  46. vector_graph_rag-0.4.1/tests/test_generation_api.py +102 -0
  47. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/test_graph.py +26 -0
  48. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/test_loaders.py +32 -0
  49. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/test_observability.py +7 -4
  50. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/test_rag_incremental.py +80 -0
  51. vector_graph_rag-0.4.1/tests/test_stats.py +148 -0
  52. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/uv.lock +2 -2
  53. vector_graph_rag-0.3.1/.github/workflows/release.yml +0 -38
  54. vector_graph_rag-0.3.1/docs/assets/evaluation/api-cost-latency.png +0 -0
  55. vector_graph_rag-0.3.1/docs/assets/evaluation/api-cost-latency.svg +0 -537
  56. vector_graph_rag-0.3.1/docs/assets/evaluation/quality-latency.png +0 -0
  57. vector_graph_rag-0.3.1/docs/assets/evaluation/quality-latency.svg +0 -390
  58. vector_graph_rag-0.3.1/docs/assets/evaluation/retrieval-comparison.png +0 -0
  59. vector_graph_rag-0.3.1/docs/assets/evaluation/retrieval-comparison.svg +0 -689
  60. vector_graph_rag-0.3.1/evaluation/jev/README.md +0 -21
  61. vector_graph_rag-0.3.1/evaluation/jev/api-cost-latency-data.json +0 -77
  62. vector_graph_rag-0.3.1/evaluation/jev/api-cost-latency.md +0 -42
  63. vector_graph_rag-0.3.1/evaluation/jev/comparison-chart-data.json +0 -126
  64. vector_graph_rag-0.3.1/evaluation/jev/historical-500.md +0 -99
  65. vector_graph_rag-0.3.1/evaluation/jev/manifest.json +0 -6009
  66. vector_graph_rag-0.3.1/evaluation/jev/plot_api_comparison.py +0 -184
  67. vector_graph_rag-0.3.1/evaluation/jev/plot_retrieval.py +0 -157
  68. vector_graph_rag-0.3.1/evaluation/jev/results.json +0 -4002
  69. vector_graph_rag-0.3.1/evaluation/jev/summarize.py +0 -86
  70. vector_graph_rag-0.3.1/evaluation/jev/summary.json +0 -226
  71. vector_graph_rag-0.3.1/evaluation/jev/two-stage/README.md +0 -82
  72. vector_graph_rag-0.3.1/evaluation/jev/two-stage/plot.py +0 -164
  73. vector_graph_rag-0.3.1/evaluation/jev/two-stage/results.json.gz +0 -0
  74. vector_graph_rag-0.3.1/evaluation/jev/validation.json +0 -14
  75. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/.dockerignore +0 -0
  76. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/.github/workflows/docs.yml +0 -0
  77. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/.gitignore +0 -0
  78. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/AGENTS.md +0 -0
  79. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/CLAUDE.md +0 -0
  80. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/Dockerfile +0 -0
  81. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/LICENSE +0 -0
  82. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/api/__init__.py +0 -0
  83. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/api/main.py +0 -0
  84. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/api/schemas.py +0 -0
  85. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/architecture/how-it-works.md +0 -0
  86. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/assets/logo.png +0 -0
  87. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/assets/logo.svg +0 -0
  88. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/faq.md +0 -0
  89. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/getting-started.md +0 -0
  90. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/guides/document-import.md +0 -0
  91. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/guides/embedding-providers.md +0 -0
  92. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/guides/frontend.md +0 -0
  93. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/guides/index.md +0 -0
  94. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/guides/multi-tenancy.md +0 -0
  95. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/guides/observability.md +0 -0
  96. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/stylesheets/custom.css +0 -0
  97. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/use-cases.md +0 -0
  98. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/data/2wikimultihopqa.json +0 -0
  99. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/data/2wikimultihopqa_corpus.json +0 -0
  100. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/data/hotpotqa.json +0 -0
  101. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/data/hotpotqa_corpus.json +0 -0
  102. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/data/musique.json +0 -0
  103. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/data/musique_corpus.json +0 -0
  104. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/data/ner_cache/2wikimultihopqa_queries.named_entity_output.tsv +0 -0
  105. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/data/ner_cache/hotpotqa_queries.named_entity_output.tsv +0 -0
  106. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/data/ner_cache/hotpotqa_train_queries.named_entity_output.tsv +0 -0
  107. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/data/ner_cache/musique_queries.named_entity_output.tsv +0 -0
  108. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/data/ner_cache/sample_queries.named_entity_output.tsv +0 -0
  109. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/data/openie_2wikimultihopqa_results_ner_gpt-3.5-turbo-1106_6119.json +0 -0
  110. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/data/openie_hotpotqa_results_ner_gpt-3.5-turbo-1106_9221.json +0 -0
  111. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/data/openie_musique_results_ner_gpt-3.5-turbo-1106_11656.json +0 -0
  112. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/data/openie_test_sample_results_ner_gpt-3.5-turbo-1106_20.json +0 -0
  113. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/data/test_sample.json +0 -0
  114. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/data/test_sample_corpus.json +0 -0
  115. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/jev/two-stage/manifest.json +0 -0
  116. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/.gitignore +0 -0
  117. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/README.md +0 -0
  118. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/eslint.config.js +0 -0
  119. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/index.html +0 -0
  120. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/package-lock.json +0 -0
  121. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/package.json +0 -0
  122. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/public/vite.svg +0 -0
  123. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/App.css +0 -0
  124. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/App.tsx +0 -0
  125. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/api/client.ts +0 -0
  126. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/api/queries.ts +0 -0
  127. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/assets/react.svg +0 -0
  128. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/graph/EntityNode.tsx +0 -0
  129. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/graph/GraphCanvas.tsx +0 -0
  130. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/graph/GraphLegend.tsx +0 -0
  131. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/graph/RelationEdge.tsx +0 -0
  132. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/graph/index.ts +0 -0
  133. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/import/CreateGraphDialog.tsx +0 -0
  134. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/import/FileUploader.tsx +0 -0
  135. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/import/GraphSelector.tsx +0 -0
  136. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/import/GraphStatsPreview.tsx +0 -0
  137. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/import/ImportDialog.tsx +0 -0
  138. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/import/ImportProgress.tsx +0 -0
  139. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/import/ImportSettings.tsx +0 -0
  140. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/import/UrlInput.tsx +0 -0
  141. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/panels/AnswerPanel.tsx +0 -0
  142. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/panels/NodeDetailPanel.tsx +0 -0
  143. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/panels/index.ts +0 -0
  144. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/search/SearchInput.tsx +0 -0
  145. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/search/index.ts +0 -0
  146. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/settings/SettingsDialog.tsx +0 -0
  147. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/timeline/ProcessTimeline.tsx +0 -0
  148. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/timeline/index.ts +0 -0
  149. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/ui/Header.tsx +0 -0
  150. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/ui/button.tsx +0 -0
  151. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/ui/dialog.tsx +0 -0
  152. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/ui/input.tsx +0 -0
  153. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/ui/label.tsx +0 -0
  154. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/ui/progress.tsx +0 -0
  155. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/ui/switch.tsx +0 -0
  156. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/ui/tabs.tsx +0 -0
  157. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/hooks/use-toast.ts +0 -0
  158. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/index.css +0 -0
  159. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/main.tsx +0 -0
  160. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/stores/datasetStore.ts +0 -0
  161. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/stores/graphStore.ts +0 -0
  162. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/stores/searchStore.ts +0 -0
  163. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/types/api.ts +0 -0
  164. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/utils/cn.ts +0 -0
  165. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/utils/graphLayout.ts +0 -0
  166. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/tsconfig.app.json +0 -0
  167. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/tsconfig.json +0 -0
  168. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/tsconfig.node.json +0 -0
  169. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/vite.config.ts +0 -0
  170. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/mkdocs.yml +0 -0
  171. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/api/__init__.py +0 -0
  172. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/graph/__init__.py +0 -0
  173. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/graph/knowledge_graph.py +0 -0
  174. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/graph/retriever.py +0 -0
  175. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/llm/__init__.py +0 -0
  176. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/llm/jev.py +0 -0
  177. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/loaders/__init__.py +0 -0
  178. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/loaders/converter.py +0 -0
  179. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/loaders/docling.py +0 -0
  180. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/loaders/mineru.py +0 -0
  181. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/loaders/url_fetcher.py +0 -0
  182. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/models.py +0 -0
  183. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/observability.py +0 -0
  184. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/__init__.py +0 -0
  185. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/__init__.py +0 -0
  186. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/google.py +0 -0
  187. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/huggingface.py +0 -0
  188. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/jina.py +0 -0
  189. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/local.py +0 -0
  190. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/mistral.py +0 -0
  191. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/ollama.py +0 -0
  192. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/onnx.py +0 -0
  193. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/openai.py +0 -0
  194. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/utils.py +0 -0
  195. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/voyage.py +0 -0
  196. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embeddings.py +0 -0
  197. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/__init__.py +0 -0
  198. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/test_api_settings.py +0 -0
  199. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/test_embedding_providers.py +0 -0
  200. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/test_evaluation_manifest.py +0 -0
  201. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/test_jev_reranker.py +0 -0
  202. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/test_jev_two_stage.py +0 -0
  203. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/test_milvus_store.py +0 -0
  204. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/test_rag_metadata_filter.py +0 -0
  205. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/test_rag_passage_order.py +0 -0
  206. {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/test_task_models.py +0 -0
@@ -36,7 +36,9 @@ MILVUS_URI=./vector_graph_rag.db
36
36
  # Model Configuration (Optional - uses VGRAG_ prefix)
37
37
  # ============================================================================
38
38
  # LLM model for triplet extraction and reranking
39
- # VGRAG_LLM_MODEL=gpt-4o-mini
39
+ # GPT-6 uses Responses; other configured models use Chat Completions.
40
+ # VGRAG_LLM_MODEL=gpt-6-luna
41
+ # VGRAG_LLM_REASONING_EFFORT=medium
40
42
 
41
43
  # Embedding model (HuggingFace model name or OpenAI model name)
42
44
  # VGRAG_EMBEDDING_MODEL=facebook/contriever
@@ -101,9 +103,9 @@ MILVUS_URI=./vector_graph_rag.db
101
103
  # VGRAG_PASSAGE_COLLECTION=vgrag_passages
102
104
 
103
105
  # Task-specific models override the shared VGRAG_LLM_MODEL.
104
- # VGRAG_EXTRACTOR_MODEL=gpt-5-mini
106
+ # VGRAG_EXTRACTOR_MODEL=gpt-6-luna
105
107
  # VGRAG_RERANKER_MODEL=jev
106
- # VGRAG_ANSWER_MODEL=gpt-4o-mini
108
+ # VGRAG_ANSWER_MODEL=gpt-6-luna
107
109
  # TYPESAFE_API_KEY=your-key
108
110
 
109
111
  # VGRAG_JEV_MAX_CONCURRENCY=3
@@ -0,0 +1,69 @@
1
+ # Push a v-prefixed tag only after the release pull request passes validation.
2
+ name: Validate and Publish Python Package
3
+
4
+ on:
5
+ pull_request:
6
+ branches: [main]
7
+ push:
8
+ tags: ["v*"]
9
+
10
+ permissions:
11
+ contents: read
12
+
13
+ jobs:
14
+ validate:
15
+ name: Validate Python ${{ matrix.python-version }}
16
+ runs-on: ubuntu-latest
17
+ strategy:
18
+ fail-fast: false
19
+ matrix:
20
+ python-version: ["3.10", "3.12"]
21
+ steps:
22
+ - uses: actions/checkout@v4
23
+ - uses: astral-sh/setup-uv@v6
24
+ - name: Install test dependencies
25
+ run: uv sync --locked --python '${{ matrix.python-version }}' --extra dev --extra api
26
+ - name: Check package and tag versions
27
+ run: |
28
+ uv run --no-sync python - <<'PY'
29
+ import os
30
+ from importlib.metadata import version
31
+ from vector_graph_rag import __version__
32
+
33
+ package_version = version("vector-graph-rag")
34
+ assert package_version == __version__, (package_version, __version__)
35
+ if os.environ["GITHUB_REF_TYPE"] == "tag":
36
+ assert os.environ["GITHUB_REF_NAME"] == f"v{package_version}"
37
+ print(f"Validated version {package_version}")
38
+ PY
39
+ - name: Run tests
40
+ run: uv run --no-sync pytest tests -q
41
+ - name: Build distributions
42
+ run: uv build
43
+ - name: Verify wheel installation in isolation
44
+ run: |
45
+ uv run --isolated --no-project --python '${{ matrix.python-version }}' \
46
+ --with ./dist/vector_graph_rag-*.whl python -c \
47
+ 'from importlib.metadata import version; from vector_graph_rag import Settings, VectorGraphRAG, __version__; assert version("vector-graph-rag") == __version__; print(__version__)'
48
+ - name: Save validated distributions
49
+ if: matrix.python-version == '3.12'
50
+ uses: actions/upload-artifact@v4
51
+ with:
52
+ name: distributions
53
+ path: dist/
54
+
55
+ publish:
56
+ name: Publish to PyPI
57
+ if: github.event_name == 'push' && startsWith(github.ref, 'refs/tags/v')
58
+ needs: validate
59
+ runs-on: ubuntu-latest
60
+ environment: pypi
61
+ permissions:
62
+ id-token: write
63
+ steps:
64
+ - uses: actions/download-artifact@v4
65
+ with:
66
+ name: distributions
67
+ path: dist/
68
+ - name: Publish validated distributions
69
+ uses: pypa/gh-action-pypi-publish@release/v1
@@ -0,0 +1,35 @@
1
+ # Changelog
2
+
3
+ ## Unreleased
4
+
5
+ ## 0.4.1
6
+
7
+ ### Fixes
8
+
9
+ - Preserve entity/passage links for every chunk that shares a relation, including full rebuilds, incremental source updates and passage creation. Source deletion can now clean up shared entities after every source has been removed.
10
+ - Reject invalid chunk sizes and overlap values before importing documents. Mixed short/long file imports can no longer report success while silently omitting text because of an invalid character-splitting step.
11
+ - Read knowledge-base statistics from strongly consistent Milvus counts across all sources. Counts reflect incremental updates, deletions and reconnects; storage failures raise an error and return HTTP 500 through the REST statistics endpoint.
12
+
13
+ ### Documentation
14
+
15
+ - Add the Jev 1.14 evaluation report, paired latency calibration and updated quality–latency comparison.
16
+ - Document current knowledge-base statistics, storage failures and concurrent-update behavior.
17
+
18
+ ### Upgrading
19
+
20
+ The shared-relation fix applies to new writes. Existing missing adjacency links are not repaired automatically. Rebuild affected knowledge bases with `rebuild_documents()` using the complete corpus and its source metadata. A rebuild replaces all data under the selected collection prefix, so include every source that should remain available.
21
+
22
+ ## 0.4.0
23
+
24
+ ### What's changed
25
+
26
+ - Default generation tasks now use GPT-6 Luna through Responses with medium reasoning: triplet extraction, entity extraction, relationship reranking and answer generation.
27
+ - Cache keys distinguish the Responses interface and reasoning effort. Incomplete, refused or empty Responses outputs are rejected instead of cached as successful answers.
28
+ - Retrieval evaluation now compares Jev with GPT-6 Luna and official DeepSeek V4.1 Flash. The report retains the September/October 2026 evaluation timeline, reproducible Jev evidence and a link to superseded experiments.
29
+ - Publishing now requires passing tests on Python 3.10 and 3.12, matching package/tag versions, and an isolated wheel installation check.
30
+
31
+ ### Upgrading
32
+
33
+ The default model changed from GPT-4o-mini to GPT-6 Luna. Custom OpenAI-compatible endpoints must support Responses when using GPT-6 models. Explicitly configured non-GPT-6 models retain Chat Completions; set `VGRAG_LLM_MODEL` explicitly to retain your chosen model. The OpenAI SDK minimum is now 1.66.0.
34
+
35
+ Reasoning defaults to `medium` and can be configured with `VGRAG_LLM_REASONING_EFFORT`. Existing cache files are preserved, but GPT-6 Responses requests use separate cache keys. DeepSeek is an evaluation baseline, not the runtime default. Frozen benchmark results are unchanged by the runtime migration.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.5
2
2
  Name: vector-graph-rag
3
- Version: 0.3.1
3
+ Version: 0.4.1
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/
@@ -23,7 +23,7 @@ Requires-Dist: httpx>=0.27
23
23
  Requires-Dist: langchain-core>=0.3.0
24
24
  Requires-Dist: milvus-lite<3,>=2.4.0
25
25
  Requires-Dist: numpy>=1.24.0
26
- Requires-Dist: openai>=1.0.0
26
+ Requires-Dist: openai>=1.66.0
27
27
  Requires-Dist: pydantic-settings>=2.0.0
28
28
  Requires-Dist: pydantic>=2.0.0
29
29
  Requires-Dist: pymilvus<2.6.10,>=2.4.0
@@ -398,7 +398,7 @@ Before introducing Jev, we evaluated Vector Graph RAG on three multi-hop QA benc
398
398
 
399
399
  **Two-stage Jev reaches the quality–latency Pareto frontier.**
400
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.
401
+ **Jev 1.14 achieves 86.61% average Recall@5**, the highest among the compared methods, with **approximately 4.9 seconds of estimated direct API latency**. On MuSiQue and 2Wiki (1,000 questions each), two-stage Jev reaches the Pareto frontier using the displayed timings. This two-dataset result is separate from the historical three-dataset average above.
402
402
 
403
403
  ![Quality and additional model latency](docs/assets/evaluation/quality-latency.png)
404
404
 
@@ -290,7 +290,7 @@ Before introducing Jev, we evaluated Vector Graph RAG on three multi-hop QA benc
290
290
 
291
291
  **Two-stage Jev reaches the quality–latency Pareto frontier.**
292
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.
293
+ **Jev 1.14 achieves 86.61% average Recall@5**, the highest among the compared methods, with **approximately 4.9 seconds of estimated direct API latency**. On MuSiQue and 2Wiki (1,000 questions each), two-stage Jev reaches the Pareto frontier using the displayed timings. This two-dataset result is separate from the historical three-dataset average above.
294
294
 
295
295
  ![Quality and additional model latency](docs/assets/evaluation/quality-latency.png)
296
296
 
@@ -119,15 +119,11 @@ The key insight is that **vector search combined with subgraph expansion already
119
119
 
120
120
  With these three mechanisms working together, the candidate set is already rich and relevant. A single LLM reranking pass is sufficient to select the best relations from this high-quality pool.
121
121
 
122
- ### The Cost Advantage
122
+ ### Model Calls and Cost
123
123
 
124
- Each LLM call adds latency (typically 1–3 seconds) and cost. For a system processing thousands of queries per day, the difference between 2 and 5 LLM calls per query is substantial:
124
+ Avoiding an iterative retrieval loop reduces the number of dependent model calls. Actual latency and cost also depend on prompt size, output length, reasoning settings, provider queueing and request concurrency; call counts alone do not establish a speedup or cost reduction.
125
125
 
126
- | Metric | Iterative (5 calls) | Single-Pass (2 calls) | Savings |
127
- |--------|---------------------|----------------------|---------|
128
- | **Latency** | ~5–15s | ~2–6s | 2–3x faster |
129
- | **Cost** (GPT-4o-mini) | ~5x base | ~2x base | 60% cheaper |
130
- | **Cost** (GPT-4o) | ~5x base | ~2x base | 60% cheaper |
126
+ See the [retrieval evaluation](../evaluation.md#jev-reranker-evaluation) for measured Jev, GPT-6 Luna and DeepSeek V4.1 Flash quality and model-call latency. Those retrieval measurements do not benchmark extraction or answer generation.
131
127
 
132
128
  > [!TIP]
133
129
  > For applications where latency and cost are secondary to accuracy on extremely complex queries (5+ hop chains, ambiguous entity resolution), iterative approaches may still be worth the overhead. See [When to Consider Alternatives](#7-when-to-consider-alternatives).
@@ -242,7 +238,7 @@ flowchart TB
242
238
  | **Local-first** | Yes | Yes | Partial | No | No | **Yes (Milvus Lite)** |
243
239
  | **Setup complexity** | Minimal | Moderate | Moderate | High | High | **Minimal** |
244
240
 
245
- ### Performance on Multi-Hop QA Benchmarks
241
+ ### Historical Performance on Multi-Hop QA Benchmarks
246
242
 
247
243
  | Method | MuSiQue | HotpotQA | 2WikiMultiHopQA | Average |
248
244
  |--------|---------|----------|-----------------|---------|
@@ -252,7 +248,7 @@ flowchart TB
252
248
  | **Vector Graph RAG** | 73.0% | **96.3%** | **94.1%** | **87.8%** |
253
249
 
254
250
  > [!INFO]
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.
251
+ > Historical three-dataset Recall@5 comparison. The October 16, 2026 two-stage Jev 1.14 evaluation reaches 77.73% on MuSiQue and 95.50% on 2Wiki (86.61% average), the highest-quality point on the observed quality–latency Pareto frontier. Its two-dataset scope is separate from this table. See [Evaluation](../evaluation.md#jev-reranker-evaluation) for methodology and paired comparison with Jev 1.13.
256
252
 
257
253
  ### Key Differentiators
258
254