{"record":{"id":"4834ef5298862a7f","repo":"OpenBMB/ChatDev","slug":"unsupported-embedding-model-model","errorCode":null,"errorMessage":"Unsupported embedding model: {model}","messagePattern":"Unsupported embedding model: (.+?)","errorType":"validation","errorClass":"ValueError","httpStatus":null,"severity":"error","filePath":"runtime/node/agent/memory/embedding.py","lineNumber":78,"sourceCode":"                if current_chunk:\n                    chunks.append(current_chunk.strip())\n                current_chunk = sentence + \"\\u3002\"\n        \n        if current_chunk:\n            chunks.append(current_chunk.strip())\n        \n        return chunks\n\nclass EmbeddingFactory:\n    @staticmethod\n    def create_embedding(embedding_config: EmbeddingConfig) -> EmbeddingBase:\n        model = embedding_config.provider\n        if model == 'openai':\n            return OpenAIEmbedding(embedding_config)\n        elif model == 'local':\n            return LocalEmbedding(embedding_config)\n        else:\n            raise ValueError(f\"Unsupported embedding model: {model}\")\n\nclass OpenAIEmbedding(EmbeddingBase):\n    def __init__(self, embedding_config: EmbeddingConfig):\n        super().__init__(embedding_config)\n        self.base_url = embedding_config.base_url\n        self.api_key = embedding_config.api_key\n        self.model_name = embedding_config.model or \"text-embedding-3-small\"  # Default model\n        self.max_length = embedding_config.params.get('max_length', 8191)\n        self.use_chunking = embedding_config.params.get('use_chunking', False)\n        self.chunk_strategy = embedding_config.params.get('chunk_strategy', 'average')\n        self._fallback_dim = 1536  # Default; updated after first successful call\n\n        if self.base_url:\n            self.client = openai.OpenAI(api_key=self.api_key, base_url=self.base_url)\n        else:\n            self.client = openai.OpenAI(api_key=self.api_key)\n\n    @retry(wait=wait_random_exponential(min=2, max=5), stop=stop_after_attempt(10))","sourceCodeStart":60,"sourceCodeEnd":96,"githubUrl":"https://github.com/OpenBMB/ChatDev/blob/4fb2db0ea90375ce1059f44fe03ffbd191a7a169/runtime/node/agent/memory/embedding.py#L60-L96","documentation":"create_embedding only supports provider 'openai' and 'local'. Any other value in embedding_config.provider raises this error before any embedding work starts.","triggerScenarios":"Setting provider to 'azure', 'huggingface', 'sentence-transformers', 'ollama', or a typo like 'OpenAI' (case-sensitive) in the embedding config, then constructing the agent/memory that calls create_embedding.","commonSituations":"Assuming case-insensitive provider matching; migrating configs from other frameworks whose provider names differ; using an unsupported backend.","solutions":["Set provider to exactly 'openai' or 'local'","For local sentence-transformer models use provider='local' with params.model_path","Check for casing/whitespace typos in the provider field"],"exampleFix":"# before\nEmbeddingConfig(provider='OpenAI', ...)\n\n# after\nEmbeddingConfig(provider='openai', ...)","handlingStrategy":"validation","validationCode":"if embedding_config.provider not in ('openai', 'local'):\n    raise ConfigError(f\"unsupported provider {embedding_config.provider!r}; use 'openai' or 'local'\")\nemb = create_embedding(embedding_config)","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Whitelist provider strings at config load","Watch for casing/whitespace in provider names"],"tags":["embedding","provider","configuration"],"backgroundTag":"unsupported-provider","analyzedSha":"4fb2db0ea90375ce1059f44fe03ffbd191a7a169","analyzedAt":"2026-08-27T14:35:29.622Z","schemaVersion":2},"datasetVersion":"2026-08-27T19:17:21.184Z"}