vector-graph-rag 0.4.0__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.4.0 → vector_graph_rag-0.4.1}/CHANGELOG.md +19 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/PKG-INFO +2 -2
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/README.md +1 -1
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/docs/architecture/design-philosophy.md +2 -2
- vector_graph_rag-0.4.1/docs/assets/evaluation/quality-latency.png +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/docs/assets/evaluation/quality-latency.svg +46 -28
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/docs/evaluation.md +8 -7
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/docs/guides/incremental-updates.md +13 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/docs/guides/reranking.md +1 -1
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/docs/index.md +2 -2
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/docs/reference/python-api.md +12 -1
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/docs/reference/rest-api.md +5 -0
- vector_graph_rag-0.4.1/evaluation/jev/README.md +15 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/evaluation/jev/two-stage/README.md +36 -9
- vector_graph_rag-0.4.1/evaluation/jev/two-stage/calibrate_latency.py +19 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/evaluation/jev/two-stage/chart-data.json +12 -0
- vector_graph_rag-0.4.1/evaluation/jev/two-stage/compare_versions.py +52 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/evaluation/jev/two-stage/comparison.csv +3 -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.0 → vector_graph_rag-0.4.1}/evaluation/jev/two-stage/plot.py +6 -6
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/evaluation/jev/two-stage/results.json.gz +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/evaluation/jev/two-stage/summarize.py +1 -1
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/evaluation/jev/two-stage/summary.json +10 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/evaluation/jev/two-stage/validation.json +2 -1
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/pyproject.toml +1 -1
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/__init__.py +1 -1
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/api/app.py +21 -11
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/graph/builder.py +6 -4
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/graph/graph.py +4 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/loaders/chunker.py +10 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/rag.py +9 -11
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/milvus.py +19 -21
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/tests/test_api.py +134 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/tests/test_graph.py +26 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/tests/test_loaders.py +32 -0
- {vector_graph_rag-0.4.0 → 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.4.0 → vector_graph_rag-0.4.1}/uv.lock +1 -1
- vector_graph_rag-0.4.0/docs/assets/evaluation/quality-latency.png +0 -0
- vector_graph_rag-0.4.0/evaluation/jev/README.md +0 -15
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/.dockerignore +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/.env.example +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/.github/workflows/docs.yml +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/.github/workflows/release.yml +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/.gitignore +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/AGENTS.md +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/CLAUDE.md +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/Dockerfile +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/LICENSE +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/api/__init__.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/api/main.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/api/schemas.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/docs/architecture/how-it-works.md +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/docs/assets/logo.png +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/docs/assets/logo.svg +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/docs/faq.md +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/docs/getting-started.md +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/docs/guides/document-import.md +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/docs/guides/embedding-providers.md +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/docs/guides/frontend.md +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/docs/guides/index.md +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/docs/guides/multi-tenancy.md +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/docs/guides/observability.md +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/docs/stylesheets/custom.css +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/docs/use-cases.md +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/evaluation/README.md +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/evaluation/data/2wikimultihopqa.json +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/evaluation/data/2wikimultihopqa_corpus.json +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/evaluation/data/hotpotqa.json +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/evaluation/data/hotpotqa_corpus.json +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/evaluation/data/musique.json +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/evaluation/data/musique_corpus.json +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/evaluation/data/ner_cache/2wikimultihopqa_queries.named_entity_output.tsv +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/evaluation/data/ner_cache/hotpotqa_queries.named_entity_output.tsv +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/evaluation/data/ner_cache/hotpotqa_train_queries.named_entity_output.tsv +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/evaluation/data/ner_cache/musique_queries.named_entity_output.tsv +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/evaluation/data/ner_cache/sample_queries.named_entity_output.tsv +0 -0
- {vector_graph_rag-0.4.0 → 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.4.0 → 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.4.0 → 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.4.0 → 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.4.0 → vector_graph_rag-0.4.1}/evaluation/data/test_sample.json +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/evaluation/data/test_sample_corpus.json +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/evaluation/evaluate.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/evaluation/jev/two-stage/flash-summary.json +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/evaluation/jev/two-stage/manifest.json +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/.gitignore +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/README.md +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/eslint.config.js +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/index.html +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/package-lock.json +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/package.json +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/public/vite.svg +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/App.css +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/App.tsx +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/api/client.ts +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/api/queries.ts +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/assets/react.svg +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/components/graph/EntityNode.tsx +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/components/graph/GraphCanvas.tsx +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/components/graph/GraphLegend.tsx +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/components/graph/RelationEdge.tsx +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/components/graph/index.ts +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/components/import/CreateGraphDialog.tsx +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/components/import/FileUploader.tsx +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/components/import/GraphSelector.tsx +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/components/import/GraphStatsPreview.tsx +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/components/import/ImportDialog.tsx +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/components/import/ImportProgress.tsx +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/components/import/ImportSettings.tsx +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/components/import/UrlInput.tsx +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/components/panels/AnswerPanel.tsx +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/components/panels/NodeDetailPanel.tsx +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/components/panels/index.ts +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/components/search/SearchInput.tsx +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/components/search/index.ts +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/components/settings/SettingsDialog.tsx +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/components/timeline/ProcessTimeline.tsx +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/components/timeline/index.ts +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/components/ui/Header.tsx +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/components/ui/button.tsx +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/components/ui/dialog.tsx +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/components/ui/input.tsx +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/components/ui/label.tsx +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/components/ui/progress.tsx +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/components/ui/switch.tsx +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/components/ui/tabs.tsx +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/hooks/use-toast.ts +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/index.css +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/main.tsx +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/stores/datasetStore.ts +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/stores/graphStore.ts +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/stores/searchStore.ts +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/types/api.ts +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/utils/cn.ts +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/src/utils/graphLayout.ts +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/tsconfig.app.json +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/tsconfig.json +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/tsconfig.node.json +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/frontend/vite.config.ts +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/mkdocs.yml +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/api/__init__.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/config.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/graph/__init__.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/graph/knowledge_graph.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/graph/retriever.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/llm/__init__.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/llm/cache.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/llm/extractor.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/llm/generation.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/llm/jev.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/llm/reranker.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/loaders/__init__.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/loaders/converter.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/loaders/docling.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/loaders/mineru.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/loaders/url_fetcher.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/models.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/observability.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/__init__.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/__init__.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/google.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/huggingface.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/jina.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/local.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/mistral.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/ollama.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/onnx.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/openai.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/utils.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embedding_providers/voyage.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/src/vector_graph_rag/storage/embeddings.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/tests/__init__.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/tests/conftest.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/tests/test_api_settings.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/tests/test_embedding_providers.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/tests/test_evaluation_manifest.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/tests/test_generation_api.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/tests/test_jev_reranker.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/tests/test_jev_two_stage.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/tests/test_milvus_store.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/tests/test_observability.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/tests/test_rag_metadata_filter.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/tests/test_rag_passage_order.py +0 -0
- {vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/tests/test_task_models.py +0 -0
|
@@ -1,5 +1,24 @@
|
|
|
1
1
|
# Changelog
|
|
2
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
|
+
|
|
3
22
|
## 0.4.0
|
|
4
23
|
|
|
5
24
|
### What's changed
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.5
|
|
2
2
|
Name: vector-graph-rag
|
|
3
|
-
Version: 0.4.
|
|
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/
|
|
@@ -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
|
|
|
@@ -238,7 +238,7 @@ flowchart TB
|
|
|
238
238
|
| **Local-first** | Yes | Yes | Partial | No | No | **Yes (Milvus Lite)** |
|
|
239
239
|
| **Setup complexity** | Minimal | Moderate | Moderate | High | High | **Minimal** |
|
|
240
240
|
|
|
241
|
-
### Performance on Multi-Hop QA Benchmarks
|
|
241
|
+
### Historical Performance on Multi-Hop QA Benchmarks
|
|
242
242
|
|
|
243
243
|
| Method | MuSiQue | HotpotQA | 2WikiMultiHopQA | Average |
|
|
244
244
|
|--------|---------|----------|-----------------|---------|
|
|
@@ -248,7 +248,7 @@ flowchart TB
|
|
|
248
248
|
| **Vector Graph RAG** | 73.0% | **96.3%** | **94.1%** | **87.8%** |
|
|
249
249
|
|
|
250
250
|
> [!INFO]
|
|
251
|
-
> 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.
|
|
252
252
|
|
|
253
253
|
### Key Differentiators
|
|
254
254
|
|
|
Binary file
|
{vector_graph_rag-0.4.0 → vector_graph_rag-0.4.1}/docs/assets/evaluation/quality-latency.svg
RENAMED
|
@@ -255,6 +255,7 @@ L 1047.6 110.16
|
|
|
255
255
|
<path d="M 123.198784 299.028522
|
|
256
256
|
L 255.174996 221.497435
|
|
257
257
|
L 304.195667 154.117565
|
|
258
|
+
L 404.684758 148.017522
|
|
258
259
|
" clip-path="url(#pfb3f67a1a0)" style="fill: none; stroke-dasharray: 4.81,2.08; stroke-dashoffset: 0; stroke: #168568; stroke-opacity: 0.7; stroke-width: 1.3"/>
|
|
259
260
|
</g>
|
|
260
261
|
<g id="patch_3">
|
|
@@ -272,12 +273,12 @@ L 1047.6 495.72
|
|
|
272
273
|
<text style="font-size: 11px; font-family: 'DejaVu Sans'; fill: #777f8b" transform="translate(609.843161 232.522437)">82.55% · ≈8.25 s</text>
|
|
273
274
|
</g>
|
|
274
275
|
<g id="text_20">
|
|
275
|
-
<text style="font-size: 11px; font-family: 'DejaVu Sans'; fill: #168568" transform="translate(265.174996 244.232747)">Jev · relations only</text>
|
|
276
|
+
<text style="font-size: 11px; font-family: 'DejaVu Sans'; fill: #168568" transform="translate(265.174996 244.232747)">Jev 1.13 · relations only</text>
|
|
276
277
|
<text style="font-size: 11px; font-family: 'DejaVu Sans'; fill: #168568" transform="translate(265.174996 260.601263)">80.04% · 2.28 s</text>
|
|
277
278
|
</g>
|
|
278
279
|
<g id="text_21">
|
|
279
|
-
<text style="font-size: 11px; font-family: 'DejaVu Sans'; fill: #168568" transform="translate(
|
|
280
|
-
<text style="font-size: 11px; font-family: 'DejaVu Sans'; fill: #168568" transform="translate(
|
|
280
|
+
<text style="font-size: 11px; font-family: 'DejaVu Sans'; fill: #168568" transform="translate(219.195667 115.955768)">Jev 1.13 · two-stage</text>
|
|
281
|
+
<text style="font-size: 11px; font-family: 'DejaVu Sans'; fill: #168568" transform="translate(219.195667 132.421393)">86.07% · 3.13 s</text>
|
|
281
282
|
</g>
|
|
282
283
|
<g id="text_22">
|
|
283
284
|
<text style="font-size: 11px; font-family: 'DejaVu Sans'; fill: #a16826" transform="translate(442.363178 215.399524)">GPT-6 Luna</text>
|
|
@@ -288,12 +289,16 @@ L 1047.6 495.72
|
|
|
288
289
|
<text style="font-size: 11px; font-family: 'DejaVu Sans'; fill: #2674bd" transform="translate(766.993357 170.921611)">83.34% · 10.97 s</text>
|
|
289
290
|
</g>
|
|
290
291
|
<g id="text_24">
|
|
291
|
-
<text style="font-size: 11px; font-family: 'DejaVu Sans';
|
|
292
|
+
<text style="font-size: 11px; font-family: 'DejaVu Sans'; fill: #087049" transform="translate(414.684758 117.783537)">Jev 1.14 · two-stage</text>
|
|
293
|
+
<text style="font-size: 11px; font-family: 'DejaVu Sans'; fill: #087049" transform="translate(414.684758 134.32135)">86.61% · ≈4.87 s</text>
|
|
292
294
|
</g>
|
|
293
295
|
<g id="text_25">
|
|
294
|
-
<text style="font-size: 11px; font-family: 'DejaVu Sans'; text-anchor: start; fill: #777f8b" x="135.198784" y="
|
|
296
|
+
<text style="font-size: 11px; font-family: 'DejaVu Sans'; text-anchor: start; fill: #777f8b" x="135.198784" y="303.028522" transform="rotate(-0 135.198784 303.028522)">Naive RAG · NV-Embed-v2 (73.10%)</text>
|
|
295
297
|
</g>
|
|
296
298
|
<g id="text_26">
|
|
299
|
+
<text style="font-size: 11px; font-family: 'DejaVu Sans'; text-anchor: start; fill: #777f8b" x="135.198784" y="389.31387" transform="rotate(-0 135.198784 389.31387)">Naive RAG · BGE-large-en-v1.5 (65.38%)</text>
|
|
300
|
+
</g>
|
|
301
|
+
<g id="text_27">
|
|
297
302
|
<text style="font-size: 11px; font-family: 'DejaVu Sans'; text-anchor: start; fill: #777f8b" x="135.198784" y="463.957913" transform="rotate(-0 135.198784 463.957913)">Naive RAG · ColBERTv2 (58.70%)</text>
|
|
298
303
|
</g>
|
|
299
304
|
<g id="PathCollection_1">
|
|
@@ -329,21 +334,15 @@ z
|
|
|
329
334
|
</g>
|
|
330
335
|
<g id="PathCollection_3">
|
|
331
336
|
<defs>
|
|
332
|
-
<path id="
|
|
333
|
-
L
|
|
334
|
-
L -6.
|
|
335
|
-
L -
|
|
336
|
-
L -4.05103 5.575765
|
|
337
|
-
L -0 2.632519
|
|
338
|
-
L 4.05103 5.575765
|
|
339
|
-
L 2.503674 0.813493
|
|
340
|
-
L 6.554705 -2.129753
|
|
341
|
-
L 1.547356 -2.129753
|
|
337
|
+
<path id="m36a28b9472" d="M -0 6.324555
|
|
338
|
+
L 6.324555 0
|
|
339
|
+
L 0 -6.324555
|
|
340
|
+
L -6.324555 -0
|
|
342
341
|
z
|
|
343
342
|
" style="stroke: #ffffff; stroke-width: 0.9"/>
|
|
344
343
|
</defs>
|
|
345
344
|
<g clip-path="url(#pfb3f67a1a0)">
|
|
346
|
-
<use xlink:href="#
|
|
345
|
+
<use xlink:href="#m36a28b9472" x="304.195667" y="154.117565" style="fill: #168568; stroke: #ffffff; stroke-width: 0.9"/>
|
|
347
346
|
</g>
|
|
348
347
|
</g>
|
|
349
348
|
<g id="PathCollection_4">
|
|
@@ -383,6 +382,25 @@ z
|
|
|
383
382
|
</g>
|
|
384
383
|
</g>
|
|
385
384
|
<g id="PathCollection_6">
|
|
385
|
+
<defs>
|
|
386
|
+
<path id="mb28cfb273e" d="M 0 -6.892024
|
|
387
|
+
L -1.547356 -2.129753
|
|
388
|
+
L -6.554705 -2.129753
|
|
389
|
+
L -2.503674 0.813493
|
|
390
|
+
L -4.05103 5.575765
|
|
391
|
+
L -0 2.632519
|
|
392
|
+
L 4.05103 5.575765
|
|
393
|
+
L 2.503674 0.813493
|
|
394
|
+
L 6.554705 -2.129753
|
|
395
|
+
L 1.547356 -2.129753
|
|
396
|
+
z
|
|
397
|
+
" style="stroke: #ffffff; stroke-width: 0.9"/>
|
|
398
|
+
</defs>
|
|
399
|
+
<g clip-path="url(#pfb3f67a1a0)">
|
|
400
|
+
<use xlink:href="#mb28cfb273e" x="404.684758" y="148.017522" style="fill: #087049; stroke: #ffffff; stroke-width: 0.9"/>
|
|
401
|
+
</g>
|
|
402
|
+
</g>
|
|
403
|
+
<g id="PathCollection_7">
|
|
386
404
|
<defs>
|
|
387
405
|
<path id="m077a5d3511" d="M -3.708099 3.708099
|
|
388
406
|
L 3.708099 3.708099
|
|
@@ -395,38 +413,38 @@ z
|
|
|
395
413
|
<use xlink:href="#m077a5d3511" x="123.198784" y="299.028522" style="fill: #ffffff; stroke: #777f8b"/>
|
|
396
414
|
</g>
|
|
397
415
|
</g>
|
|
398
|
-
<g id="
|
|
416
|
+
<g id="PathCollection_8">
|
|
399
417
|
<g clip-path="url(#pfb3f67a1a0)">
|
|
400
418
|
<use xlink:href="#m077a5d3511" x="123.198784" y="385.31387" style="fill: #ffffff; stroke: #777f8b"/>
|
|
401
419
|
</g>
|
|
402
420
|
</g>
|
|
403
|
-
<g id="
|
|
421
|
+
<g id="PathCollection_9">
|
|
404
422
|
<g clip-path="url(#pfb3f67a1a0)">
|
|
405
423
|
<use xlink:href="#m077a5d3511" x="123.198784" y="459.957913" style="fill: #ffffff; stroke: #777f8b"/>
|
|
406
424
|
</g>
|
|
407
425
|
</g>
|
|
408
426
|
<g id="legend_1">
|
|
409
427
|
<g id="line2d_25">
|
|
410
|
-
<path d="M
|
|
411
|
-
L
|
|
412
|
-
L
|
|
428
|
+
<path d="M 797.900625 477.837187
|
|
429
|
+
L 809.900625 477.837187
|
|
430
|
+
L 821.900625 477.837187
|
|
413
431
|
" style="fill: none; stroke-dasharray: 4.81,2.08; stroke-dashoffset: 0; stroke: #168568; stroke-opacity: 0.7; stroke-width: 1.3"/>
|
|
414
432
|
</g>
|
|
415
|
-
<g id="
|
|
416
|
-
<text style="font-size: 12px; font-family: 'DejaVu Sans'; text-anchor: start" x="
|
|
433
|
+
<g id="text_28">
|
|
434
|
+
<text style="font-size: 12px; font-family: 'DejaVu Sans'; text-anchor: start" x="831.500625" y="482.037187" transform="rotate(-0 831.500625 482.037187)">Pareto frontier (displayed timings)</text>
|
|
417
435
|
</g>
|
|
418
436
|
</g>
|
|
419
437
|
</g>
|
|
420
|
-
<g id="text_28">
|
|
421
|
-
<text style="font-weight: 700; font-size: 22px; font-family: 'DejaVu Sans'; text-anchor: start; fill: #253143" x="97.2" y="36.72" transform="rotate(-0 97.2 36.72)">Retrieval quality–latency trade-off</text>
|
|
422
|
-
</g>
|
|
423
438
|
<g id="text_29">
|
|
424
|
-
<text style="font-size:
|
|
439
|
+
<text style="font-weight: 700; font-size: 22px; font-family: 'DejaVu Sans'; text-anchor: start; fill: #253143" x="97.2" y="36.72" transform="rotate(-0 97.2 36.72)">Retrieval quality–latency trade-off</text>
|
|
425
440
|
</g>
|
|
426
441
|
<g id="text_30">
|
|
427
|
-
<text style="font-size:
|
|
442
|
+
<text style="font-size: 12px; font-family: 'DejaVu Sans'; text-anchor: start; fill: #657181" x="97.2" y="70.38" transform="rotate(-0 97.2 70.38)">MuSiQue + 2Wiki · Equal-weight Recall@5 · 1,000 queries per dataset</text>
|
|
428
443
|
</g>
|
|
429
444
|
<g id="text_31">
|
|
445
|
+
<text style="font-size: 10px; font-family: 'DejaVu Sans'; text-anchor: start; fill: #657181" x="97.2" y="556.92" transform="rotate(-0 97.2 556.92)">Jev 1.14: calibrated direct API estimate (≈). HippoRAG 2: reference estimate (≈). Other points: measured API means.</text>
|
|
446
|
+
</g>
|
|
447
|
+
<g id="text_32">
|
|
430
448
|
<text style="font-size: 10px; font-family: 'DejaVu Sans'; text-anchor: start; fill: #657181" x="97.2" y="578.34" transform="rotate(-0 97.2 578.34)">0 s excludes embedding, retrieval and answer generation. API means include network and provider queueing; runs differ in time/concurrency.</text>
|
|
431
449
|
</g>
|
|
432
450
|
</g>
|
|
@@ -45,7 +45,7 @@ Vector Graph RAG improves over Naive RAG by **19.6% in relative average Recall@5
|
|
|
45
45
|
[^1]: [HippoRAG: Neurobiologically Inspired Long-Term Memory for LLMs (NeurIPS 2024)](https://arxiv.org/abs/2405.14831)
|
|
46
46
|
[^2]: [From RAG to Memory: Non-Parametric Continual Learning for LLMs (2025)](https://arxiv.org/abs/2502.14802)
|
|
47
47
|
|
|
48
|
-
The historical evaluation reached **87.8% average Recall@5**, leading on 2Wiki while trailing HippoRAG 2 on MuSiQue. **Two-stage Jev now improves both:
|
|
48
|
+
The historical evaluation reached **87.8% average Recall@5**, leading on 2Wiki while trailing HippoRAG 2 on MuSiQue. **Two-stage Jev now improves both: 77.73% on MuSiQue and 95.50% on 2Wiki**, ahead of the compared baselines on each dataset. See the [Jev results below](#jev-reranker-evaluation) for the full comparison.
|
|
49
49
|
|
|
50
50
|
---
|
|
51
51
|
|
|
@@ -91,7 +91,7 @@ We began evaluating Jev in September 2026, following its availability, and expan
|
|
|
91
91
|
|
|
92
92
|
### Reaching the quality–latency Pareto frontier
|
|
93
93
|
|
|
94
|
-
**Two-stage Jev achieves the highest Recall@5 among the compared methods on both datasets**, averaging **86.
|
|
94
|
+
**Two-stage Jev 1.14 achieves the highest Recall@5 among the compared methods on both datasets**, averaging **86.61%** across **MuSiQue and 2Wiki, 1,000 questions each**. Using the displayed timings, it reaches the quality–latency Pareto frontier with **approximately 4.9 seconds of estimated direct API time**.
|
|
95
95
|
|
|
96
96
|
The pipeline first selects relations, then reranks their source passages together with direct vector-search candidates. The second stage judges full passages, so the final ordering can use evidence beyond the relation text. It is a separate recipe and dataset scope from the historical three-dataset average above.
|
|
97
97
|
|
|
@@ -103,16 +103,17 @@ The pipeline first selects relations, then reranks their source passages togethe
|
|
|
103
103
|
| HippoRAG 2 | 74.70% | 90.40% | 82.55% | ≈8.25 s (reference) |
|
|
104
104
|
| Vector Graph RAG + GPT-6 Luna | 72.18% | 93.23% | 82.70% | 5.35 s |
|
|
105
105
|
| Vector Graph RAG + DeepSeek V4.1 Flash | 73.20% | 93.48% | 83.34% | 10.97 s |
|
|
106
|
-
| Vector Graph RAG + Jev · relations only | 69.30% | 90.78% | 80.04% | 2.28 s |
|
|
107
|
-
|
|
|
106
|
+
| Vector Graph RAG + Jev 1.13 · relations only | 69.30% | 90.78% | 80.04% | 2.28 s |
|
|
107
|
+
| Vector Graph RAG + Jev 1.13 · two-stage | 76.78% | 95.35% | 86.07% | 3.13 s |
|
|
108
|
+
| **Vector Graph RAG + Jev 1.14 · two-stage** | **77.73%** | **95.50%** | **86.61%** | **≈4.9 s** |
|
|
108
109
|
|
|
109
110
|

|
|
110
111
|
|
|
111
|
-
|
|
112
|
+
Jev 1.14 improves average Recall@5 over 1.13 by **0.55 percentage points** (paired 95% bootstrap interval **+0.21 to +0.90**). The additional 1,800 queries beyond the 200-query pilot reproduce the gain: **+0.54 points**, interval **+0.20 to +0.88**. MuSiQue contributes most of it; 2Wiki alone has no clear gain, and average Recall@10 remains essentially unchanged (88.80% to 88.75%).
|
|
112
113
|
|
|
113
|
-
On the plotted Pareto frontier, no alternative offers both at least the same recall and no more additional model-call time, with a strict improvement in either.
|
|
114
|
+
On the plotted Pareto frontier, no alternative offers both at least the same recall and no more additional model-call time, with a strict improvement in either. Jev 1.14 is the highest-quality option among the evaluated configurations; Jev 1.13 remains a lower-latency frontier point at 86.07% / 3.13 s. This is a scoped best result, not a claim against every published system.
|
|
114
115
|
|
|
115
|
-
The horizontal axis excludes embedding, retrieval and answer generation. Jev, Luna and Flash use measured API means
|
|
116
|
+
The horizontal axis excludes embedding, retrieval and answer generation. Jev 1.14 uses a calibrated direct API estimate; the other Jev, Luna and Flash points use measured API means, and HippoRAG 2 retains a reference estimate. Test dates, concurrency and provider conditions differ, so the frontier is descriptive rather than a controlled end-to-end speed claim. Naive RAG adds no judgment call, hence zero additional time.
|
|
116
117
|
|
|
117
118
|
See the [full evaluation report](../evaluation/jev/two-stage/README.md) for the Flash audit and chart reproduction, and [Jev score reproduction](../evaluation/jev/two-stage/README.md#recompute-without-api-calls). Enable the implementation through the [reranking guide](guides/reranking.md).
|
|
118
119
|
|
|
@@ -176,6 +176,19 @@ A production ingestion job should track which source keys succeeded or failed.
|
|
|
176
176
|
If a retry sees no matching passages during delete, the source may already have
|
|
177
177
|
been removed by the previous attempt.
|
|
178
178
|
|
|
179
|
+
## Repairing Existing Entity/Passage Links
|
|
180
|
+
|
|
181
|
+
Every passage sharing a relation must appear in the relation's entities'
|
|
182
|
+
`passage_ids`, and each passage must contain those entities in `entity_ids`.
|
|
183
|
+
Missing links can leave orphan entities when sources are deleted.
|
|
184
|
+
|
|
185
|
+
Upgrading to the shared-relation fix preserves these links for new writes.
|
|
186
|
+
To repair a knowledge base indexed with missing links, call
|
|
187
|
+
`rebuild_documents()` with the complete corpus and retain its source metadata.
|
|
188
|
+
The rebuild replaces all data under the selected collection prefix, so include
|
|
189
|
+
every source that should remain available. Upgrading the package alone does
|
|
190
|
+
not repair stored adjacency metadata.
|
|
191
|
+
|
|
179
192
|
## ID Guidance
|
|
180
193
|
|
|
181
194
|
Use `source` for the external object identity. Use `Document.id` only when you
|
|
@@ -36,7 +36,7 @@ rag = VectorGraphRAG(
|
|
|
36
36
|
| `reranker_model` | Relation reranking, plus passage reranking for Jev | Inherits `llm_model` |
|
|
37
37
|
| `answer_model` | Final answer generation | Inherits `llm_model` |
|
|
38
38
|
|
|
39
|
-
A non-Jev `reranker_model` selects generative relation reranking. `jev` and `jev-*` names select the Jev two-stage pipeline; there is no strategy switch. The `jev` alias currently resolves to `jev-1.13.0` (a project recommendation, not an official latest-model alias). Pin the full name for reproducible runs. To follow the official stable release, use `reranker_model="jev-latest"`; `jev-preview` is also accepted. These are the [official aliases](https://docs.typesafe.ai/models), not the bare string `latest`. Moving aliases bypass the local response cache so a previous release cannot silently supply the result. Jev extraction and answer generation are not supported and are rejected during configuration.
|
|
39
|
+
A non-Jev `reranker_model` selects generative relation reranking. `jev` and `jev-*` names select the Jev two-stage pipeline; there is no strategy switch. The `jev` alias currently resolves to `jev-1.13.0` (a project recommendation, not an official latest-model alias). Pin the full name for reproducible runs. The [Jev 1.14 evaluation](../../evaluation/jev/two-stage/README.md#jev-114-paired-comparison) adds a full benchmark result via OpenRouter; it does not change this runtime alias or the direct-service configuration. To follow the official stable release, use `reranker_model="jev-latest"`; `jev-preview` is also accepted. These are the [official aliases](https://docs.typesafe.ai/models), not the bare string `latest`. Moving aliases bypass the local response cache so a previous release cannot silently supply the result. Jev extraction and answer generation are not supported and are rejected during configuration.
|
|
40
40
|
|
|
41
41
|
`retrieve()` skips answer generation; `query()` generates an answer from the same selected passages. Both still perform query entity extraction. The facade constructs all task clients, so their credentials must be configured even when only retrieval is requested.
|
|
42
42
|
|
|
@@ -136,9 +136,9 @@ These benchmarks use Recall@5 and HippoRAG’s pre-extracted triplets. See [Eval
|
|
|
136
136
|
|
|
137
137
|
## Two-stage Jev reaches the quality–latency Pareto frontier
|
|
138
138
|
|
|
139
|
-
**86.
|
|
139
|
+
**Jev 1.14 achieves 86.61% average Recall@5** on MuSiQue and 2Wiki (1,000 questions each), the highest among the compared methods. Its estimated direct API mean is **approximately 4.9 seconds**. The same-query improvement over Jev 1.13 is **0.55 percentage points**, reproduced on the additional 1,800 queries beyond the pilot.
|
|
140
140
|
|
|
141
|
-
With the displayed timings, this puts two-stage Jev on the **quality–latency Pareto frontier**. Jev,
|
|
141
|
+
With the displayed timings, this puts two-stage Jev on the **quality–latency Pareto frontier**. Jev 1.14 uses a calibrated direct API estimate; the other Jev, Luna and Flash points use measured API means, and HippoRAG 2 retains a reference estimate. Measurements exclude the rest of the search pipeline and differ in test conditions. This two-dataset evaluation is separate from the historical three-dataset results.
|
|
142
142
|
|
|
143
143
|

|
|
144
144
|
|
|
@@ -662,7 +662,10 @@ for passage in result.passages:
|
|
|
662
662
|
|
|
663
663
|
#### `get_stats`
|
|
664
664
|
|
|
665
|
-
Return
|
|
665
|
+
Return the current entity, relation, and passage counts stored in Milvus for
|
|
666
|
+
this instance's collection prefix. Counts include all sources and reflect
|
|
667
|
+
completed imports, replacements and deletions, including writes from another
|
|
668
|
+
instance connected to the same knowledge base.
|
|
666
669
|
|
|
667
670
|
```python
|
|
668
671
|
def get_stats() -> dict
|
|
@@ -670,6 +673,14 @@ def get_stats() -> dict
|
|
|
670
673
|
|
|
671
674
|
**Returns:** A dictionary with entity, relation, and passage counts.
|
|
672
675
|
|
|
676
|
+
Each call performs a strongly consistent `count(*)` query on each existing
|
|
677
|
+
collection. Only counts are returned; documents and vectors are not fetched.
|
|
678
|
+
Existing collections must be loaded. Missing collections contribute zero;
|
|
679
|
+
connection, permission and query failures raise an exception.
|
|
680
|
+
|
|
681
|
+
The three counts are read separately. If another process is updating the graph
|
|
682
|
+
at the same time, the counts can reflect different stages of that update.
|
|
683
|
+
|
|
673
684
|
```python
|
|
674
685
|
stats = rag.get_stats()
|
|
675
686
|
print(stats)
|
|
@@ -587,6 +587,11 @@ curl -X POST "http://localhost:8000/query?graph_name=my_graph" \
|
|
|
587
587
|
|
|
588
588
|
Returns aggregate statistics for a graph.
|
|
589
589
|
|
|
590
|
+
Counts come from strongly consistent `count(*)` queries against the graph's
|
|
591
|
+
three collections, which must be loaded. Missing collections contribute zero.
|
|
592
|
+
Database query failures return HTTP 500. The collections are counted separately,
|
|
593
|
+
so concurrent updates can be observed at different stages.
|
|
594
|
+
|
|
590
595
|
**Path Parameters**
|
|
591
596
|
|
|
592
597
|
| Parameter | Type | Description |
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
# Jev retrieval evaluation
|
|
2
|
+
|
|
3
|
+
Jev evaluation began in September 2026; the full two-stage results below were added in October 2026. Jev 1.14 was added on October 16, 2026. The comparison includes GPT-6 Luna and DeepSeek V4.1 Flash.
|
|
4
|
+
|
|
5
|
+
## Two-stage Jev reaches the quality–latency Pareto frontier
|
|
6
|
+
|
|
7
|
+
Across **MuSiQue and 2Wiki, 1,000 questions each**, two-stage Jev 1.14 achieves **86.61% average Recall@5**, compared with **82.70% for GPT-6 Luna** and **83.34% for DeepSeek V4.1 Flash**. Their additional model-call means are **≈4.9 s** (estimated direct), **5.35 s** and **10.97 s**, respectively. Different test conditions and external reference points limit direct speed comparisons.
|
|
8
|
+
|
|
9
|
+

|
|
10
|
+
|
|
11
|
+
The two-stage pipeline adds passage reranking after relation selection. Jev 1.14 improves average Recall@5 by **0.55 percentage points** over 1.13 on the same 2,000 questions; the additional 1,800 queries beyond the pilot confirm a **0.54-point** improvement. Most of the gain comes from MuSiQue; Recall@10 is essentially unchanged. Both versions remain on the observed Pareto frontier: 1.14 is the highest-quality point, while 1.13 retains its recorded 3.13-second timing. These are separate service runs, not a controlled speed comparison.
|
|
12
|
+
|
|
13
|
+
See the [full evaluation report](two-stage/README.md) for dataset scores, measured timing scope, Flash audit and chart reproduction. Enable the pipeline with `reranker_model="jev"`; the [reranking guide](../../docs/guides/reranking.md) covers configuration.
|
|
14
|
+
|
|
15
|
+
The [frozen Jev recipe and score reproduction](two-stage/README.md) support these results. This two-dataset comparison is separate from the project's historical three-dataset average.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Two-stage Jev reaches the quality–latency Pareto frontier
|
|
2
2
|
|
|
3
|
-
Jev evaluation began in September 2026; the full two-stage results below were added in October 2026. The Luna/Flash comparison was updated on October 14, 2026. MuSiQue and 2Wiki each contain 1,000 questions; averages weight the two datasets equally. The generative rerankers are GPT-6 Luna and official DeepSeek V4.1 Flash.
|
|
3
|
+
Jev evaluation began in September 2026; the full two-stage results below were added in October 2026. The Luna/Flash comparison was updated on October 14, 2026; Jev 1.14 was added on October 16, 2026. MuSiQue and 2Wiki each contain 1,000 questions; averages weight the two datasets equally. The generative rerankers are GPT-6 Luna and official DeepSeek V4.1 Flash.
|
|
4
4
|
|
|
5
5
|

|
|
6
6
|
|
|
@@ -12,16 +12,42 @@ Jev evaluation began in September 2026; the full two-stage results below were ad
|
|
|
12
12
|
| HippoRAG 2 | 74.70% | 90.40% | 82.55% | ≈8.25 s (reference) |
|
|
13
13
|
| Vector Graph RAG + GPT-6 Luna | 72.18% | 93.23% | 82.70% | 5.35 s |
|
|
14
14
|
| Vector Graph RAG + DeepSeek V4.1 Flash | 73.20% | 93.48% | 83.34% | 10.97 s |
|
|
15
|
-
| Vector Graph RAG + Jev · relations only | 69.30% | 90.78% | 80.04% | 2.28 s |
|
|
16
|
-
|
|
|
15
|
+
| Vector Graph RAG + Jev 1.13 · relations only | 69.30% | 90.78% | 80.04% | 2.28 s |
|
|
16
|
+
| Vector Graph RAG + Jev 1.13 · two-stage | 76.78% | 95.35% | 86.07% | 3.13 s |
|
|
17
|
+
| **Vector Graph RAG + Jev 1.14 · two-stage** | **77.73%** | **95.50%** | **86.61%** | **≈4.9 s** |
|
|
17
18
|
|
|
18
19
|
Luna uses **medium** reasoning: xhigh had similar recall (82.53% versus 82.70%) but higher mean latency (8.86 s versus 5.35 s); Flash uses **low** because high produced very long reasoning and exhausted the output limit on some questions.
|
|
19
20
|
|
|
20
|
-
Two-stage Jev has the highest recall among
|
|
21
|
+
Two-stage Jev 1.14 has the highest recall among the evaluated configurations: 86.61% average Recall@5. Both Jev versions are non-dominated using the displayed timings: 1.14 extends the frontier to higher quality; 1.13 remains at lower recorded latency. The chart computes the frontier from the data; this is not a controlled end-to-end speed comparison.
|
|
22
|
+
|
|
23
|
+
## Jev 1.14 paired comparison
|
|
24
|
+
|
|
25
|
+
All 2,000 questions completed (1,000 per dataset), retaining the frozen graph, candidates, prompts, ordering and scoring rules. Two hundred exact-input pilot results were reused after hash and score checks; the other 1,800 were requested once successfully. Only `typesafe/jev-1.14` was called through OpenRouter; every response identified `typesafe/jev-1.14-20261014`.
|
|
26
|
+
|
|
27
|
+
| Scope | R@5 improvement over 1.13 | Paired 95% bootstrap interval |
|
|
28
|
+
|---|---:|---:|
|
|
29
|
+
| All 2,000 queries | +0.546 pp | +0.208 to +0.896 pp |
|
|
30
|
+
| Additional 1,800 queries | +0.537 pp | +0.199 to +0.884 pp |
|
|
31
|
+
| MuSiQue, all 1,000 | +0.942 pp | +0.317 to +1.617 pp |
|
|
32
|
+
| 2Wiki, all 1,000 | +0.150 pp | −0.050 to +0.400 pp |
|
|
33
|
+
|
|
34
|
+
The small R@5 gain reproduces beyond the pilot and is concentrated in MuSiQue. Across all queries, 64 improve, 1,901 tie and 35 regress. R@10 is essentially unchanged: 88.796% to 88.746% (difference −0.050 pp, interval −0.267 to +0.179). The intervals use 5,000 paired, dataset-stratified bootstrap replicates with fixed seed 20261016. The additional queries were not part of the pilot comparison, but the historical benchmark is not an untouched holdout.
|
|
35
|
+
|
|
36
|
+
The new phase took 54.46 minutes and 10,735 network attempts, including three recorded failures. Across pilot and full run, 11,883 successful payload hashes were verified with no successful resends. New reported charges were $6.8382, or $7.0253 including unknown failed-request reserves; reused pilot charges were $0.7261. Charges are API-reported values, not an account invoice. No other decision models were included in the full run.
|
|
37
|
+
|
|
38
|
+
| Timing cohort | Mean | P50 | P90 |
|
|
39
|
+
|---|---:|---:|---:|
|
|
40
|
+
| Reused 200-query pilot | 5.81 s | 3.17 s | 20.71 s |
|
|
41
|
+
| Additional 1,800 queries | 5.76 s | 3.22 s | 21.41 s |
|
|
42
|
+
| Full 2,000 queries (OpenRouter) | 5.77 s | 3.21 s | 21.40 s |
|
|
43
|
+
|
|
44
|
+
These are sums of successful HTTP durations per query, not cache-read timings; failed-attempt waits are excluded and retained separately in the experiment ledger. Jev 1.14 used four concurrent queries, serial batches within each query, and at most 64 judgments per request. Jev 1.13 used the earlier direct service and different batching. The paired results compare the fixed application recipe across version/service runs; they do not isolate model weights from all service effects.
|
|
45
|
+
|
|
46
|
+
The chart estimates official-direct Jev 1.14 latency at **≈4.9 s**, scaling the recorded 5.77 s by paired direct/OpenRouter timings for 12 size-stratified queries (67 identical payload pairs); see the [calibration record](jev114-latency-calibration.json) and [offline calculation](calibrate_latency.py).
|
|
21
47
|
|
|
22
48
|
## Measurement scope
|
|
23
49
|
|
|
24
|
-
The horizontal axis excludes embedding, retrieval and answer generation. Zero means no extra model call. Jev timings use the recorded timing subsets: equal-weight means of per-query request-duration sums from 500 MuSiQue and 900 2Wiki queries, with three concurrent queries. Luna and Flash use measured full-evaluation API means, not the older generative-model timing estimates. Network, provider queueing, concurrency and measurement dates differ between runs. HippoRAG 2 retains an approximate reference time; its scores and the ColBERTv2/NV-Embed-v2 points are published aggregates rather than new runs. See the [comparison provenance](#comparison-basis).
|
|
50
|
+
The horizontal axis excludes embedding, retrieval and answer generation. Zero means no extra model call. Jev 1.13 timings use the recorded timing subsets: equal-weight means of per-query request-duration sums from 500 MuSiQue and 900 2Wiki queries, with three concurrent queries. Luna and Flash use measured full-evaluation API means, not the older generative-model timing estimates. Network, provider queueing, concurrency and measurement dates differ between runs. HippoRAG 2 retains an approximate reference time; its scores and the ColBERTv2/NV-Embed-v2 points are published aggregates rather than new runs. See the [comparison provenance](#comparison-basis).
|
|
25
51
|
|
|
26
52
|
The frozen candidates, input prompts, relation order and historical scoring are retained for the new generative runs. Their selected relations expand to source passages in order, followed by naive retrieval to fill ten passages. Only message output text and the `useful_relations` JSON field are scored; reasoning text and field aliases are not used. MuSiQue matches distinct full passages and 2Wiki distinct titles. Jev's two-stage recipe is described in the [frozen recipe](#frozen-recipe).
|
|
27
53
|
|
|
@@ -43,7 +69,7 @@ Reported usage was 8,092,904 input tokens (769,664 cached) and 4,181,868 output
|
|
|
43
69
|
|
|
44
70
|
## Saved data and chart reproduction
|
|
45
71
|
|
|
46
|
-
`comparison.csv` contains per-dataset Recall@5/10 aggregates; `flash-summary.json` contains the Flash audit, usage and timing statistics; `chart-data.json` freezes the plotted coordinates. These aggregates reproduce the figure, not the underlying model calls or independent per-query scoring. Raw responses and credentials are not included in the repository. `results.json.gz` and `summarize.py` provide frozen evidence fingerprints and score replay for the naive and both Jev methods; `summary.json` contains their recomputed scores.
|
|
72
|
+
`comparison.csv` contains per-dataset Recall@5/10 aggregates; `flash-summary.json` contains the Flash audit, usage and timing statistics; `chart-data.json` freezes the plotted coordinates. These aggregates reproduce the figure, not the underlying model calls or independent per-query scoring. Raw responses and credentials are not included in the repository. `results.json.gz` and `summarize.py` provide frozen evidence fingerprints and score replay for the naive and both Jev methods; `summary.json` contains their recomputed scores. `jev114-audit.json` records the version comparison, timing, usage and validation; `compare_versions.py` replays its paired differences and bootstrap intervals from the fingerprint records.
|
|
47
73
|
|
|
48
74
|
```bash
|
|
49
75
|
uv run --offline --no-project --python 3.12 --with matplotlib evaluation/jev/two-stage/plot.py
|
|
@@ -53,7 +79,7 @@ The offline command requires matplotlib to be cached locally. The figure omits r
|
|
|
53
79
|
|
|
54
80
|
## Frozen recipe
|
|
55
81
|
|
|
56
|
-
-
|
|
82
|
+
- Models: historical `jev-1.13.0` and OpenRouter `typesafe/jev-1.14`; exact prompts are in [`llm/jev.py`](../../../src/vector_graph_rag/llm/jev.py).
|
|
57
83
|
- Score the full candidate relation table with shared context; retain the top 64, breaking ties by original order.
|
|
58
84
|
- Expand relations to their source passages round-robin, preserving each relation's passage order.
|
|
59
85
|
- Alternate graph passages with the dense retrieval top 10; deduplicate full text and cap the union at 16.
|
|
@@ -71,9 +97,10 @@ External aggregates in the evaluation report come from [HippoRAG Tables 2–3](h
|
|
|
71
97
|
|
|
72
98
|
```bash
|
|
73
99
|
uv run --no-project python evaluation/jev/two-stage/summarize.py
|
|
100
|
+
uv run --offline --no-project --python 3.12 --with numpy evaluation/jev/two-stage/compare_versions.py
|
|
74
101
|
```
|
|
75
102
|
|
|
76
|
-
`results.json.gz` holds
|
|
103
|
+
`results.json.gz` holds 8,000 method/query records for naive retrieval, relation-only Jev 1.13 and two-stage Jev 1.13/1.14, including ordered SHA-256 evidence fingerprints and metrics. `manifest.json` identifies the 2,000 queries and dataset file hashes. The script independently checks saved Recall@5/10 against evidence fingerprints and verifies the expected query set for each method. Fingerprints do not reconstruct candidate generation or model calls; raw model caches and local databases are not included.
|
|
77
104
|
|
|
78
105
|
## Run against your index
|
|
79
106
|
|
|
@@ -86,6 +113,6 @@ uv run python evaluation/evaluate.py --dataset musique --data-dir evaluation/dat
|
|
|
86
113
|
--reranker-model jev-1.13.0 --method graph --top-k 10 --max-samples 10
|
|
87
114
|
```
|
|
88
115
|
|
|
89
|
-
Repeat with `--dataset 2wikimultihopqa`. Remove `--max-samples` for all 1,000 questions. This exercises the shipped two-stage implementation on the configured index; it does not reconstruct the frozen hybrid candidate pools. Indexing, embeddings and model calls can incur charges. Errors must be inspected in evaluation logs.
|
|
116
|
+
Repeat with `--dataset 2wikimultihopqa`. Remove `--max-samples` for all 1,000 questions. This example uses the shipped direct-service 1.13 configuration; the 1.14 result above used the OpenRouter Decisions endpoint. It exercises the shipped two-stage implementation on the configured index; it does not reconstruct the frozen hybrid candidate pools. Indexing, embeddings and model calls can incur charges. Errors must be inspected in evaluation logs.
|
|
90
117
|
|
|
91
118
|
Earlier model comparisons and their source artifacts are preserved in the [evaluation snapshot](https://github.com/zilliztech/vector-graph-rag/tree/e32c077ccde8c577f9335b7966ebf22d46e18334/evaluation/jev).
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"""Recompute the direct-service estimate from archived paired timings."""
|
|
2
|
+
import json
|
|
3
|
+
import math
|
|
4
|
+
from pathlib import Path
|
|
5
|
+
|
|
6
|
+
root = Path(__file__).parent
|
|
7
|
+
data = json.loads((root / 'jev114-latency-calibration.json').read_text())
|
|
8
|
+
weighted = 0.0
|
|
9
|
+
for stratum in data['strata']:
|
|
10
|
+
pairs = [p for p in data['paired_timings']
|
|
11
|
+
if p['dataset'] == stratum['dataset']
|
|
12
|
+
and p['index'] in stratum['sample_indices']]
|
|
13
|
+
ratio = sum(p['direct_seconds'] for p in pairs) / sum(p['proxy_seconds'] for p in pairs)
|
|
14
|
+
assert math.isclose(ratio, stratum['ratio'], abs_tol=1e-12)
|
|
15
|
+
weighted += stratum['population_queries'] / 2000 * stratum['population_proxy_mean'] * ratio
|
|
16
|
+
assert math.isclose(weighted, data['estimated_full_direct_seconds'], abs_tol=1e-12)
|
|
17
|
+
chart = json.loads((root / 'chart-data.json').read_text())
|
|
18
|
+
assert math.isclose(weighted, chart['points']['jev_two_114']['latency'], abs_tol=1e-12)
|
|
19
|
+
print(f'Official-direct estimate: {weighted:.6f} s; {len(data["paired_timings"])} verified timing pairs')
|
|
@@ -31,6 +31,13 @@
|
|
|
31
31
|
"flash": {
|
|
32
32
|
"quality": 83.33749999999999,
|
|
33
33
|
"latency": 10.970034438348375
|
|
34
|
+
},
|
|
35
|
+
"jev_two_114": {
|
|
36
|
+
"quality": 86.6125,
|
|
37
|
+
"latency": 4.87210045028051,
|
|
38
|
+
"latency_kind": "estimated_official_direct",
|
|
39
|
+
"measured_openrouter_latency": 5.769053221371956,
|
|
40
|
+
"latency_source": "jev114-latency-calibration.json"
|
|
34
41
|
}
|
|
35
42
|
},
|
|
36
43
|
"naive_points": [
|
|
@@ -65,6 +72,11 @@
|
|
|
65
72
|
"jev_two",
|
|
66
73
|
3.1327848465049435,
|
|
67
74
|
86.06666666666666
|
|
75
|
+
],
|
|
76
|
+
[
|
|
77
|
+
"jev_two_114",
|
|
78
|
+
4.87210045028051,
|
|
79
|
+
86.6125
|
|
68
80
|
]
|
|
69
81
|
]
|
|
70
82
|
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
"""Verify the saved paired bootstrap intervals using fingerprint-only records."""
|
|
2
|
+
|
|
3
|
+
import gzip
|
|
4
|
+
import json
|
|
5
|
+
from pathlib import Path
|
|
6
|
+
|
|
7
|
+
import numpy as np
|
|
8
|
+
|
|
9
|
+
ROOT = Path(__file__).parent
|
|
10
|
+
rows = json.loads(gzip.decompress((ROOT / "results.json.gz").read_bytes()))
|
|
11
|
+
old = {(r["dataset"], r["id"]): r for r in rows if r["method"] == "jev_two"}
|
|
12
|
+
new = [r for r in rows if r["method"] == "jev_two_114"]
|
|
13
|
+
audit = json.loads((ROOT / "jev114-audit.json").read_text())
|
|
14
|
+
assert len(new) == len(old) == 2000
|
|
15
|
+
for r in new:
|
|
16
|
+
assert set(r["gold"]) == set(old[r["dataset"], r["id"]]["gold"])
|
|
17
|
+
for expected in audit["results"]:
|
|
18
|
+
selected = [
|
|
19
|
+
r
|
|
20
|
+
for r in new
|
|
21
|
+
if (expected["cohort"] == "all2000" or r["cohort"] == expected["cohort"])
|
|
22
|
+
and (expected["dataset"] == "combined" or r["dataset"] == expected["dataset"])
|
|
23
|
+
]
|
|
24
|
+
assert len(selected) == expected["n"]
|
|
25
|
+
for k in (5, 10):
|
|
26
|
+
groups = [
|
|
27
|
+
np.array(
|
|
28
|
+
[
|
|
29
|
+
r[f"r{k}"] - old[r["dataset"], r["id"]][f"r{k}"]
|
|
30
|
+
for r in selected
|
|
31
|
+
if r["dataset"] == ds
|
|
32
|
+
]
|
|
33
|
+
)
|
|
34
|
+
for ds in ("musique", "2wikimultihopqa")
|
|
35
|
+
]
|
|
36
|
+
groups = [g for g in groups if len(g)]
|
|
37
|
+
# Preserve the archived per-query order for exact bootstrap replay.
|
|
38
|
+
rng = np.random.default_rng(20261016)
|
|
39
|
+
bootstrap = sum(
|
|
40
|
+
rng.choice(g, size=(5000, len(g)), replace=True).mean(axis=1) for g in groups
|
|
41
|
+
) / len(groups)
|
|
42
|
+
delta = float(np.mean([g.mean() for g in groups]) * 100)
|
|
43
|
+
interval = np.quantile(bootstrap, [0.025, 0.975]) * 100
|
|
44
|
+
assert abs(delta - expected[f"delta_r{k}_pp"]) < 1e-10
|
|
45
|
+
assert np.max(np.abs(interval - expected[f"ci95_r{k}_pp"])) < 1e-10
|
|
46
|
+
print(
|
|
47
|
+
expected["cohort"],
|
|
48
|
+
expected["dataset"],
|
|
49
|
+
f"R@{k}",
|
|
50
|
+
f"{delta:+.3f}pp",
|
|
51
|
+
interval.round(3).tolist(),
|
|
52
|
+
)
|
|
@@ -14,3 +14,6 @@ jev_two,average,2000,0.8606666666666667,0.8879583333333333
|
|
|
14
14
|
Luna medium,musique,1000,0.7218333333333333,0.78675
|
|
15
15
|
Luna medium,2wikimultihopqa,1000,0.93225,0.94525
|
|
16
16
|
Luna medium,average,2000,0.8270416666666667,0.866
|
|
17
|
+
jev_two_114,musique,1000,0.77725,0.8196666666666667
|
|
18
|
+
jev_two_114,2wikimultihopqa,1000,0.955,0.95525
|
|
19
|
+
jev_two_114,average,2000,0.8661249999999999,0.8874583333333333
|