feat(graphrag): config.graph sub-model + settings + pgvector availability gate

GraphConfig (extraction_model?, max_chunks?, gleanings=0; extra=forbid) on SourceConfig; settings GRAPHRAG_EXTRACTION_MODEL (None=instance default) + GRAPHRAG_MAX_CHUNKS_FOR_EXTRACTION; graphrag_available() = GRAPHRAG_ENABLED and VECTOR_STORE==pgvector (D27-D32 foundation). Unit G1.
This commit is contained in:
Alex committed 2026-06-23 00:39:27 +01:00
1 parent acb7956fe0
commit b4c465e608
6 files changed
+130

No files matched your search

View File
Whitespace-only changes.
+31
View File
@@ -0,0 +1,31 @@
"""Tests for the graphrag_available() pgvector-gated flag (D29)."""
from __future__ import annotations
import pytest
from application.graphrag import graphrag_available
from application.core.settings import settings
@pytest.mark.unit
class TestGraphragAvailable:
def test_true_only_when_enabled_and_pgvector(self, monkeypatch):
monkeypatch.setattr(settings, "GRAPHRAG_ENABLED", True)
monkeypatch.setattr(settings, "VECTOR_STORE", "pgvector")
assert graphrag_available() is True
def test_false_when_disabled(self, monkeypatch):
monkeypatch.setattr(settings, "GRAPHRAG_ENABLED", False)
monkeypatch.setattr(settings, "VECTOR_STORE", "pgvector")
assert graphrag_available() is False
def test_false_when_store_not_pgvector(self, monkeypatch):
monkeypatch.setattr(settings, "GRAPHRAG_ENABLED", True)
monkeypatch.setattr(settings, "VECTOR_STORE", "faiss")
assert graphrag_available() is False
def test_false_when_disabled_and_not_pgvector(self, monkeypatch):
monkeypatch.setattr(settings, "GRAPHRAG_ENABLED", False)
monkeypatch.setattr(settings, "VECTOR_STORE", "faiss")
assert graphrag_available() is False