اذهب إلى المحتوى

السؤال

Recommended Posts

  • 0
نشر

يرجى تفعيل ال debug لمعرفة أين الخطأ وما هو .

يجب إستبدال السطر التالي :

app.run()

بهذا السطر :

app.run(debug=True)

بعد ذلك يجب إغلاق المشروع وإعادة تشغيله وإرسال رسالة الخطأ التي تظهر لك مع أخر ملف قمت بتعديله.

  • 0
نشر

like this ERROR:app:Exception on / [GET]
Traceback (most recent call last):
  File "C:\Users\youce\PyCharmMiscProject\venv\Lib\site-packages\flask\app.py", line 1511, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\youce\PyCharmMiscProject\venv\Lib\site-packages\flask\app.py", line 920, in full_dispatch_request
    return self.finalize_request(rv)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\youce\PyCharmMiscProject\venv\Lib\site-packages\flask\app.py", line 939, in finalize_request
    response = self.make_response(rv)
               ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\youce\PyCharmMiscProject\venv\Lib\site-packages\flask\app.py", line 1249, in make_response
    raise TypeError(
TypeError: The view function did not return a valid response. The return type must be a string, dict, list, tuple with headers or status, Response instance, or WSGI callable, but it was a Predict.

  • 0
نشر
بتاريخ 3 دقائق مضت قال Youcef Kias:

like this ERROR:app:Exception on / [GET]
Traceback (most recent call last):
  File "C:\Users\youce\PyCharmMiscProject\venv\Lib\site-packages\flask\app.py", line 1511, in wsgi_app
    response = self.full_dispatch_request()
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\youce\PyCharmMiscProject\venv\Lib\site-packages\flask\app.py", line 920, in full_dispatch_request
    return self.finalize_request(rv)
           ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\youce\PyCharmMiscProject\venv\Lib\site-packages\flask\app.py", line 939, in finalize_request
    response = self.make_response(rv)
               ^^^^^^^^^^^^^^^^^^^^^^
  File "C:\Users\youce\PyCharmMiscProject\venv\Lib\site-packages\flask\app.py", line 1249, in make_response
    raise TypeError(
TypeError: The view function did not return a valid response. The return type must be a string, dict, list, tuple with headers or status, Response instance, or WSGI callable, but it was a Predict.

إذا الخطأ يخبرك أنه لم يتم إعادة respone صالح وصحيح حيث يجب على الرد أن يكون إما سلسلة نصية أو قاموس أو قائمة ولكنك قمت بإعادة كائن Predict . 

يرجى إرفاق ملف المشروع للإطلاع عليه ومساعدتك.

  • 0
نشر
بتاريخ 29 دقائق مضت قال Youcef Kias:

لاحظ المشكلة أنك قمت بوضع سطر 25 :

@app.route('/')

قبل الصنف Predict مباشرة وهذا خاطئ .

وحيث أنك إستخدمت api.add_resource لتسجيل الأصناف.

إذا المسارات التي يجب أن تذهب إليها هي /predict أو /health وليس المسار / .

ولكن الصحيح هو إما حذف @app.route('/') أو إضافة مسار أساسي هكذا مثلا :

from flask import Flask, jsonify
from flask_restful import Api, Resource, reqparse
import numpy as np
import pandas as pd
import joblib
import tensorflow as tf

app = Flask(__name__)
api = Api(app)  # تهيئة Flask-RESTful

# تحميل النماذج والمحولات
dl_model = tf.keras.models.load_model('models/dl_model.h5')
rf = joblib.load('models/rf_model.joblib')
scaler = joblib.load('models/scaler.joblib')

# مستخرج السمات من النموذج العميق
feature_layer = dl_model.get_layer(index=-2).output
extractor = tf.keras.Model(inputs=dl_model.input, outputs=feature_layer)

# تحضير محلل البيانات المطلوبة
parser = reqparse.RequestParser()
for feat in ['age', 'sex', 'cp', 'trestbps', 'chol', 'fbs', 'restecg', 'thalch', 'exang', 'oldpeak', 'slope', 'ca', 'thal']:
    parser.add_argument(feat, type=float, required=True, help=f"{feat} مطلوب")

@app.route('/')
def home():
    return "Home use /predict or /health"

class Predict(Resource):
    def get(self):
        args = parser.parse_args()
        df = pd.DataFrame([args])
        X_scaled = scaler.transform(df.values)
        X_dl = extractor.predict(X_scaled)
        X_comb = np.hstack([X_scaled, X_dl])
        y_pred = int(rf.predict(X_comb)[0])
        y_proba = rf.predict_proba(X_comb)[0].tolist()

        # توليد التوصيات العلاجية
        recommendations = []
        if y_pred >= 2:
            recommendations = [
                "مراجعة طبيب قلب مختص",
                "إجراء رسم قلب وتخطيط مجدد",
                "متابعة مستمرة للضغط والكوليسترول"
            ]
        else:
            recommendations = [
                "اتباع نظام غذائي قليل الدسم",
                "ممارسة الرياضة بانتظام",
                "متابعة سنوية فقط"
            ]

        return jsonify({
            'prediction': y_pred,
            'probabilities': y_proba,
            'recommendations': recommendations
        })

class Health(Resource):
    def get(self):
        return {'status': 'healthy'}, 200

api.add_resource(Predict, '/predict')  # GET /predict
api.add_resource(Health, '/health')    # GET /health

if __name__ == '__main__':
    app.run(debug=True)

ويمكنك الذهاب إلى المسارات التالية الصحيحة :

http://localhost:5000/predict

http://localhost:5000/health	

 

  • 0
نشر

I fix it, so what is you're opinion about it? try to build an api where I build an API that allows users (doctors and nurses) to enter patient data and obtain diagnoses or treatment recommendations

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...