From 4cbeb6815b38712e7e8320b2b95e8891878d6b3a Mon Sep 17 00:00:00 2001 From: Yanyi Liu Date: Fri, 9 Aug 2024 19:11:57 +0800 Subject: [PATCH] Fix: Wrong cutoff length lead to empty input in openai compatible embedding model. (#7133) --- .../model_providers/ollama/text_embedding/text_embedding.py | 2 +- .../openai_api_compatible/text_embedding/text_embedding.py | 2 +- .../model_providers/perfxcloud/text_embedding/text_embedding.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/api/core/model_runtime/model_providers/ollama/text_embedding/text_embedding.py b/api/core/model_runtime/model_providers/ollama/text_embedding/text_embedding.py index 069de9acec..9e26d35afc 100644 --- a/api/core/model_runtime/model_providers/ollama/text_embedding/text_embedding.py +++ b/api/core/model_runtime/model_providers/ollama/text_embedding/text_embedding.py @@ -72,7 +72,7 @@ class OllamaEmbeddingModel(TextEmbeddingModel): num_tokens = self._get_num_tokens_by_gpt2(text) if num_tokens >= context_size: - cutoff = int(len(text) * (np.floor(context_size / num_tokens))) + cutoff = int(np.floor(len(text) * (context_size / num_tokens))) # if num tokens is larger than context length, only use the start inputs.append(text[0: cutoff]) else: diff --git a/api/core/model_runtime/model_providers/openai_api_compatible/text_embedding/text_embedding.py b/api/core/model_runtime/model_providers/openai_api_compatible/text_embedding/text_embedding.py index 3467cd6dfd..363054b084 100644 --- a/api/core/model_runtime/model_providers/openai_api_compatible/text_embedding/text_embedding.py +++ b/api/core/model_runtime/model_providers/openai_api_compatible/text_embedding/text_embedding.py @@ -76,7 +76,7 @@ class OAICompatEmbeddingModel(_CommonOAI_API_Compat, TextEmbeddingModel): num_tokens = self._get_num_tokens_by_gpt2(text) if num_tokens >= context_size: - cutoff = int(len(text) * (np.floor(context_size / num_tokens))) + cutoff = int(np.floor(len(text) * (context_size / num_tokens))) # if num tokens is larger than context length, only use the start inputs.append(text[0: cutoff]) else: diff --git a/api/core/model_runtime/model_providers/perfxcloud/text_embedding/text_embedding.py b/api/core/model_runtime/model_providers/perfxcloud/text_embedding/text_embedding.py index 5a99ad301f..11d57e3749 100644 --- a/api/core/model_runtime/model_providers/perfxcloud/text_embedding/text_embedding.py +++ b/api/core/model_runtime/model_providers/perfxcloud/text_embedding/text_embedding.py @@ -79,7 +79,7 @@ class OAICompatEmbeddingModel(_CommonOAI_API_Compat, TextEmbeddingModel): num_tokens = self._get_num_tokens_by_gpt2(text) if num_tokens >= context_size: - cutoff = int(len(text) * (np.floor(context_size / num_tokens))) + cutoff = int(np.floor(len(text) * (context_size / num_tokens))) # if num tokens is larger than context length, only use the start inputs.append(text[0: cutoff]) else: