{"record":{"id":"4322da2a6ad50b4f","repo":"HKUDS/DeepTutor","slug":"graphrag-embedding-provider-unsupported","errorCode":"graphrag_embedding_provider_unsupported","errorMessage":"GraphRAG currently requires an OpenAI-compatible embedding endpoint. The active embedding provider uses a native transport; choose its OpenAI-compatible endpoint or another embedding profile.","messagePattern":"GraphRAG currently requires an OpenAI-compatible embedding endpoint\\. The active embedding provider uses a native transport; choose its OpenAI-compatible endpoint or another embedding profile\\.","errorType":"exception","errorClass":"GraphRagEmbeddingProviderUnsupportedError","httpStatus":null,"severity":"error","filePath":"deeptutor/services/rag/pipelines/graphrag/config.py","lineNumber":151,"sourceCode":"    if parsed.query or parsed.fragment:\n        return value\n\n    path = parsed.path.rstrip(\"/\")\n    if not path.endswith(\"/embeddings\"):\n        return value\n\n    api_path = path[: -len(\"/embeddings\")] or \"/\"\n    return urlunsplit(parsed._replace(path=api_path))\n\n\ndef ensure_graphrag_embedding_transport(\n    binding: str | None,\n    endpoint: str | None,\n) -> None:\n    \"\"\"Reject native embedding transports that GraphRAG cannot call safely.\"\"\"\n    provider = canonical_embedding_provider_name(binding)\n    if provider not in OPENAI_COMPATIBLE_EMBEDDING_BINDINGS:\n        raise GraphRagEmbeddingProviderUnsupportedError()\n    # Gemini can use either DeepTutor's native ``batchEmbedContents`` adapter\n    # or its legacy OpenAI-compatible endpoint. GraphRAG only supports the\n    # latter; a provider name alone is no longer enough after Gemini 2 support.\n    if provider == \"gemini\" and not urlsplit(str(endpoint or \"\")).path.rstrip(\"/\").endswith(\n        \"/embeddings\"\n    ):\n        raise GraphRagEmbeddingProviderUnsupportedError()\n\n\n@dataclass(frozen=True)\nclass GraphRagQueryConfig:\n    \"\"\"Query-time knobs read from the persisted ``graphrag.json`` slice.\"\"\"\n\n    response_type: str = \"Multiple Paragraphs\"\n    community_level: int = 2\n    dynamic_community_selection: bool = False\n\n","sourceCodeStart":133,"sourceCodeEnd":169,"githubUrl":"https://github.com/HKUDS/DeepTutor/blob/3e82f130422a813cdd73c10b21a44e9325f5821a/deeptutor/services/rag/pipelines/graphrag/config.py#L133-L169","documentation":"GraphRagEmbeddingProviderUnsupportedError (code graphrag_embedding_provider_unsupported): raised by ensure_graphrag_embedding_transport when the active embedding provider's canonical binding is not in OPENAI_COMPATIBLE_EMBEDDING_BINDINGS — GraphRAG can only call OpenAI-compatible embedding endpoints, not DeepTutor's native transports.","triggerScenarios":"build_settings runs with an embedding profile whose binding is a native transport (e.g. Gemini batchEmbedContents, a non-OpenAI-compatible local server) while creating or updating a GraphRAG knowledge base.","commonSituations":"Default embedding profile is Gemini-native or a custom binding after Gemini 2 support was added; switching embedding providers without checking GraphRAG compatibility.","solutions":["Switch the active embedding profile to an OpenAI-compatible provider (OpenAI, DeepSeek, or any /v1/embeddings-compatible endpoint).","If using Gemini, select its legacy OpenAI-compatible endpoint profile (path ending in /embeddings).","Configure a separate embedding profile specifically for GraphRAG KBs."],"exampleFix":"# before\nembedding binding = \"gemini_native\"\n# after\nembedding binding = \"openai\"  # url: https://api.openai.com/v1/embeddings","handlingStrategy":"validation","validationCode":"from deeptutor.services.rag.pipelines.graphrag.config import OPENAI_COMPATIBLE_EMBEDDING_BINDINGS\nif canonical_embedding_provider_name(cfg.binding) not in OPENAI_COMPATIBLE_EMBEDDING_BINDINGS:\n    raise ConfigError(\"pick an OpenAI-compatible embedding profile\")","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Curate embedding profiles used for GraphRAG; document which bindings are OpenAI-compatible."],"tags":["graphrag","embeddings","provider-config"],"backgroundTag":"embedding-provider-unsupported","analyzedSha":"3e82f130422a813cdd73c10b21a44e9325f5821a","analyzedAt":"2026-08-27T06:57:25.364Z","schemaVersion":2},"datasetVersion":"2026-08-27T08:17:20.692Z"}