From 85be2e9aa72b14577a82b45c40aea15e16f39131 Mon Sep 17 00:00:00 2001 From: Scott Euser <37198-scotteuser@users.noreply.drupalcode.org> Date: Sat, 25 Nov 2023 14:51:56 +0000 Subject: [PATCH] Issue #3402695 by scott_euser: OpenAI Embeddings causes error deleting media files --- .../openai_embeddings.module | 43 ++++++++++--------- 1 file changed, 22 insertions(+), 21 deletions(-) diff --git a/modules/openai_embeddings/openai_embeddings.module b/modules/openai_embeddings/openai_embeddings.module index 9d968f8a..6544b312 100644 --- a/modules/openai_embeddings/openai_embeddings.module +++ b/modules/openai_embeddings/openai_embeddings.module @@ -28,32 +28,33 @@ function openai_embeddings_entity_delete(EntityInterface $entity) { $plugin_id = \Drupal::configFactory() ->get('openai_embeddings.settings') ->get('vector_client_plugin'); - $vector_client = \Drupal::service('plugin.manager.vector_client') - ->createInstance($plugin_id); + if ($plugin_id) { + $vector_client = \Drupal::service('plugin.manager.vector_client')->createInstance($plugin_id); - try { - $records = \Drupal::database()->query('SELECT entity_id, entity_type, field_name FROM {openai_embeddings} WHERE entity_id = :entity_id AND entity_type = :entity_type', - [ - ':entity_id' => $entity->id(), - ':entity_type' => $entity->getEntityTypeId(), - ] - ); - - foreach ($records as $record) { - $vector_client->delete( - [], - FALSE, - $record->entity_type . ':' . $record->field_name, + try { + $records = \Drupal::database()->query('SELECT entity_id, entity_type, field_name FROM {openai_embeddings} WHERE entity_id = :entity_id AND entity_type = :entity_type', [ - 'entity_id' => $entity->id(), - 'entity_type' => $entity->getEntityTypeId(), - 'bundle' => $entity->bundle(), + ':entity_id' => $entity->id(), + ':entity_type' => $entity->getEntityTypeId(), ] ); + + foreach ($records as $record) { + $vector_client->delete( + [], + FALSE, + $record->entity_type . ':' . $record->field_name, + [ + 'entity_id' => $entity->id(), + 'entity_type' => $entity->getEntityTypeId(), + 'bundle' => $entity->bundle(), + ] + ); + } + } + catch (\Exception $e) { + \Drupal::logger('openai_embeddings')->error('Error trying to delete record(s) in the vector database.'); } - } - catch (\Exception $e) { - \Drupal::logger('openai_embeddings')->error('Error trying to delete record(s) in the vector database.'); } \Drupal::database()->delete('openai_embeddings') -- GitLab