mirror of
https://github.com/langgenius/dify.git
synced 2024-11-16 11:42:29 +08:00
fix(api/core/model_manager.py): Avoid mutation during iteration. (#6536)
This commit is contained in:
parent
617847e3c0
commit
cd7fa8027a
|
@ -410,10 +410,9 @@ class LBModelManager:
|
||||||
self._model = model
|
self._model = model
|
||||||
self._load_balancing_configs = load_balancing_configs
|
self._load_balancing_configs = load_balancing_configs
|
||||||
|
|
||||||
for load_balancing_config in self._load_balancing_configs:
|
for load_balancing_config in self._load_balancing_configs[:]: # Iterate over a shallow copy of the list
|
||||||
if load_balancing_config.name == "__inherit__":
|
if load_balancing_config.name == "__inherit__":
|
||||||
if not managed_credentials:
|
if not managed_credentials:
|
||||||
# FIXME: Mutation to loop iterable `self._load_balancing_configs` during iteration
|
|
||||||
# remove __inherit__ if managed credentials is not provided
|
# remove __inherit__ if managed credentials is not provided
|
||||||
self._load_balancing_configs.remove(load_balancing_config)
|
self._load_balancing_configs.remove(load_balancing_config)
|
||||||
else:
|
else:
|
||||||
|
|
|
@ -38,11 +38,10 @@ class BaseKeyword(ABC):
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
def _filter_duplicate_texts(self, texts: list[Document]) -> list[Document]:
|
def _filter_duplicate_texts(self, texts: list[Document]) -> list[Document]:
|
||||||
for text in texts:
|
for text in texts[:]:
|
||||||
doc_id = text.metadata['doc_id']
|
doc_id = text.metadata['doc_id']
|
||||||
exists_duplicate_node = self.text_exists(doc_id)
|
exists_duplicate_node = self.text_exists(doc_id)
|
||||||
if exists_duplicate_node:
|
if exists_duplicate_node:
|
||||||
# FIXME: Mutation to loop iterable `texts` during iteration
|
|
||||||
texts.remove(text)
|
texts.remove(text)
|
||||||
|
|
||||||
return texts
|
return texts
|
||||||
|
|
|
@ -57,11 +57,10 @@ class BaseVector(ABC):
|
||||||
raise NotImplementedError
|
raise NotImplementedError
|
||||||
|
|
||||||
def _filter_duplicate_texts(self, texts: list[Document]) -> list[Document]:
|
def _filter_duplicate_texts(self, texts: list[Document]) -> list[Document]:
|
||||||
for text in texts:
|
for text in texts[:]:
|
||||||
doc_id = text.metadata['doc_id']
|
doc_id = text.metadata['doc_id']
|
||||||
exists_duplicate_node = self.text_exists(doc_id)
|
exists_duplicate_node = self.text_exists(doc_id)
|
||||||
if exists_duplicate_node:
|
if exists_duplicate_node:
|
||||||
# FIXME: Mutation to loop iterable `texts` during iteration
|
|
||||||
texts.remove(text)
|
texts.remove(text)
|
||||||
|
|
||||||
return texts
|
return texts
|
||||||
|
|
|
@ -153,11 +153,10 @@ class Vector:
|
||||||
return CacheEmbedding(embedding_model)
|
return CacheEmbedding(embedding_model)
|
||||||
|
|
||||||
def _filter_duplicate_texts(self, texts: list[Document]) -> list[Document]:
|
def _filter_duplicate_texts(self, texts: list[Document]) -> list[Document]:
|
||||||
for text in texts:
|
for text in texts[:]:
|
||||||
doc_id = text.metadata['doc_id']
|
doc_id = text.metadata['doc_id']
|
||||||
exists_duplicate_node = self.text_exists(doc_id)
|
exists_duplicate_node = self.text_exists(doc_id)
|
||||||
if exists_duplicate_node:
|
if exists_duplicate_node:
|
||||||
# FIXME: Mutation to loop iterable `texts` during iteration
|
|
||||||
texts.remove(text)
|
texts.remove(text)
|
||||||
|
|
||||||
return texts
|
return texts
|
||||||
|
|
|
@ -131,9 +131,8 @@ class ModelLoadBalancingService:
|
||||||
load_balancing_configs.insert(0, inherit_config)
|
load_balancing_configs.insert(0, inherit_config)
|
||||||
else:
|
else:
|
||||||
# move the inherit configuration to the first
|
# move the inherit configuration to the first
|
||||||
for i, load_balancing_config in enumerate(load_balancing_configs):
|
for i, load_balancing_config in enumerate(load_balancing_configs[:]):
|
||||||
if load_balancing_config.name == '__inherit__':
|
if load_balancing_config.name == '__inherit__':
|
||||||
# FIXME: Mutation to loop iterable `load_balancing_configs` during iteration
|
|
||||||
inherit_config = load_balancing_configs.pop(i)
|
inherit_config = load_balancing_configs.pop(i)
|
||||||
load_balancing_configs.insert(0, inherit_config)
|
load_balancing_configs.insert(0, inherit_config)
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user