From dd1073ff33c08d81ff75a39ee6b045ab00d188a5 Mon Sep 17 00:00:00 2001 From: Scott Euser <37198-scotteuser@users.noreply.drupalcode.org> Date: Mon, 30 Sep 2024 13:13:36 +0000 Subject: [PATCH] Issue #3477767 by scott_euser: Fix issue with embedding strategy configuration --- .../backend/SearchApiAiSearchBackend.php | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/modules/ai_search/src/Plugin/search_api/backend/SearchApiAiSearchBackend.php b/modules/ai_search/src/Plugin/search_api/backend/SearchApiAiSearchBackend.php index 21510376e..e4bfa0adb 100644 --- a/modules/ai_search/src/Plugin/search_api/backend/SearchApiAiSearchBackend.php +++ b/modules/ai_search/src/Plugin/search_api/backend/SearchApiAiSearchBackend.php @@ -127,8 +127,8 @@ class SearchApiAiSearchBackend extends AiSearchBackendPluginBase implements Plug if (!isset($config['database_settings'])) { $config['database_settings'] = []; } - if (!isset($config['embeddings_strategy'])) { - $config['embeddings_strategy'] = NULL; + if (!isset($config['embedding_strategy'])) { + $config['embedding_strategy'] = NULL; } return $config; } @@ -248,6 +248,18 @@ class SearchApiAiSearchBackend extends AiSearchBackendPluginBase implements Plug } } + /** + * {@inheritdoc} + */ + public function setConfiguration(array $configuration) { + $this->configuration = $configuration + $this->defaultConfiguration(); + if ($this->configuration['embedding_strategy_container']) { + $this->configuration = array_merge($this->configuration, $this->configuration['embedding_strategy_container']); + unset($this->configuration['embedding_strategy_container']); + } + parent::setConfiguration($this->configuration); + } + /** * {@inheritdoc} */ @@ -278,6 +290,7 @@ class SearchApiAiSearchBackend extends AiSearchBackendPluginBase implements Plug * @throws \Drupal\Component\Plugin\Exception\PluginException */ public function submitConfigurationForm(array &$form, FormStateInterface $form_state): void { + $this->setConfiguration($form_state->getValues()); $vdb_client = $this->vdbProviderManager->createInstance($this->configuration['database']); $vdb_client->submitSettingsForm($form, $form_state); } -- GitLab