Langchain-Chatchat/server/schema_validators/model_credential_schema_validator.py
Leb 980f321bec
diiii
diii
2024-03-13 19:51:36 +08:00

29 lines
1.1 KiB
Python

from core.model_runtime.entities.model_entities import ModelType
from core.model_runtime.entities.provider_entities import ModelCredentialSchema
from core.model_runtime.schema_validators.common_validator import CommonValidator
class ModelCredentialSchemaValidator(CommonValidator):
def __init__(self, model_type: ModelType, model_credential_schema: ModelCredentialSchema):
self.model_type = model_type
self.model_credential_schema = model_credential_schema
def validate_and_filter(self, credentials: dict) -> dict:
"""
Validate model credentials
:param credentials: model credentials
:return: filtered credentials
"""
if self.model_credential_schema is None:
raise ValueError("Model credential schema is None")
# get the credential_form_schemas in provider_credential_schema
credential_form_schemas = self.model_credential_schema.credential_form_schemas
credentials["__model_type"] = self.model_type.value
return self._validate_and_filter_credential_form_schemas(credential_form_schemas, credentials)