assafelovic/gpt-researcher · warning · FutureWarning

LLM_PROVIDER, FAST_LLM_MODEL and SMART_LLM_MODEL are depreca

Error message

LLM_PROVIDER, FAST_LLM_MODEL and SMART_LLM_MODEL are deprecated and will be removed soon. Use FAST_LLM and SMART_LLM instead.

What it means

FutureWarning from Config when LLM_PROVIDER is set: LLM_PROVIDER (plus FAST_LLM_MODEL/SMART_LLM_MODEL) is deprecated in favor of the combined FAST_LLM and SMART_LLM settings. The old value is still applied to both fast and smart providers, but will be removed.

Source

Thrown at gpt_researcher/config/config.py:134

            elif embedding_provider == "openai":
                self.embedding_model = "text-embedding-3-large"
            elif embedding_provider == "azure_openai":
                self.embedding_model = "text-embedding-3-large"
            elif embedding_provider == "huggingface":
                self.embedding_model = "sentence-transformers/all-MiniLM-L6-v2"
            elif embedding_provider == "gigachat":
                self.embedding_model = "Embeddings"
            elif embedding_provider == "google_genai":
                self.embedding_model = "text-embedding-004"
            else:
                raise Exception("Embedding provider not found.")

        _deprecation_warning = (
            "LLM_PROVIDER, FAST_LLM_MODEL and SMART_LLM_MODEL are deprecated and "
            "will be removed soon. Use FAST_LLM and SMART_LLM instead."
        )
        if os.getenv("LLM_PROVIDER") is not None:
            warnings.warn(_deprecation_warning, FutureWarning, stacklevel=2)
            self.fast_llm_provider = (
                os.environ["LLM_PROVIDER"] or self.fast_llm_provider
            )
            self.smart_llm_provider = (
                os.environ["LLM_PROVIDER"] or self.smart_llm_provider
            )
        if os.getenv("FAST_LLM_MODEL") is not None:
            warnings.warn(_deprecation_warning, FutureWarning, stacklevel=2)
            self.fast_llm_model = os.environ["FAST_LLM_MODEL"] or self.fast_llm_model
        if os.getenv("SMART_LLM_MODEL") is not None:
            warnings.warn(_deprecation_warning, FutureWarning, stacklevel=2)
            self.smart_llm_model = os.environ["SMART_LLM_MODEL"] or self.smart_llm_model

    def _set_doc_path(self, config: Dict[str, Any]) -> None:
        self.doc_path = config['DOC_PATH']
        if self.doc_path:
            try:
                self.validate_doc_path()

View on GitHub (pinned to 6f998577d5)

Solutions

  1. Remove LLM_PROVIDER and set FAST_LLM and SMART_LLM to provider/model strings (e.g. FAST_LLM='openai:gpt-4o-mini', SMART_LLM='openai:gpt-4o').
  2. Audit all config stores (.env, docker-compose.yml, CI/CD variables) for LLM_PROVIDER and delete them.
  3. Note the same deprecation message also fires for FAST_LLM_MODEL/SMART_LLM_MODEL — migrate those in the same pass.

Example fix

# before
LLM_PROVIDER=openai
FAST_LLM_MODEL=gpt-4o-mini
SMART_LLM_MODEL=gpt-4o
# after
FAST_LLM=openai:gpt-4o-mini
SMART_LLM=openai:gpt-4o
Defensive patterns

Strategy: validation

Validate before calling

import os
assert "LLM_PROVIDER" not in os.environ, "use FAST_LLM / SMART_LLM instead of LLM_PROVIDER"

Prevention

When it happens

Trigger: Instantiating Config/GPTResearcher with LLM_PROVIDER defined in the environment (even if the new FAST_LLM/SMART_LLM vars are also set).

Common situations: Migrating from older gpt-researcher versions; leftover .env, docker-compose environment blocks, or hosting platforms (Railway/Heroku config vars) carrying LLM_PROVIDER.

Related errors


AI-assisted analysis of assafelovic/gpt-researcher@6f998577d5 (2026-08-28). Data as JSON: /api/errors/67aa3953d3f65b2b. Report an issue: GitHub.