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
- 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').
- Audit all config stores (.env, docker-compose.yml, CI/CD variables) for LLM_PROVIDER and delete them.
- 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
- Migrate provider/model env vars in one pass (LLM_PROVIDER, FAST_LLM_MODEL, SMART_LLM_MODEL).
- Centralize LLM config in FAST_LLM/SMART_LLM '<provider>:<model>' strings.
- Assert absence of deprecated vars in CI startup checks.
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
- EMBEDDING_PROVIDER is deprecated and will be removed soon. U
- Set SMART_LLM or FAST_LLM = '<llm_provider>:<llm_model>' Eg
- Invalid reasoning effort: {reasoning_effort_str}. Valid opti
- Unsupported {provider}.\n\nSupported model providers are: {s
- max_tokens={max_tokens} exceeds the largest output limit of
AI-assisted analysis of assafelovic/gpt-researcher@6f998577d5 (2026-08-28).
Data as JSON: /api/errors/67aa3953d3f65b2b.
Report an issue: GitHub.