Get embedder based on configuration or parameters. Args: is_local_ollama: Legacy parameter for Ollama embedder use_google_embedder: Legacy parameter for Google embedder embedder_type: Direct specification of embedder type ('ollama', 'google', 'bedrock', 'openai')
(is_local_ollama: bool = False, use_google_embedder: bool = False, embedder_type: str = None)
| 4 | |
| 5 | |
| 6 | def get_embedder(is_local_ollama: bool = False, use_google_embedder: bool = False, embedder_type: str = None) -> adal.Embedder: |
| 7 | """Get embedder based on configuration or parameters. |
| 8 | |
| 9 | Args: |
| 10 | is_local_ollama: Legacy parameter for Ollama embedder |
| 11 | use_google_embedder: Legacy parameter for Google embedder |
| 12 | embedder_type: Direct specification of embedder type ('ollama', 'google', 'bedrock', 'openai') |
| 13 | |
| 14 | Returns: |
| 15 | adal.Embedder: Configured embedder instance |
| 16 | """ |
| 17 | # Determine which embedder config to use |
| 18 | if embedder_type: |
| 19 | if embedder_type == 'ollama': |
| 20 | embedder_config = configs["embedder_ollama"] |
| 21 | elif embedder_type == 'google': |
| 22 | embedder_config = configs["embedder_google"] |
| 23 | elif embedder_type == 'bedrock': |
| 24 | embedder_config = configs["embedder_bedrock"] |
| 25 | else: # default to openai |
| 26 | embedder_config = configs["embedder"] |
| 27 | elif is_local_ollama: |
| 28 | embedder_config = configs["embedder_ollama"] |
| 29 | elif use_google_embedder: |
| 30 | embedder_config = configs["embedder_google"] |
| 31 | else: |
| 32 | # Auto-detect based on current configuration |
| 33 | current_type = get_embedder_type() |
| 34 | if current_type == 'bedrock': |
| 35 | embedder_config = configs["embedder_bedrock"] |
| 36 | elif current_type == 'ollama': |
| 37 | embedder_config = configs["embedder_ollama"] |
| 38 | elif current_type == 'google': |
| 39 | embedder_config = configs["embedder_google"] |
| 40 | else: |
| 41 | embedder_config = configs["embedder"] |
| 42 | |
| 43 | # --- Initialize Embedder --- |
| 44 | model_client_class = embedder_config["model_client"] |
| 45 | if "initialize_kwargs" in embedder_config: |
| 46 | model_client = model_client_class(**embedder_config["initialize_kwargs"]) |
| 47 | else: |
| 48 | model_client = model_client_class() |
| 49 | |
| 50 | # Create embedder with basic parameters |
| 51 | embedder_kwargs = {"model_client": model_client, "model_kwargs": embedder_config["model_kwargs"]} |
| 52 | |
| 53 | embedder = adal.Embedder(**embedder_kwargs) |
| 54 | |
| 55 | # Set batch_size as an attribute if available (not a constructor parameter) |
| 56 | if "batch_size" in embedder_config: |
| 57 | embedder.batch_size = embedder_config["batch_size"] |
| 58 | return embedder |