Необработанный отказ (TypeError): невозможно прочитать свойства неопределенного (чтение «протокола»)

введите описание изображения здесьЯ изучаю и следую учебному пособию по глубокому обучению, которое использует FastApi для предоставления моделей прогнозирования в приложение Reactjs.

Он возвращает ошибку журнала консоли: необработанный отказ (TypeError): невозможно прочитать свойства неопределенного (чтение «протокола»)

Запуск API: «http://localhost:8000» запуск myApp: «http://localhost:3000»

**Вот код реакции, чтобы сделать запрос API

from fastapi import FastAPI, File, UploadFile
from fastapi.middleware.cors import CORSMiddleware
import uvicorn 
import numpy as np
from io import BytesIO
from PIL import Image
import tensorflow as tf
 
app = FastAPI()

origins = [
    "http://localhost", 
    "http://localhost:3000",
]
app.add_middleware(
    CORSMiddleware,
    allow_origins=origins,
    allow_credentials=True,
    allow_methods=["*"], 
    allow_headers=["*"],
-MODEL = tf.keras.models.load_model("../saved-models/3")
CLASS_NAMES = ["Early Blight", "Late Blight", "Healthy"]

@app.get("/ping")
async def ping():
    return "hello"

def read_file_as_image(data) -> np.ndarray:
    image = np.array(Image.open(BytesIO(data)))  

** Вот код реакции для запроса API **

import Card from "@material-ui/core/Card";
import CardContent from "@material-ui/core/CardContent";
import { Paper, CardActionArea, CardMedia, Grid, TableContainer, Table, TableBody, TableHead, TableRow, TableCell, Button, CircularProgress } from "@material-ui/core";
import cblogo from "./cblogo.PNG";
import image from "./bg.png";
import { DropzoneArea } from 'material-ui-dropzone';
import { common } from '@material-ui/core/colors';
import Clear from '@material-ui/icons/Clear';


export const ImageUpload = () => {
  const classes = useStyles();
  const [selectedFile, setSelectedFile] = useState();
  const [preview, setPreview] = useState();
  const [data, setData] = useState();
  const [image, setImage] = useState(false);
  const [isLoading, setIsloading] = useState(false);
  let confidence = 0;

  const sendFile = async () => {
    if (image) {
      let formData = new FormData();
      formData.append("file", selectedFile);
        let res = await axios({                         #here make the API request
        method: "post",
        url: process.env.REACT_APP_API_URL,
        data: formData,
      });
      if (res.status === 200) {
        setData(res.data);
      }
      setIsloading(false);
    }
  }   
    return image

@app.post("/predict")                        #Here is the prediction method
async def predict(fil: UploadFile = File(...)):
    image = read_file_as_image(await fil.read())
    img_batch = np.expand_dims(image, 0)             
    predictions = MODEL.predict(img_batch)           
    predicted_class = CLASS_NAMES[np.argmax(predictions[0])]
    confidence = np.max(predictions[0])
    return {
        'class': predicted_class,
        'confidence': float(confidence)
    }
    
if __name__ == "__main__":
    uvicorn.run(app, host='localhost', port=8000)
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
1
0
68
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я думаю, что работаю над одним и тем же проектом ... Сквозь Помидор или Картофель или ... Болезнь, я столкнулся с той же проблемой, и благодаря Aymendp я также исправил первую проблему, но впоследствии она также осталась при обработке я изменил свой REACT_APP_API_URL на REACT_APP_API_URL= http://localhost:8000/predict en, затем я перезапустил npm, он не будет работать без перезапуска. Убедитесь, что у вас уже есть загрузка файла main.py ( или где бы вы ни работали) и что порт открыт и работает, затем перезапустите npm (закрыв его, а затем снова запустив «start npm», теперь изображение загрузится, но класс ничего не распечатает и доверие счет печатает "NaN%, я работаю над этим сейчас и дам вам знать немного позже, если вы хотите знать, как, я исправил проблему с GPT4 (я использую это для МНОГО своих проблем) :)

спасибо, мистер Вут Ван Парис, я исправляю проблему, как сказал мне мистер Аймендп, но когда я загружаю изображение в Интернете, результат иногда не из нужного класса, я не знаю, в чем именно проблема.

Mira Eng 08.06.2023 21:40

Привет, Мира, может быть, ты все еще знаешь, какие изменения ты внесла? Я до сих пор не разобрался и больше не могу читать ответы мистера Аймендпа,...

Wout Van Parys 08.06.2023 22:40

я просто меняю местоположение env. файл, который содержит мой URL-адрес (REACT_APP_API_URL= localhost:8000/predict) вне папки src, также проверьте ваш package.json, который я использую, реагируя «^ 17.0.2», и я меняю «скрипты» в пакете на «скрипты»: { «start»: «реагировать-скрипты --openssl-legacy-provider start», «сборка»: «react-scripts --openssl-legacy-provider build», «test»: «тестировать реагирующие-скрипты», «извлечь» : "извлечь скрипты реакции" },

Mira Eng 09.06.2023 00:21

Другие вопросы по теме