Compare two documents.

        Compares two input documents. Documents must be in the same format.

        :param file file_1: The first document to compare.
        :param file file_2: The second document to compare.
        :param str file_1_content_type: The content type of file_1.
        :param str file_2_content_type: The content type of file_2.
        :param str file_1_label: A text label for the first document.
        :param str file_2_label: A text label for the second document.
        :param str model: The analysis model to be used by the service. For the **Element
        classification** and **Compare two documents** methods, the default is
        `contracts`. For the **Extract tables** method, the default is `tables`. These
        defaults apply to the standalone methods as well as to the methods' use in
        batch-processing requests.
        :param dict headers: A `dict` containing the request headers
        :return: A `DetailedResponse` containing the result, headers and HTTP status code.
        :rtype: DetailedResponse

def compare_documents(self,
                          file_1,
                          file_2,
                          file_1_content_type=None,
                          file_2_content_type=None,
                          file_1_label=None,
                          file_2_label=None,
                          model=None,
                          **kwargs):
        """
        Compare two documents.

        Compares two input documents. Documents must be in the same format.

        :param file file_1: The first document to compare.
        :param file file_2: The second document to compare.
        :param str file_1_content_type: The content type of file_1.
        :param str file_2_content_type: The content type of file_2.
        :param str file_1_label: A text label for the first document.
        :param str file_2_label: A text label for the second document.
        :param str model: The analysis model to be used by the service. For the **Element
        classification** and **Compare two documents** methods, the default is
        `contracts`. For the **Extract tables** method, the default is `tables`. These
        defaults apply to the standalone methods as well as to the methods' use in
        batch-processing requests.
        :param dict headers: A `dict` containing the request headers
        :return: A `DetailedResponse` containing the result, headers and HTTP status code.
        :rtype: DetailedResponse
        """

        if file_1 is None:
            raise ValueError('file_1 must be provided')
        if file_2 is None:
            raise ValueError('file_2 must be provided')

        headers = {}
        if 'headers' in kwargs:
            headers.update(kwargs.get('headers'))
        sdk_headers = get_sdk_headers('compare-comply', 'V1',
                                      'compare_documents')
        headers.update(sdk_headers)

        params = {
            'version': self.version,
            'file_1_label': file_1_label,
            'file_2_label': file_2_label,
            'model': model
        }

        form_data = {}
        form_data['file_1'] = (None, file_1, file_1_content_type or
                               'application/octet-stream')
        form_data['file_2'] = (None, file_2, file_2_content_type or
                               'application/octet-stream')

        url = '/v1/comparison'
        response = self.request(
            method='POST',
            url=url,
            headers=headers,
            params=params,
            files=form_data,
            accept_json=True)
        return response