{"record":{"id":"aeae73debd8c1154","repo":"mem0ai/mem0","slug":"sarvam-api-key-is-required-set-sarvam-api-key-env","errorCode":null,"errorMessage":"Sarvam API key is required. Set SARVAM_API_KEY environment variable or provide api_key in config.","messagePattern":"Sarvam API key is required\\. Set SARVAM_API_KEY environment variable or provide api_key in config\\.","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"mem0/llms/sarvam.py","lineNumber":22,"sourceCode":"import requests\n\nfrom mem0.configs.llms.base import BaseLlmConfig\nfrom mem0.llms.base import LLMBase\n\n\nclass SarvamLLM(LLMBase):\n    def __init__(self, config: Optional[BaseLlmConfig] = None):\n        super().__init__(config)\n\n        # Set default model if not provided\n        if not self.config.model:\n            self.config.model = \"sarvam-m\"\n\n        # Get API key from config or environment variable\n        self.api_key = self.config.api_key or os.getenv(\"SARVAM_API_KEY\")\n\n        if not self.api_key:\n            raise ValueError(\n                \"Sarvam API key is required. Set SARVAM_API_KEY environment variable or provide api_key in config.\"\n            )\n\n        # Set base URL - use config value or environment or default\n        self.base_url = (\n            getattr(self.config, \"sarvam_base_url\", None) or os.getenv(\"SARVAM_API_BASE\") or \"https://api.sarvam.ai/v1\"\n        )\n\n    def generate_response(self, messages: List[Dict[str, str]], response_format=None, **kwargs) -> str:\n        \"\"\"\n        Generate a response based on the given messages using Sarvam-M.\n\n        Args:\n            messages (list): List of message dicts containing 'role' and 'content'.\n            response_format (str or object, optional): Format of the response.\n                                                     Currently not used by Sarvam API.\n            **kwargs: Additional provider-specific parameters forwarded to the Sarvam\n                request payload (matches the ``LLMBase.generate_response`` contract).","sourceCodeStart":4,"sourceCodeEnd":40,"githubUrl":"https://github.com/mem0ai/mem0/blob/001c235229be8795e3834520467bd0d661ed8f34/mem0/llms/sarvam.py#L4-L40","documentation":"Error \"Sarvam API key is required. Set SARVAM_API_KEY environment variable or provide api_key in config.\" thrown in mem0ai/mem0.","triggerScenarios":"Thrown at mem0/llms/sarvam.py:22 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Set the SARVAM_API_KEY environment variable or pass api_key in the LLM config."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"001c235229be8795e3834520467bd0d661ed8f34","analyzedAt":"2026-08-15T01:55:42.685Z","schemaVersion":2},"datasetVersion":"2026-08-15T22:17:37.221Z"}