def _get_score_modifiers(self, marqo_query: MarqoQuery) -> Optional[Dict[str, Dict[str, float]]]:
        """
        Returns classic score modifiers (from tensor or lexical queries) as a dictionary of dictionaries.
        Split between 'mult' and 'add' weights.
        """
        if marqo_query.score_modifiers:
            mult_tensor, add_tensor = self._convert_score_modifiers_to_tensors(marqo_query.score_modifiers)

            if self._marqo_index_version < self._HYBRID_SEARCH_MINIMUM_VERSION:
                return {
                    constants.QUERY_INPUT_SCORE_MODIFIERS_MULT_WEIGHTS_2_9: mult_tensor,
                    constants.QUERY_INPUT_SCORE_MODIFIERS_ADD_WEIGHTS_2_9: add_tensor
                }
            elif isinstance(marqo_query, MarqoTensorQuery):
                return {
                    constants.QUERY_INPUT_SCORE_MODIFIERS_MULT_WEIGHTS_TENSOR: mult_tensor,
                    constants.QUERY_INPUT_SCORE_MODIFIERS_ADD_WEIGHTS_TENSOR: add_tensor
                }
            elif isinstance(marqo_query, MarqoLexicalQuery):
                return {
                    constants.QUERY_INPUT_SCORE_MODIFIERS_MULT_WEIGHTS_LEXICAL: mult_tensor,
                    constants.QUERY_INPUT_SCORE_MODIFIERS_ADD_WEIGHTS_LEXICAL: add_tensor
                }
            else:
                raise InternalError(f'Unknown query type {type(marqo_query)}')

        return None

        Returns classic score modifiers (from tensor or lexical queries) as a dictionary of dictionaries.
        Split between 'mult' and 'add' weights.
        
src/marqo/core/vespa_index/vespa_index.py