{"record":{"id":"dfaabf8936c09bde","repo":"assafelovic/gpt-researcher","slug":"unsupported-provider-n-nsupported-model-provide","errorCode":null,"errorMessage":"Unsupported {provider}.\\n\\nSupported model providers are: {supported}","messagePattern":"Unsupported (.+?)\\.\\\\n\\\\nSupported model providers are: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"gpt_researcher/llm_provider/generic/base.py","lineNumber":355,"sourceCode":"                     **kwargs\n                )\n        elif provider == \"nebius\":\n            _check_pkg(\"langchain_openai\")\n            from langchain_openai import ChatOpenAI\n\n            # NEBIUS_BASE_URL overrides the default endpoint (self-hosted / regional)\n            llm = ChatOpenAI(openai_api_base=os.getenv(\"NEBIUS_BASE_URL\", 'https://api.tokenfactory.nebius.com/v1'),\n                     openai_api_key=os.environ[\"NEBIUS_API_KEY\"],\n                     **kwargs\n                )\n        elif provider == 'netmind':\n            _check_pkg(\"langchain_netmind\")\n            from langchain_netmind import ChatNetmind\n\n            llm = ChatNetmind(**kwargs)\n        else:\n            supported = \", \".join(_SUPPORTED_PROVIDERS)\n            raise ValueError(\n                f\"Unsupported {provider}.\\n\\nSupported model providers are: {supported}\"\n            )\n        return cls(llm, chat_log, verbose=verbose)\n\n\n    async def get_chat_response(self, messages, stream, websocket=None, **kwargs):\n        self._reset_last_response_metadata()\n        if not stream:\n            # Getting output from the model chain using ainvoke for asynchronous invoking\n            output = await self.llm.ainvoke(messages, **kwargs)\n            self._capture_response_metadata(output)\n\n            res = output.content\n\n        else:\n            res = await self.stream_response(messages, websocket, **kwargs)\n\n        if self.chat_logger:","sourceCodeStart":337,"sourceCodeEnd":373,"githubUrl":"https://github.com/assafelovic/gpt-researcher/blob/6f998577d547b1e54ec662dac63583aa11e3b84b/gpt_researcher/llm_provider/generic/base.py#L337-L373","documentation":"GenericLLMProvider.from_provider dispatches on the provider name to construct a langchain chat client; unknown provider names fall through to a ValueError listing _SUPPORTED_PROVIDERS.","triggerScenarios":"Setting FAST_LLM/SMART_LLM provider to a typo ('openia'), or a provider this version doesn't support yet, then calling get_llm or conduct_research_with_tools.","commonSituations":"Version drift (provider added in newer release); custom env like 'together' on an older build; colon-format value where the model part leaked into the provider field.","solutions":["Use a provider from the error's supported list, e.g. 'openai:gpt-4o-mini'","Upgrade gpt-researcher to gain newer providers","For truly custom needs, construct your own GenericLLMProvider around a langchain chat object"],"exampleFix":"# before\nSMART_LLM=openia:gpt-4o\n# after\nSMART_LLM=openai:gpt-4o","handlingStrategy":"validation","validationCode":"PROVIDERS = {\"openai\",\"anthropic\",\"azure\",\"groq\",\"ollama\",\"bedrock\"}  # mirror _SUPPORTED_PROVIDERS\nprov = os.getenv(\"FAST_LLM\", \"openai:gpt-4o-mini\").split(\":\", 1)[0]\nassert prov in PROVIDERS, f\"unsupported LLM provider {prov}\"","typeGuard":null,"tryCatchPattern":"try:\n    llm = GenericLLMProvider.from_provider(provider, model)\nexcept ValueError as e:\n    if \"Unsupported\" in str(e):\n        llm = GenericLLMProvider.from_provider(\"openai\", \"gpt-4o-mini\")\n    else: raise","preventionTips":["Spell-check provider prefixes","Pin a gpt-researcher version and use providers from its supported list"],"tags":["python","llm","provider","config"],"backgroundTag":"unsupported-provider","analyzedSha":"6f998577d547b1e54ec662dac63583aa11e3b84b","analyzedAt":"2026-08-28T17:50:07.383Z","schemaVersion":2},"datasetVersion":"2026-08-28T21:17:43.275Z"}