Конечно, вот функция, которая находит произведение двух матриц:

```python
def matrix_multiplication(matrix1, matrix2):
    if len(matrix1[0]) != len(matrix2):
        raise ValueError("Матрицы не согласованы")
    
    result = []
    for i in range(len(matrix1)):
        row = []
        for j in range(len(matrix2[0])):
            sum = 0
            for k in range(len(matrix2)):
                sum += matrix1[i][k] * matrix2[k][j]
            row.append(sum)
        result.append(row)
    
    return result
```

Функция принимает две матрицы в виде списков списков (матриц), и проверяет, что количество столбцов в первой матрице равно количеству строк во второй матрице. Если это не так, функция возбуждает исключение `ValueError`.

Затем функция создает пустую матрицу `result`, которая будет содержать результат умножения матриц. Затем функция проходит по каждой строке первой матрицы и каждому столбцу второй матрицы, вычисляя скалярное произведение соответствующих векторов. Результат каждого скалярного произведения добавляется в соответствующую ячейку матрицы `result`.

Наконец, функция возвращает матрицу `result`, содержащую результат умножения.
spam fails_task lang_mismatch pii not_appropriate hate_speech sexual_content quality toxicity humor helpfulness creativity violence