HKUDS/DeepTutor · error · GraphRagNotConfiguredError

No active embedding model. Configure one under Settings → Ca

Error message

No active embedding model. Configure one under Settings → Catalog before creating a GraphRAG knowledge base.

What it means

GraphRagNotConfiguredError from build_settings: no active embedding model is configured (embedding_cfg.model is empty). GraphRAG needs an embedding model to vectorize extracted entities/relationships.

Source

Thrown at deeptutor/services/rag/pipelines/graphrag/config.py:264

    if llm_cfg is None:
        from deeptutor.services.config import resolve_llm_runtime_config

        llm_cfg = resolve_llm_runtime_config()
    if embedding_cfg is None:
        from deeptutor.services.embedding import get_embedding_config

        embedding_cfg = get_embedding_config()

    chat_model = getattr(llm_cfg, "model", None)
    embed_model = getattr(embedding_cfg, "model", None)
    embed_dim = int(getattr(embedding_cfg, "dim", 0) or 0)
    if not chat_model:
        raise GraphRagNotConfiguredError(
            "No active chat model. Configure one under Settings → Catalog before "
            "creating a GraphRAG knowledge base."
        )
    if not embed_model:
        raise GraphRagNotConfiguredError(
            "No active embedding model. Configure one under Settings → Catalog "
            "before creating a GraphRAG knowledge base."
        )
    if not embed_dim:
        raise GraphRagNotConfiguredError(
            "No active embedding model with a known dimension. Configure one under "
            "Settings → Catalog before creating a GraphRAG knowledge base."
        )

    embedding_binding = str(getattr(embedding_cfg, "binding", "") or "")
    llm_base = getattr(llm_cfg, "effective_url", None) or getattr(llm_cfg, "base_url", None)
    embed_endpoint = getattr(embedding_cfg, "effective_url", None) or getattr(
        embedding_cfg, "base_url", None
    )
    ensure_graphrag_embedding_transport(embedding_binding, embed_endpoint)
    embed_base = graphrag_embedding_api_base(embedding_binding, embed_endpoint)

    return {

View on GitHub (pinned to 3e82f13042)

Solutions

  1. Activate an embedding model under Settings → Catalog.
  2. Confirm get_embedding_config().model returns a value in the process running GraphRAG.
  3. Prefer an OpenAI-compatible embedding profile (see errors 985/986).

Example fix

# before: get_embedding_config().model is None
# after
await settings.set_active_embedding_model("text-embedding-3-small")
Defensive patterns

Strategy: validation

Validate before calling

if not getattr(get_embedding_config(), "model", None):
    raise ConfigError("activate an embedding model first")

Prevention

When it happens

Trigger: Calling write_settings or add_documents for a GraphRAG KB with no embedding profile activated under Settings → Catalog.

Common situations: Embedding profile never set on fresh installs; embedding profile removed or renamed; per-pipeline embedding selection not persisted.

Related errors


AI-assisted analysis of HKUDS/DeepTutor@3e82f13042 (2026-08-27). Data as JSON: /api/errors/a388e21b610b5f5d. Report an issue: GitHub.