def prompt_for_credential()

in pai/toolkit/config.py [0:0]


def prompt_for_credential():
    default_credential_client = _get_default_credential_client()
    if not default_credential_client:
        # Prompt for Access Key ID and Access Key Secret
        access_key_id = prompt(
            localized_text(
                "Please enter your Alibaba Cloud account AccessKeyId: ",
                "请输入您的阿里云账号AccessKeyId: ",
            ),
            validator=Validator.from_callable(
                validate_func=not_empty,
                error_message=localized_text(
                    "AccessKeyId can not be empty string.",
                    "AccessKeyId 不能为空",
                ),
                move_cursor_to_end=True,
            ),
        ).strip()
        access_key_secret = prompt(
            localized_text(
                "Please enter your Alibaba Cloud account AccessKeySecret: ",
                "请输入您的阿里云账号AccessKeySecret: ",
            ),
            is_password=True,
            validator=Validator.from_callable(
                validate_func=not_empty,
                error_message=localized_text(
                    "AccessKeySecret can not be empty string.",
                    "AccessKeySecret 不能为空",
                ),
                move_cursor_to_end=True,
            ),
        ).strip()
        credential_config = CredentialConfig(
            access_key_id=access_key_id,
            access_key_secret=access_key_secret,
            type=auth_constant.ACCESS_KEY,
        )
        credential_client = CredentialClient(config=credential_config)
    else:
        # Credential chain documentation:
        # https://help.aliyun.com/zh/sdk/developer-reference/v2-manage-python-access-credentials
        print(
            localized_text(
                "Use credential from default credential provider chain:",
                "使用默认的凭证链获取访问密钥:",
            )
        )

        credential_source_hint = CredentialProviderType.credential_hint(
            CredentialProviderType.get_current_provider()
        )
        print(credential_source_hint)
        credential_client = default_credential_client
        credential_config = None

    region_id = prompt_for_region()
    print_highlight(
        localized_text(
            "The current configuration of Credential and RegionId:",
            "当前配置的访问密钥和地域:",
        )
    )

    access_key_id = credential_client.get_access_key_id()
    access_key_secret = credential_client.get_access_key_secret()
    security_token = credential_client.get_security_token()

    print_highlight(f"AccessKeyId: {access_key_id}")
    print_highlight(f"AccessKeySecret: { mask_secret(access_key_secret)}")
    if security_token:
        print_highlight(f"SecurityToken: {mask_and_trim(security_token)}")
    print_highlight(f"RegionId: {region_id}")
    user_profile = UserProfile(
        credential_config=credential_config,
        region_id=region_id,
    )
    print_highlight(f"IdentityType: {user_profile.identify_type}")

    # Write input credential to default credential config file.
    if credential_config:
        raw_config = CREDENTIAL_INI_TEMPLATE.format(
            access_key_id=access_key_id,
            access_key_secret=access_key_secret,
        )
        os.makedirs(os.path.dirname(DEFAULT_CREDENTIAL_INI_PATH), exist_ok=True)
        with open(DEFAULT_CREDENTIAL_INI_PATH, "w") as f:
            f.write(raw_config)
        print(
            localized_text("Credential saved to: ", "密钥已保存至: ")
            + DEFAULT_CREDENTIAL_INI_PATH
        )

    check_product_authorization(user_profile)
    return user_profile