fix: add adapter for datasets update checking (#12939)
This commit is contained in:
parent
15ee1e11be
commit
cc1fe70d34
@ -8,9 +8,11 @@ from typing import Any, Optional
|
|||||||
|
|
||||||
from flask_login import current_user # type: ignore
|
from flask_login import current_user # type: ignore
|
||||||
from sqlalchemy import func
|
from sqlalchemy import func
|
||||||
|
from sqlalchemy.orm import Session
|
||||||
from werkzeug.exceptions import NotFound
|
from werkzeug.exceptions import NotFound
|
||||||
|
|
||||||
from configs import dify_config
|
from configs import dify_config
|
||||||
|
from core.entities import DEFAULT_PLUGIN_ID
|
||||||
from core.errors.error import LLMBadRequestError, ProviderTokenNotInitError
|
from core.errors.error import LLMBadRequestError, ProviderTokenNotInitError
|
||||||
from core.model_manager import ModelManager
|
from core.model_manager import ModelManager
|
||||||
from core.model_runtime.entities.model_entities import ModelType
|
from core.model_runtime.entities.model_entities import ModelType
|
||||||
@ -267,7 +269,15 @@ class DatasetService:
|
|||||||
external_knowledge_api_id = data.get("external_knowledge_api_id", None)
|
external_knowledge_api_id = data.get("external_knowledge_api_id", None)
|
||||||
if not external_knowledge_api_id:
|
if not external_knowledge_api_id:
|
||||||
raise ValueError("External knowledge api id is required.")
|
raise ValueError("External knowledge api id is required.")
|
||||||
external_knowledge_binding = ExternalKnowledgeBindings.query.filter_by(dataset_id=dataset_id).first()
|
|
||||||
|
with Session(db.engine) as session:
|
||||||
|
external_knowledge_binding = (
|
||||||
|
session.query(ExternalKnowledgeBindings).filter_by(dataset_id=dataset_id).first()
|
||||||
|
)
|
||||||
|
|
||||||
|
if not external_knowledge_binding:
|
||||||
|
raise ValueError("External knowledge binding not found.")
|
||||||
|
|
||||||
if (
|
if (
|
||||||
external_knowledge_binding.external_knowledge_id != external_knowledge_id
|
external_knowledge_binding.external_knowledge_id != external_knowledge_id
|
||||||
or external_knowledge_binding.external_knowledge_api_id != external_knowledge_api_id
|
or external_knowledge_binding.external_knowledge_api_id != external_knowledge_api_id
|
||||||
@ -315,8 +325,19 @@ class DatasetService:
|
|||||||
except ProviderTokenNotInitError as ex:
|
except ProviderTokenNotInitError as ex:
|
||||||
raise ValueError(ex.description)
|
raise ValueError(ex.description)
|
||||||
else:
|
else:
|
||||||
|
# add default plugin id to both setting sets, to make sure the plugin model provider is consistent
|
||||||
|
plugin_model_provider = dataset.embedding_model_provider
|
||||||
|
if "/" not in plugin_model_provider:
|
||||||
|
plugin_model_provider = f"{DEFAULT_PLUGIN_ID}/{plugin_model_provider}/{plugin_model_provider}"
|
||||||
|
|
||||||
|
new_plugin_model_provider = data["embedding_model_provider"]
|
||||||
|
if "/" not in new_plugin_model_provider:
|
||||||
|
new_plugin_model_provider = (
|
||||||
|
f"{DEFAULT_PLUGIN_ID}/{new_plugin_model_provider}/{new_plugin_model_provider}"
|
||||||
|
)
|
||||||
|
|
||||||
if (
|
if (
|
||||||
data["embedding_model_provider"] != dataset.embedding_model_provider
|
new_plugin_model_provider != plugin_model_provider
|
||||||
or data["embedding_model"] != dataset.embedding_model
|
or data["embedding_model"] != dataset.embedding_model
|
||||||
):
|
):
|
||||||
action = "update"
|
action = "update"
|
||||||
|
Loading…
Reference in New Issue
Block a user