|
@@ -41,7 +41,8 @@ class CacheEmbedding(Embeddings):
|
|
|
embedding_queue_embeddings = []
|
|
|
try:
|
|
|
model_type_instance = cast(TextEmbeddingModel, self._model_instance.model_type_instance)
|
|
|
- model_schema = model_type_instance.get_model_schema(self._model_instance.model, self._model_instance.credentials)
|
|
|
+ model_schema = model_type_instance.get_model_schema(self._model_instance.model,
|
|
|
+ self._model_instance.credentials)
|
|
|
max_chunks = model_schema.model_properties[ModelPropertyKey.MAX_CHUNKS] \
|
|
|
if model_schema and ModelPropertyKey.MAX_CHUNKS in model_schema.model_properties else 1
|
|
|
for i in range(0, len(embedding_queue_texts), max_chunks):
|
|
@@ -61,17 +62,20 @@ class CacheEmbedding(Embeddings):
|
|
|
except Exception as e:
|
|
|
logging.exception('Failed transform embedding: ', e)
|
|
|
cache_embeddings = []
|
|
|
- for i, embedding in zip(embedding_queue_indices, embedding_queue_embeddings):
|
|
|
- text_embeddings[i] = embedding
|
|
|
- hash = helper.generate_text_hash(texts[i])
|
|
|
- if hash not in cache_embeddings:
|
|
|
- embedding_cache = Embedding(model_name=self._model_instance.model,
|
|
|
- hash=hash,
|
|
|
- provider_name=self._model_instance.provider)
|
|
|
- embedding_cache.set_embedding(embedding)
|
|
|
- db.session.add(embedding_cache)
|
|
|
- cache_embeddings.append(hash)
|
|
|
- db.session.commit()
|
|
|
+ try:
|
|
|
+ for i, embedding in zip(embedding_queue_indices, embedding_queue_embeddings):
|
|
|
+ text_embeddings[i] = embedding
|
|
|
+ hash = helper.generate_text_hash(texts[i])
|
|
|
+ if hash not in cache_embeddings:
|
|
|
+ embedding_cache = Embedding(model_name=self._model_instance.model,
|
|
|
+ hash=hash,
|
|
|
+ provider_name=self._model_instance.provider)
|
|
|
+ embedding_cache.set_embedding(embedding)
|
|
|
+ db.session.add(embedding_cache)
|
|
|
+ cache_embeddings.append(hash)
|
|
|
+ db.session.commit()
|
|
|
+ except IntegrityError:
|
|
|
+ db.session.rollback()
|
|
|
except Exception as ex:
|
|
|
db.session.rollback()
|
|
|
logger.error('Failed to embed documents: ', ex)
|