Я пытаюсь построить сервис с помощью Azure функций, которые выполняют умножение матриц, используя вектор, заданный http-запросом, и матрицу фиксированных numpy. Матрица хранится в Azure хранилище больших двоичных объектов в виде файла выбора, и я хочу загрузить его через привязку ввода. Однако мне не удается загрузить файл рассола. Я могу загружать простые текстовые файлы. Прямо сейчас мой подход выглядит следующим образом:
def main(req: func.HttpRequest, blobIn: func.InputStream) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')
matrix = pickle.loads(blobIn.read())
vector = req.params.get('vector')
result = matrix.dot(vector)
return func.HttpResponse(json.dumps(result))
Ошибка, которую я получаю при его запуске, такова: UnpicklingError: неверный ключ загрузки, '\ xef' . Другой подход, который я попробовал после некоторого поиска в Google, был следующий:
def main(req: func.HttpRequest, blobIn: func.InputStream) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')
blob_bytes = matrix.read()
blob_to_read = BytesIO(blob_bytes)
with blob_to_read as f:
A = pickle.load(f)
vector = req.params.get('vector')
result = matrix.dot(vector)
return func.HttpResponse(json.dumps(result))
Но он выдает ту же ошибку. Я также пытался сохранить матрицу в текстовом файле, получить строку и построить матрицу на основе строки, но я столкнулся с другими проблемами. Итак, как я могу загрузить файл рассола в моей функции Azure? Это даже правильный подход - использовать привязки ввода для загрузки таких файлов или есть лучший способ? Большое спасибо за вашу помощь!