From ca4aa340f6906bb511339a63d01fed0a1d36bf2e Mon Sep 17 00:00:00 2001 From: Yeuoly <45712896+Yeuoly@users.noreply.github.com> Date: Mon, 19 Feb 2024 10:43:25 +0800 Subject: [PATCH] fix: Add model_uid validation for model_uid in Xinference models (#2468) --- api/core/model_runtime/model_providers/xinference/llm/llm.py | 3 +++ .../model_runtime/model_providers/xinference/rerank/rerank.py | 3 +++ .../xinference/text_embedding/text_embedding.py | 3 +++ 3 files changed, 9 insertions(+) diff --git a/api/core/model_runtime/model_providers/xinference/llm/llm.py b/api/core/model_runtime/model_providers/xinference/llm/llm.py index 83c003d05..ffb4a0328 100644 --- a/api/core/model_runtime/model_providers/xinference/llm/llm.py +++ b/api/core/model_runtime/model_providers/xinference/llm/llm.py @@ -97,6 +97,9 @@ class XinferenceAILargeLanguageModel(LargeLanguageModel): } """ try: + if "/" in credentials['model_uid'] or "?" in credentials['model_uid'] or "#" in credentials['model_uid']: + raise CredentialsValidateFailedError("model_uid should not contain /, ?, or #") + extra_param = XinferenceHelper.get_xinference_extra_parameter( server_url=credentials['server_url'], model_uid=credentials['model_uid'] diff --git a/api/core/model_runtime/model_providers/xinference/rerank/rerank.py b/api/core/model_runtime/model_providers/xinference/rerank/rerank.py index f1f87d47d..1399e9ccd 100644 --- a/api/core/model_runtime/model_providers/xinference/rerank/rerank.py +++ b/api/core/model_runtime/model_providers/xinference/rerank/rerank.py @@ -92,6 +92,9 @@ class XinferenceRerankModel(RerankModel): :return: """ try: + if "/" in credentials['model_uid'] or "?" in credentials['model_uid'] or "#" in credentials['model_uid']: + raise CredentialsValidateFailedError("model_uid should not contain /, ?, or #") + self.invoke( model=model, credentials=credentials, diff --git a/api/core/model_runtime/model_providers/xinference/text_embedding/text_embedding.py b/api/core/model_runtime/model_providers/xinference/text_embedding/text_embedding.py index a68bc9997..32d2b1516 100644 --- a/api/core/model_runtime/model_providers/xinference/text_embedding/text_embedding.py +++ b/api/core/model_runtime/model_providers/xinference/text_embedding/text_embedding.py @@ -113,6 +113,9 @@ class XinferenceTextEmbeddingModel(TextEmbeddingModel): :return: """ try: + if "/" in credentials['model_uid'] or "?" in credentials['model_uid'] or "#" in credentials['model_uid']: + raise CredentialsValidateFailedError("model_uid should not contain /, ?, or #") + server_url = credentials['server_url'] model_uid = credentials['model_uid'] extra_args = XinferenceHelper.get_xinference_extra_parameter(server_url=server_url, model_uid=model_uid)