From 18543a0703fe1108b6c5c34113e697f904e3568b Mon Sep 17 00:00:00 2001 From: CaptainB Date: Mon, 27 Oct 2025 12:46:49 +0800 Subject: [PATCH] feat: add OpenAI embedding model parameters form MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --bug=1062976 --user=刘瑞斌 【模型】openai的向量模型,设置dimensions参数后,向量化失败 https://www.tapd.cn/62980211/s/1790130 --- .../credential/embedding.py | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/apps/models_provider/impl/openai_model_provider/credential/embedding.py b/apps/models_provider/impl/openai_model_provider/credential/embedding.py index 8e04ef567..b86285a4e 100644 --- a/apps/models_provider/impl/openai_model_provider/credential/embedding.py +++ b/apps/models_provider/impl/openai_model_provider/credential/embedding.py @@ -13,9 +13,27 @@ from django.utils.translation import gettext as _ from common import forms from common.exception.app_exception import AppApiException -from common.forms import BaseForm +from common.forms import BaseForm, TooltipLabel from models_provider.base_model_provider import BaseModelCredential, ValidCode +class OpenAIEmbeddingModelParams(BaseForm): + dimensions = forms.SingleSelect( + TooltipLabel( + _('Dimensions'), + _('') + ), + required=True, + default_value=1024, + value_field='value', + text_field='label', + option_list=[ + {'label': '1536', 'value': '1536'}, + {'label': '1024', 'value': '1024'}, + {'label': '768', 'value': '768'}, + {'label': '512', 'value': '512'}, + ] + ) + class OpenAIEmbeddingCredential(BaseForm, BaseModelCredential): def is_valid(self, model_type: str, model_name, model_credential: Dict[str, object], model_params, provider, @@ -49,5 +67,8 @@ class OpenAIEmbeddingCredential(BaseForm, BaseModelCredential): def encryption_dict(self, model: Dict[str, object]): return {**model, 'api_key': super().encryption(model.get('api_key', ''))} + def get_model_params_setting_form(self, model_name): + return OpenAIEmbeddingModelParams() + api_base = forms.TextInputField('API URL', required=True) api_key = forms.PasswordInputField('API Key', required=True)