feat: add OpenAI embedding model parameters form

--bug=1062976 --user=刘瑞斌 【模型】openai的向量模型,设置dimensions参数后,向量化失败 https://www.tapd.cn/62980211/s/1790130
v3.2
CaptainB 2025-10-27 12:46:49 +08:00
parent 58f29ee2f6
commit 18543a0703
1 changed files with 22 additions and 1 deletions

View File

@ -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)