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.
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/.env.example +5 -3
- vector_graph_rag-0.4.1/.github/workflows/release.yml +69 -0
- vector_graph_rag-0.4.1/CHANGELOG.md +35 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/PKG-INFO +3 -3
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/README.md +1 -1
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/architecture/design-philosophy.md +5 -9
- vector_graph_rag-0.4.1/docs/assets/evaluation/quality-latency.png +0 -0
- vector_graph_rag-0.4.1/docs/assets/evaluation/quality-latency.svg +456 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/evaluation.md +17 -18
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/guides/incremental-updates.md +13 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/guides/reranking.md +17 -11
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/index.md +3 -3
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/reference/python-api.md +16 -4
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/reference/rest-api.md +5 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/README.md +11 -9
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/evaluate.py +4 -4
- vector_graph_rag-0.4.1/evaluation/jev/README.md +15 -0
- vector_graph_rag-0.4.1/evaluation/jev/two-stage/README.md +118 -0
- vector_graph_rag-0.4.1/evaluation/jev/two-stage/calibrate_latency.py +19 -0
- 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
- vector_graph_rag-0.4.1/evaluation/jev/two-stage/compare_versions.py +52 -0
- vector_graph_rag-0.4.1/evaluation/jev/two-stage/comparison.csv +19 -0
- vector_graph_rag-0.4.1/evaluation/jev/two-stage/flash-summary.json +218 -0
- vector_graph_rag-0.4.1/evaluation/jev/two-stage/jev114-audit.json +275 -0
- vector_graph_rag-0.4.1/evaluation/jev/two-stage/jev114-latency-calibration.json +811 -0
- vector_graph_rag-0.4.1/evaluation/jev/two-stage/plot.py +34 -0
- vector_graph_rag-0.4.1/evaluation/jev/two-stage/results.json.gz +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/jev/two-stage/summarize.py +5 -1
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/jev/two-stage/summary.json +10 -20
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/jev/two-stage/validation.json +2 -1
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/pyproject.toml +2 -2
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/__init__.py +1 -1
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/api/app.py +21 -11
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/config.py +4 -1
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/graph/builder.py +6 -4
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/graph/graph.py +4 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/llm/cache.py +3 -3
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/llm/extractor.py +9 -7
- vector_graph_rag-0.4.1/src/vector_graph_rag/llm/generation.py +53 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/llm/reranker.py +23 -26
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/loaders/chunker.py +10 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/rag.py +10 -12
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/milvus.py +19 -21
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/conftest.py +1 -1
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/test_api.py +135 -1
- vector_graph_rag-0.4.1/tests/test_generation_api.py +102 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/test_graph.py +26 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/test_loaders.py +32 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/test_observability.py +7 -4
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/test_rag_incremental.py +80 -0
- vector_graph_rag-0.4.1/tests/test_stats.py +148 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/uv.lock +2 -2
- vector_graph_rag-0.3.1/.github/workflows/release.yml +0 -38
- vector_graph_rag-0.3.1/docs/assets/evaluation/api-cost-latency.png +0 -0
- vector_graph_rag-0.3.1/docs/assets/evaluation/api-cost-latency.svg +0 -537
- vector_graph_rag-0.3.1/docs/assets/evaluation/quality-latency.png +0 -0
- vector_graph_rag-0.3.1/docs/assets/evaluation/quality-latency.svg +0 -390
- vector_graph_rag-0.3.1/docs/assets/evaluation/retrieval-comparison.png +0 -0
- vector_graph_rag-0.3.1/docs/assets/evaluation/retrieval-comparison.svg +0 -689
- vector_graph_rag-0.3.1/evaluation/jev/README.md +0 -21
- vector_graph_rag-0.3.1/evaluation/jev/api-cost-latency-data.json +0 -77
- vector_graph_rag-0.3.1/evaluation/jev/api-cost-latency.md +0 -42
- vector_graph_rag-0.3.1/evaluation/jev/comparison-chart-data.json +0 -126
- vector_graph_rag-0.3.1/evaluation/jev/historical-500.md +0 -99
- vector_graph_rag-0.3.1/evaluation/jev/manifest.json +0 -6009
- vector_graph_rag-0.3.1/evaluation/jev/plot_api_comparison.py +0 -184
- vector_graph_rag-0.3.1/evaluation/jev/plot_retrieval.py +0 -157
- vector_graph_rag-0.3.1/evaluation/jev/results.json +0 -4002
- vector_graph_rag-0.3.1/evaluation/jev/summarize.py +0 -86
- vector_graph_rag-0.3.1/evaluation/jev/summary.json +0 -226
- vector_graph_rag-0.3.1/evaluation/jev/two-stage/README.md +0 -82
- vector_graph_rag-0.3.1/evaluation/jev/two-stage/plot.py +0 -164
- vector_graph_rag-0.3.1/evaluation/jev/two-stage/results.json.gz +0 -0
- vector_graph_rag-0.3.1/evaluation/jev/validation.json +0 -14
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/.dockerignore +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/.github/workflows/docs.yml +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/.gitignore +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/AGENTS.md +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/CLAUDE.md +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/Dockerfile +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/LICENSE +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/api/__init__.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/api/main.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/api/schemas.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/architecture/how-it-works.md +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/assets/logo.png +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/assets/logo.svg +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/faq.md +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/getting-started.md +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/guides/document-import.md +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/guides/embedding-providers.md +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/guides/frontend.md +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/guides/index.md +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/guides/multi-tenancy.md +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/guides/observability.md +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/stylesheets/custom.css +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/docs/use-cases.md +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/data/2wikimultihopqa.json +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/data/2wikimultihopqa_corpus.json +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/data/hotpotqa.json +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/data/hotpotqa_corpus.json +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/data/musique.json +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/data/musique_corpus.json +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/data/ner_cache/2wikimultihopqa_queries.named_entity_output.tsv +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/data/ner_cache/hotpotqa_queries.named_entity_output.tsv +0 -0
- {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
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/data/ner_cache/musique_queries.named_entity_output.tsv +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/data/ner_cache/sample_queries.named_entity_output.tsv +0 -0
- {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
- {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
- {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
- {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
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/data/test_sample.json +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/data/test_sample_corpus.json +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/evaluation/jev/two-stage/manifest.json +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/.gitignore +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/README.md +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/eslint.config.js +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/index.html +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/package-lock.json +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/package.json +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/public/vite.svg +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/App.css +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/App.tsx +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/api/client.ts +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/api/queries.ts +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/assets/react.svg +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/graph/EntityNode.tsx +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/graph/GraphCanvas.tsx +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/graph/GraphLegend.tsx +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/graph/RelationEdge.tsx +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/graph/index.ts +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/import/CreateGraphDialog.tsx +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/import/FileUploader.tsx +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/import/GraphSelector.tsx +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/import/GraphStatsPreview.tsx +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/import/ImportDialog.tsx +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/import/ImportProgress.tsx +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/import/ImportSettings.tsx +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/import/UrlInput.tsx +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/panels/AnswerPanel.tsx +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/panels/NodeDetailPanel.tsx +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/panels/index.ts +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/search/SearchInput.tsx +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/search/index.ts +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/settings/SettingsDialog.tsx +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/timeline/ProcessTimeline.tsx +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/timeline/index.ts +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/ui/Header.tsx +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/ui/button.tsx +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/ui/dialog.tsx +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/ui/input.tsx +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/ui/label.tsx +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/ui/progress.tsx +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/ui/switch.tsx +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/components/ui/tabs.tsx +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/hooks/use-toast.ts +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/index.css +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/main.tsx +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/stores/datasetStore.ts +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/stores/graphStore.ts +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/stores/searchStore.ts +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/types/api.ts +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/utils/cn.ts +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/src/utils/graphLayout.ts +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/tsconfig.app.json +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/tsconfig.json +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/tsconfig.node.json +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/frontend/vite.config.ts +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/mkdocs.yml +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/api/__init__.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/graph/__init__.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/graph/knowledge_graph.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/graph/retriever.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/llm/__init__.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/llm/jev.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/loaders/__init__.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/loaders/converter.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/loaders/docling.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/loaders/mineru.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/loaders/url_fetcher.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/models.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/observability.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/__init__.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/__init__.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/google.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/huggingface.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/jina.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/local.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/mistral.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/ollama.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/onnx.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/openai.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/utils.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/voyage.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embeddings.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/__init__.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/test_api_settings.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/test_embedding_providers.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/test_evaluation_manifest.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/test_jev_reranker.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/test_jev_two_stage.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/test_milvus_store.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/test_rag_metadata_filter.py +0 -0
- {vector_graph_rag-0.3.1 → vector_graph_rag-0.4.1}/tests/test_rag_passage_order.py +0 -0
- {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
|
-
#
|
|
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-
|
|
106
|
+
# VGRAG_EXTRACTOR_MODEL=gpt-6-luna
|
|
105
107
|
# VGRAG_RERANKER_MODEL=jev
|
|
106
|
-
# VGRAG_ANSWER_MODEL=gpt-
|
|
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
|
+
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.
|
|
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.
|
|
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
|

|
|
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.
|
|
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
|

|
|
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
|
-
###
|
|
122
|
+
### Model Calls and Cost
|
|
123
123
|
|
|
124
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
|
Binary file
|