FastAPI возвращает правильный вывод NumPy локально, но React fetch получает поврежденные/несогласованные данные в рабочеPython

Программы на Python
Ответить
Anonymous
 FastAPI возвращает правильный вывод NumPy локально, но React fetch получает поврежденные/несогласованные данные в рабоче

Сообщение Anonymous »

Я создаю небольшой API на базе машинного обучения с использованием FastAPI (Python) и использую его из интерфейса React.
Локально все работает так, как ожидалось.

Однако в рабочей среде (Docker + обратный прокси) та же конечная точка возвращает противоречивые или поврежденные данные при получении из React, хотя боковые журналы Python показывают правильные значения.
Это не ошибка сериализации (исключений не возникает).
Бэкенд (FastAPI)

Код: Выделить всё

import numpy as np
from fastapi import FastAPI
from fastapi.responses import JSONResponse

app = FastAPI()

@app.get("/predict")
def predict():
arr = np.random.rand(1, 512).astype("float32")
result = arr.mean(axis=1)
return JSONResponse(content={"score": float(result[0])})
Журналы показывают правильные значения для каждого запроса.
Фронтенд (React)

Код: Выделить всё

useEffect(() => {
fetch("/predict")
.then(res => res.json())
.then(data => {
console.log("Received:", data.score);
});
}, []);
Проблема
Только в рабочей версии:
  • Код: Выделить всё

    data.score
    иногда регистрируется как нулевое, 0 или устаревшее значение.
  • Обновление страницы может исправить или изменить значение.
  • Верхние журналы всегда показывают правильное значение
  • Нет ошибок в консоли браузера или на вкладке сети
  • Заголовки ответов показывают 200 OK
Подробности среды
  • Бэкенд: FastAPI + Uvicorn
  • Фронтенд: React (Vite)
  • Развернуто с помощью Docker
  • Обратный прокси: Nginx
  • Кэширование не включено намеренно
Что я исключил
  • Проблемы сериализации JSON
  • Проблемы с точностью чисел с плавающей запятой
  • Ошибки состояния реакции
  • Исключения серверной части
  • Кэш браузера (проверено жесткое обновление)


Подробнее здесь: https://stackoverflow.com/questions/798 ... -corrupted
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»