{"record":{"id":"b5072a64649fc7b7","repo":"run-llama/llama_index","slug":"llama-index-llms-openai-package-cannot-be-found-b5072a","errorCode":null,"errorMessage":"`llama-index-llms-openai` package cannot be found. Please install it by using `pip install `llama-index-llms-openai`","messagePattern":"`llama-index-llms-openai` package cannot be found\\. Please install it by using `pip install `llama-index-llms-openai`","errorType":"exception","errorClass":"ImportError","httpStatus":null,"severity":"error","filePath":"llama-index-core/llama_index/core/query_engine/multi_modal.py","lineNumber":91,"sourceCode":"        image_qa_template: Optional[BasePromptTemplate] = None,\n        node_postprocessors: Optional[List[BaseNodePostprocessor]] = None,\n        callback_manager: Optional[CallbackManager] = None,\n        **kwargs: Any,\n    ) -> None:\n        self._retriever = retriever\n        if multi_modal_llm:\n            self._multi_modal_llm = multi_modal_llm\n        else:\n            try:\n                from llama_index.llms.openai import (\n                    OpenAIResponses,\n                )  # pants: no-infer-dep\n\n                self._multi_modal_llm = OpenAIResponses(\n                    model=\"gpt-4.1\", max_output_tokens=1000\n                )\n            except ImportError as e:\n                raise ImportError(\n                    \"`llama-index-llms-openai` package cannot be found. \"\n                    \"Please install it by using `pip install `llama-index-llms-openai`\"\n                )\n        self._text_qa_template = text_qa_template or DEFAULT_TEXT_QA_PROMPT\n        self._image_qa_template = image_qa_template or DEFAULT_TEXT_QA_PROMPT\n\n        self._node_postprocessors = node_postprocessors or []\n        callback_manager = callback_manager or CallbackManager([])\n        for node_postprocessor in self._node_postprocessors:\n            node_postprocessor.callback_manager = callback_manager\n\n        super().__init__(callback_manager)\n\n    def _get_prompts(self) -> Dict[str, Any]:\n        \"\"\"Get prompts.\"\"\"\n        return {\"text_qa_template\": self._text_qa_template}\n\n    def _get_prompt_modules(self) -> PromptMixinType:","sourceCodeStart":73,"sourceCodeEnd":109,"githubUrl":"https://github.com/run-llama/llama_index/blob/afd0fef371831f9bda13e5af7167cf4e981278ab/llama-index-core/llama_index/core/query_engine/multi_modal.py#L73-L109","documentation":"MultiModalQueryEngine defaults its multi-modal LLM to OpenAIResponses(model='gpt-4.1') via a lazy import from llama_index.llms.openai. If that optional integration package is not installed, the ImportError is caught and re-raised with a message pointing at pip install llama-index-llms-openai. The message text has stray backticks (from a nested f-string), but the fix is simply installing the package or supplying your own LLM.","triggerScenarios":"Constructing MultiModalQueryEngine(...) without the multi_modal_llm argument on an environment where llama-index-llms-openai is absent — e.g. a minimal `pip install llama-index-core` install, slim Docker images, or a venv that only installed the integration packages you thought you needed.","commonSituations":"Installing llama-index-core alone (it does not depend on any LLM integration); CI images trimmed for size; using a non-OpenAI provider and assuming no OpenAI package is required — but the default constructor path imports it unconditionally when multi_modal_llm is omitted.","solutions":["Install the integration: pip install llama-index-llms-openai.","Or pass your own LLM explicitly so the lazy OpenAI import never runs: MultiModalQueryEngine(..., multi_modal_llm=my_llm).","If you use a different provider, pass its multi-modal LLM (e.g. Anthropic, Gemini integration) instead of relying on the default.","For deployments, pin the integration package in requirements alongside llama-index-core to avoid environment drift."],"exampleFix":"# before (no OpenAI integration installed)\nengine = MultiModalQueryEngine(query_engine=text_engine)  # default LLM import fails\n\n# after (option A: install)\n# pip install llama-index-llms-openai\nengine = MultiModalQueryEngine(query_engine=text_engine)\n\n# after (option B: explicit LLM)\nfrom llama_index.llms.anthropic import Anthropic\nengine = MultiModalQueryEngine(\n    query_engine=text_engine,\n    multi_modal_llm=Anthropic(model=\"claude-sonnet-4-5\"),\n)","handlingStrategy":"fallback","validationCode":"try:\n    import llama_index.llms.openai  # noqa: F401\n    HAS_OPENAI_INTEGRATION = True\nexcept ImportError:\n    HAS_OPENAI_INTEGRATION = False\n\nif not HAS_OPENAI_INTEGRATION:\n    # pass multi_modal_llm explicitly or install llama-index-llms-openai first\n    assert multi_modal_llm is not None, \"provide multi_modal_llm or pip install llama-index-llms-openai\"","typeGuard":null,"tryCatchPattern":"try:\n    engine = MultiModalQueryEngine(query_engine=inner)\nexcept ImportError:\n    # either install the integration or supply your own multi-modal LLM\n    from llama_index.llms.anthropic import Anthropic\n    engine = MultiModalQueryEngine(\n        query_engine=inner, multi_modal_llm=Anthropic(model=\"claude-sonnet-4-5\")\n    )","preventionTips":["Pin llama-index-llms-openai in requirements whenever you construct MultiModalQueryEngine without an explicit LLM.","Always pass multi_modal_llm when you intend a non-OpenAI provider.","Add a smoke test constructing the engine in CI to catch missing optional dependencies early."],"tags":["llama-index","import-error","openai","optional-dependency","multi-modal"],"backgroundTag":null,"analyzedSha":"afd0fef371831f9bda13e5af7167cf4e981278ab","analyzedAt":"2026-08-15T05:42:58.429Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}