Локально все работает так, как ожидалось.
Однако в рабочей среде (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);
});
}, []);
Только в рабочей версии:
- иногда регистрируется как нулевое, 0 или устаревшее значение.
Код: Выделить всё
data.score - Обновление страницы может исправить или изменить значение.
- Верхние журналы всегда показывают правильное значение
- Нет ошибок в консоли браузера или на вкладке сети
- Заголовки ответов показывают 200 OK
- Бэкенд: FastAPI + Uvicorn
- Фронтенд: React (Vite)
- Развернуто с помощью Docker
- Обратный прокси: Nginx
- Кэширование не включено намеренно
- Проблемы сериализации JSON
- Проблемы с точностью чисел с плавающей запятой
- Ошибки состояния реакции
- Исключения серверной части
- Кэш браузера (проверено жесткое обновление)
Подробнее здесь: https://stackoverflow.com/questions/798 ... -corrupted
Мобильная версия