{"id":69993,"date":"2024-07-19T21:11:48","date_gmt":"2024-07-19T17:41:48","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/predictive-maintenance-in-the-upstream-sector-implementing-machine-learning-with-flask-2oam\/"},"modified":"2024-07-19T21:11:48","modified_gmt":"2024-07-19T17:41:48","slug":"predictive-maintenance-in-the-upstream-sector-implementing-machine-learning-with-flask-2oam","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/predictive-maintenance-in-the-upstream-sector-implementing-machine-learning-with-flask-2oam\/","title":{"rendered":"\u062a\u0639\u0645\u06cc\u0631 \u0648 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u067e\u06cc\u0634\u200c\u0628\u06cc\u0646\u06cc\u200c\u06a9\u0646\u0646\u062f\u0647 \u062f\u0631 \u0628\u062e\u0634 \u0628\u0627\u0644\u0627\u062f\u0633\u062a\u06cc: \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0645\u0627\u0634\u06cc\u0646 \u0628\u0627 \u0641\u0644\u0627\u0633\u06a9"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang<br \/>\n            \u062f\u0631 \u0686\u0634\u0645 \u0627\u0646\u062f\u0627\u0632 \u0635\u0646\u0639\u062a\u06cc \u067e\u0631 \u0633\u0631\u0639\u062a \u0627\u0645\u0631\u0648\u0632\u060c \u062a\u0639\u0645\u06cc\u0631 \u0648 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u067e\u06cc\u0634 \u0628\u06cc\u0646\u06cc \u0634\u062f\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0627\u0633\u062a\u0631\u0627\u062a\u0698\u06cc \u062d\u06cc\u0627\u062a\u06cc \u0628\u0631\u0627\u06cc \u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0627\u0631\u0627\u06cc\u06cc \u0648 \u06a9\u0627\u0631\u0627\u06cc\u06cc \u0639\u0645\u0644\u06cc\u0627\u062a\u06cc \u0638\u0627\u0647\u0631 \u0634\u062f\u0647 \u0627\u0633\u062a.  \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0647 \u0628\u0631\u0631\u0633\u06cc \u0627\u062c\u0631\u0627\u06cc \u0639\u0645\u0644\u06cc \u062a\u06a9\u0646\u06cc\u06a9\u200c\u0647\u0627\u06cc \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0645\u0627\u0634\u06cc\u0646 \u062f\u0631 \u0628\u062e\u0634 \u0628\u0627\u0644\u0627\u062f\u0633\u062a\u06cc \u0645\u06cc\u200c\u067e\u0631\u062f\u0627\u0632\u062f\u060c \u0628\u0647\u200c\u0648\u06cc\u0698\u0647 \u0628\u0631 \u0631\u0648\u06cc \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 Flask \u0628\u0631\u0627\u06cc \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u067e\u06cc\u0634\u200c\u0628\u06cc\u0646\u06cc\u200c\u06a9\u0646\u0646\u062f\u0647 \u062a\u0645\u0631\u06a9\u0632 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p>  \u0645\u0639\u0631\u0641\u06cc<\/p>\n<p>\u062a\u0639\u0645\u06cc\u0631 \u0648 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u067e\u06cc\u0634\u200c\u0628\u06cc\u0646\u06cc\u200c\u0634\u062f\u0647 \u0627\u0632 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u062a\u0627\u0631\u06cc\u062e\u06cc \u0648 \u0627\u0644\u06af\u0648\u0631\u06cc\u062a\u0645\u200c\u0647\u0627\u06cc \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0645\u0627\u0634\u06cc\u0646 \u0628\u0631\u0627\u06cc \u067e\u06cc\u0634\u200c\u0628\u06cc\u0646\u06cc \u062e\u0631\u0627\u0628\u06cc\u200c\u0647\u0627\u06cc \u062a\u062c\u0647\u06cc\u0632\u0627\u062a \u0642\u0628\u0644 \u0627\u0632 \u0648\u0642\u0648\u0639 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u062f\u0631 \u0646\u062a\u06cc\u062c\u0647 \u0632\u0645\u0627\u0646 \u062e\u0631\u0627\u0628\u06cc \u0648 \u0627\u062e\u062a\u0644\u0627\u0644\u0627\u062a \u0639\u0645\u0644\u06cc\u0627\u062a\u06cc \u0631\u0627 \u0628\u0647 \u062d\u062f\u0627\u0642\u0644 \u0645\u06cc\u200c\u0631\u0633\u0627\u0646\u062f.  \u062f\u0631 \u0628\u062e\u0634 \u0628\u0627\u0644\u0627\u062f\u0633\u062a\u06cc \u0635\u0646\u0639\u062a \u0646\u0641\u062a \u0648 \u06af\u0627\u0632\u060c \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0642\u0627\u0628\u0644\u06cc\u062a \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062a\u062c\u0647\u06cc\u0632\u0627\u062a \u0628\u0647 \u0637\u0648\u0631 \u0645\u0633\u062a\u0642\u06cc\u0645 \u0628\u0631 \u062a\u0648\u0644\u06cc\u062f \u0648 \u0627\u06cc\u0645\u0646\u06cc \u062a\u0623\u062b\u06cc\u0631 \u0645\u06cc \u06af\u0630\u0627\u0631\u062f\u060c \u062a\u0639\u0645\u06cc\u0631 \u0648 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u067e\u06cc\u0634 \u0628\u06cc\u0646\u06cc \u0634\u062f\u0647 \u0646\u0648\u06cc\u062f \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u062f\u0627\u0631\u062f.<\/p>\n<p>  \u0627\u0646\u062a\u062e\u0627\u0628 \u0645\u062f\u0644 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0645\u0627\u0634\u06cc\u0646<\/p>\n<p>\u0645\u0631\u06a9\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u0648 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 RandomForestClassifier \u0627\u0633\u062a\u060c \u06cc\u06a9 \u0631\u0648\u0634 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u06af\u0631\u0648\u0647\u06cc \u0642\u0648\u06cc \u06a9\u0647 \u0647\u0645 \u0628\u0631\u0627\u06cc \u0648\u0638\u0627\u06cc\u0641 \u0637\u0628\u0642\u0647 \u0628\u0646\u062f\u06cc \u0648 \u0647\u0645 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0627\u06cc \u06a9\u0647 \u0627\u063a\u0644\u0628 \u062f\u0631 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0635\u0646\u0639\u062a\u06cc \u0628\u0627 \u0622\u0646 \u0645\u0648\u0627\u062c\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f\u060c \u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062a.<\/p>\n<p>from sklearn.ensemble import RandomForestClassifier<br \/>\nimport joblib<\/p>\n<p># Initialize the RandomForestClassifier model<br \/>\nmodel = RandomForestClassifier(n_estimators=100, random_state=42)<\/p>\n<p># Train the model with your dataset (X_train, y_train)<br \/>\nmodel.fit(X_train, y_train)<\/p>\n<p># Save the trained model to a file<br \/>\njoblib.dump(model, &#8216;models\/predictive_model.pkl&#8217;)<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u062a\u0646\u0638\u06cc\u0645 \u0628\u0631\u0646\u0627\u0645\u0647 \u0641\u0644\u0627\u0633\u06a9<\/p>\n<p>Flask \u06cc\u06a9 \u0686\u0627\u0631\u0686\u0648\u0628 \u0627\u0646\u0639\u0637\u0627\u0641 \u067e\u0630\u06cc\u0631 \u0648 \u0633\u0628\u06a9 \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0648\u0628 \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f.  \u0628\u0631\u0646\u0627\u0645\u0647 Flask \u0645\u0627 \u0645\u062f\u0644 \u0622\u0645\u0648\u0632\u0634\u200c\u062f\u06cc\u062f\u0647 RandomForestClassifier \u0631\u0627 \u0628\u0631\u0627\u06cc \u067e\u06cc\u0634\u200c\u0628\u06cc\u0646\u06cc \u0633\u0644\u0627\u0645\u062a \u062a\u062c\u0647\u06cc\u0632\u0627\u062a \u0628\u0631\u0627\u0633\u0627\u0633 \u0648\u0631\u0648\u062f\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u062d\u0633\u06af\u0631 \u0627\u062f\u063a\u0627\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<p>  \u0646\u0635\u0628 \u0648 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0647\u0627<\/p>\n<p>\u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u067e\u0627\u06cc\u062a\u0648\u0646 \u0648 \u067e\u06cc\u067e \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f.  \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u0648 Flask \u0648 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0647\u0627\u06cc \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f:<\/p>\n<p>python -m venv venv<br \/>\nsource venv\/bin\/activate  # Activate virtual environment<br \/>\npip install Flask scikit-learn joblib pandas<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0633\u0627\u062e\u062a\u0627\u0631 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0641\u0644\u0627\u0633\u06a9<\/p>\n<p>predictive-maintenance-flask\/<br \/>\n\u251c\u2500\u2500 app.py                  # Flask application<br \/>\n\u251c\u2500\u2500 requirements.txt        # Python dependencies<br \/>\n\u251c\u2500\u2500 static\/<br \/>\n\u2502   \u2514\u2500\u2500 style.css           # CSS styles<br \/>\n\u2514\u2500\u2500 templates\/<br \/>\n    \u2514\u2500\u2500 index.html          # HTML template<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u06a9\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0641\u0644\u0627\u0633\u06a9<\/p>\n<p>  app.py<\/p>\n<p>from flask import Flask, render_template, request, jsonify<br \/>\nimport joblib<br \/>\nimport pandas as pd<\/p>\n<p>app = Flask(__name__)<br \/>\nmodel = None<\/p>\n<p># Load the trained machine learning model<br \/>\ndef load_model():<br \/>\n    global model<br \/>\n    model = joblib.load(&#8216;models\/predictive_model.pkl&#8217;)<\/p>\n<p># Home route<br \/>\n@app.route(&#8216;\/&#8217;)<br \/>\ndef home():<br \/>\n    return render_template(&#8216;index.html&#8217;)<\/p>\n<p># Endpoint to receive sensor data and make predictions<br \/>\n@app.route(&#8216;\/predict&#8217;, methods=[&#8216;POST&#8217;])<br \/>\ndef predict():<br \/>\n    if model is None:<br \/>\n        load_model()  # Load the model if not already loaded<\/p>\n<p>    # Get data from the POST request<br \/>\n    data = request.form.to_dict()<\/p>\n<p>    # Convert the data into a DataFrame<br \/>\n    input_data = pd.DataFrame([data])<\/p>\n<p>    # Make predictions<br \/>\n    prediction = model.predict(input_data)<br \/>\n    prediction_prob = model.predict_proba(input_data)[:, 1]  # Probability of failure<\/p>\n<p>    # Prepare response<br \/>\n    if prediction[0] == 1:<br \/>\n        result = &#8220;Equipment failure predicted.&#8221;<br \/>\n    else:<br \/>\n        result = &#8220;Equipment functioning normally.&#8221;<\/p>\n<p>    output = {<br \/>\n        &#8220;prediction&#8221;: result,<br \/>\n        &#8220;probability&#8221;: float(prediction_prob[0])<br \/>\n    }<\/p>\n<p>    return jsonify(output)<\/p>\n<p>if __name__ == &#8216;__main__&#8217;:<br \/>\n    app.run(debug=True)<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<p>  \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0648 \u0627\u0633\u062a\u0642\u0631\u0627\u0631<\/p>\n<p>\u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u0648 \u067e\u06cc\u0634 \u0628\u06cc\u0646\u06cc:<\/p>\n<p>\u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u062d\u0633\u06af\u0631 (\u0645\u0627\u0646\u0646\u062f \u062f\u0645\u0627\u060c \u0641\u0634\u0627\u0631) \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u06cc\u06a9 \u0641\u0631\u0645 \u0648\u0628 \u0648\u0627\u0631\u062f \u0645\u06cc \u06a9\u0646\u0646\u062f.<br \/>\n\u0628\u0631\u0646\u0627\u0645\u0647 Flask \u0627\u0632 \u0645\u062f\u0644 \u0622\u0645\u0648\u0632\u0634 \u062f\u06cc\u062f\u0647 \u0628\u0631\u0627\u06cc \u067e\u06cc\u0634 \u0628\u06cc\u0646\u06cc \u0648\u0636\u0639\u06cc\u062a \u0633\u0644\u0627\u0645\u062a \u062a\u062c\u0647\u06cc\u0632\u0627\u062a (\u0634\u06a9\u0633\u062a \u06cc\u0627 \u0639\u0627\u062f\u06cc) \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u06cc\u06a9 \u0627\u0645\u062a\u06cc\u0627\u0632 \u0627\u062d\u062a\u0645\u0627\u0644 \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<p>\u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0633\u0627\u0632\u06cc \u0648 \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631\u06cc:<\/p>\n<p>\u0645\u0639\u0645\u0627\u0631\u06cc \u0645\u062f\u0648\u0644\u0627\u0631 Flask \u0627\u0645\u06a9\u0627\u0646 \u0627\u062f\u063a\u0627\u0645 \u0622\u0633\u0627\u0646 \u0628\u0627 \u0633\u0627\u06cc\u0631 \u0686\u0627\u0631\u0686\u0648\u0628 \u0647\u0627 \u0648 \u06af\u0632\u06cc\u0646\u0647 \u0647\u0627\u06cc \u06af\u0633\u062a\u0631\u0634 \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f.<br \/>\n\u0628\u0631\u0627\u06cc \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632\u06cc \u0628\u06cc\u0634\u062a\u0631 \u0627\u0633\u062a\u0631\u0627\u062a\u0698\u06cc\u200c\u0647\u0627\u06cc \u062a\u0639\u0645\u06cc\u0631 \u0648 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u067e\u06cc\u0634\u200c\u0628\u06cc\u0646\u06cc\u200c\u06a9\u0646\u0646\u062f\u0647\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0628\u0627 \u062c\u0631\u06cc\u0627\u0646 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0628\u06cc\u200c\u062f\u0631\u0646\u06af \u0648 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u062a\u062c\u0633\u0645 \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u062a\u0642\u0648\u06cc\u062a \u06a9\u0646\u06cc\u062f.<\/p>\n<p>  \u0646\u062a\u06cc\u062c\u0647<\/p>\n<p>\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0645\u0627\u0634\u06cc\u0646 \u0648 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0622\u0646 \u0627\u0632 \u0637\u0631\u06cc\u0642 Flask\u060c \u0633\u0627\u0632\u0645\u0627\u0646\u200c\u0647\u0627 \u062f\u0631 \u0628\u062e\u0634 \u0628\u0627\u0644\u0627\u062f\u0633\u062a\u06cc \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0647 \u0627\u0633\u062a\u0631\u0627\u062a\u0698\u06cc\u200c\u0647\u0627\u06cc \u062a\u0639\u0645\u06cc\u0631 \u0648 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u067e\u06cc\u0634\u06af\u06cc\u0631\u0627\u0646\u0647 \u062f\u0633\u062a \u06cc\u0627\u0628\u0646\u062f \u06a9\u0647 \u06a9\u0627\u0631\u0627\u06cc\u06cc \u0639\u0645\u0644\u06cc\u0627\u062a\u06cc \u0631\u0627 \u0627\u0641\u0632\u0627\u06cc\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f\u060c \u0632\u0645\u0627\u0646 \u062e\u0631\u0627\u0628\u06cc \u0631\u0627 \u0628\u0647 \u062d\u062f\u0627\u0642\u0644 \u0645\u06cc\u200c\u0631\u0633\u0627\u0646\u062f \u0648 \u0633\u0637\u0648\u062d \u062a\u0648\u0644\u06cc\u062f \u067e\u0627\u06cc\u062f\u0627\u0631 \u0631\u0627 \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc\u200c\u06a9\u0646\u062f.  \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u062a\u06a9\u0646\u0648\u0644\u0648\u0698\u06cc \u0628\u0647 \u062a\u06a9\u0627\u0645\u0644 \u062e\u0648\u062f \u0627\u062f\u0627\u0645\u0647 \u0645\u06cc \u062f\u0647\u062f\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062a\u0639\u0645\u06cc\u0631 \u0648 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u067e\u06cc\u0634 \u0628\u06cc\u0646\u06cc \u0634\u062f\u0647 \u0646\u0642\u0634 \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645\u06cc \u062f\u0631 \u062d\u0641\u0638 \u0631\u0642\u0627\u0628\u062a \u0648 \u067e\u0627\u06cc\u062f\u0627\u0631\u06cc \u062f\u0631 \u0639\u0645\u0644\u06cc\u0627\u062a \u0635\u0646\u0639\u062a\u06cc \u0627\u06cc\u0641\u0627 \u062e\u0648\u0627\u0647\u062f \u06a9\u0631\u062f.<\/p>\n<p>\u0644\u06cc\u0646\u06a9 Github \u0627\u06cc\u0646\u062c\u0627 <\/p>\n<div data-article-id=\"1929309\" id=\"article-body\">\n<p>\u062f\u0631 \u0686\u0634\u0645 \u0627\u0646\u062f\u0627\u0632 \u0635\u0646\u0639\u062a\u06cc \u067e\u0631 \u0633\u0631\u0639\u062a \u0627\u0645\u0631\u0648\u0632\u060c \u062a\u0639\u0645\u06cc\u0631 \u0648 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u067e\u06cc\u0634 \u0628\u06cc\u0646\u06cc \u0634\u062f\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0627\u0633\u062a\u0631\u0627\u062a\u0698\u06cc \u062d\u06cc\u0627\u062a\u06cc \u0628\u0631\u0627\u06cc \u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0627\u0631\u0627\u06cc\u06cc \u0648 \u06a9\u0627\u0631\u0627\u06cc\u06cc \u0639\u0645\u0644\u06cc\u0627\u062a\u06cc \u0638\u0627\u0647\u0631 \u0634\u062f\u0647 \u0627\u0633\u062a.  \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0647 \u0628\u0631\u0631\u0633\u06cc \u0627\u062c\u0631\u0627\u06cc \u0639\u0645\u0644\u06cc \u062a\u06a9\u0646\u06cc\u06a9\u200c\u0647\u0627\u06cc \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0645\u0627\u0634\u06cc\u0646 \u062f\u0631 \u0628\u062e\u0634 \u0628\u0627\u0644\u0627\u062f\u0633\u062a\u06cc \u0645\u06cc\u200c\u067e\u0631\u062f\u0627\u0632\u062f\u060c \u0628\u0647\u200c\u0648\u06cc\u0698\u0647 \u0628\u0631 \u0631\u0648\u06cc \u06cc\u06a9 \u0628\u0631\u0646\u0627\u0645\u0647 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 Flask \u0628\u0631\u0627\u06cc \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u067e\u06cc\u0634\u200c\u0628\u06cc\u0646\u06cc\u200c\u06a9\u0646\u0646\u062f\u0647 \u062a\u0645\u0631\u06a9\u0632 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<div id=\"ez-toc-container\" class=\"ez-toc-v2_0_84 counter-hierarchy ez-toc-counter-rtl ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">\u0641\u0647\u0631\u0633\u062a \u0645\u0637\u0627\u0644\u0628<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 ' ><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/nabfollower.com\/blog\/predictive-maintenance-in-the-upstream-sector-implementing-machine-learning-with-flask-2oam\/#%D9%85%D8%B9%D8%B1%D9%81%DB%8C\" >\u0645\u0639\u0631\u0641\u06cc<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/nabfollower.com\/blog\/predictive-maintenance-in-the-upstream-sector-implementing-machine-learning-with-flask-2oam\/#%D8%A7%D9%86%D8%AA%D8%AE%D8%A7%D8%A8_%D9%85%D8%AF%D9%84_%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C_%D9%85%D8%A7%D8%B4%DB%8C%D9%86\" >\u0627\u0646\u062a\u062e\u0627\u0628 \u0645\u062f\u0644 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0645\u0627\u0634\u06cc\u0646<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/nabfollower.com\/blog\/predictive-maintenance-in-the-upstream-sector-implementing-machine-learning-with-flask-2oam\/#%D8%AA%D9%86%D8%B8%DB%8C%D9%85_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87_%D9%81%D9%84%D8%A7%D8%B3%DA%A9\" >\u062a\u0646\u0638\u06cc\u0645 \u0628\u0631\u0646\u0627\u0645\u0647 \u0641\u0644\u0627\u0633\u06a9<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/nabfollower.com\/blog\/predictive-maintenance-in-the-upstream-sector-implementing-machine-learning-with-flask-2oam\/#%D9%86%D8%B5%D8%A8_%D9%88_%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%DA%AF%DB%8C_%D9%87%D8%A7\" >\u0646\u0635\u0628 \u0648 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0647\u0627<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/nabfollower.com\/blog\/predictive-maintenance-in-the-upstream-sector-implementing-machine-learning-with-flask-2oam\/#%D8%B3%D8%A7%D8%AE%D8%AA%D8%A7%D8%B1_%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C_%D9%81%D9%84%D8%A7%D8%B3%DA%A9\" >\u0633\u0627\u062e\u062a\u0627\u0631 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0641\u0644\u0627\u0633\u06a9<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/nabfollower.com\/blog\/predictive-maintenance-in-the-upstream-sector-implementing-machine-learning-with-flask-2oam\/#%DA%A9%D8%AF_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87_%D9%81%D9%84%D8%A7%D8%B3%DA%A9\" >\u06a9\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0641\u0644\u0627\u0633\u06a9<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-7\" href=\"https:\/\/nabfollower.com\/blog\/predictive-maintenance-in-the-upstream-sector-implementing-machine-learning-with-flask-2oam\/#apppy\" >app.py<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-8\" href=\"https:\/\/nabfollower.com\/blog\/predictive-maintenance-in-the-upstream-sector-implementing-machine-learning-with-flask-2oam\/#%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D9%88_%D8%A7%D8%B3%D8%AA%D9%82%D8%B1%D8%A7%D8%B1\" >\u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0648 \u0627\u0633\u062a\u0642\u0631\u0627\u0631<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-9\" href=\"https:\/\/nabfollower.com\/blog\/predictive-maintenance-in-the-upstream-sector-implementing-machine-learning-with-flask-2oam\/#%D9%86%D8%AA%DB%8C%D8%AC%D9%87\" >\u0646\u062a\u06cc\u062c\u0647<\/a><\/li><\/ul><\/nav><\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D9%85%D8%B9%D8%B1%D9%81%DB%8C\"><\/span>\n<p>  \u0645\u0639\u0631\u0641\u06cc<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u062a\u0639\u0645\u06cc\u0631 \u0648 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u067e\u06cc\u0634\u200c\u0628\u06cc\u0646\u06cc\u200c\u0634\u062f\u0647 \u0627\u0632 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u062a\u0627\u0631\u06cc\u062e\u06cc \u0648 \u0627\u0644\u06af\u0648\u0631\u06cc\u062a\u0645\u200c\u0647\u0627\u06cc \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0645\u0627\u0634\u06cc\u0646 \u0628\u0631\u0627\u06cc \u067e\u06cc\u0634\u200c\u0628\u06cc\u0646\u06cc \u062e\u0631\u0627\u0628\u06cc\u200c\u0647\u0627\u06cc \u062a\u062c\u0647\u06cc\u0632\u0627\u062a \u0642\u0628\u0644 \u0627\u0632 \u0648\u0642\u0648\u0639 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc\u200c\u06a9\u0646\u062f \u0648 \u062f\u0631 \u0646\u062a\u06cc\u062c\u0647 \u0632\u0645\u0627\u0646 \u062e\u0631\u0627\u0628\u06cc \u0648 \u0627\u062e\u062a\u0644\u0627\u0644\u0627\u062a \u0639\u0645\u0644\u06cc\u0627\u062a\u06cc \u0631\u0627 \u0628\u0647 \u062d\u062f\u0627\u0642\u0644 \u0645\u06cc\u200c\u0631\u0633\u0627\u0646\u062f.  \u062f\u0631 \u0628\u062e\u0634 \u0628\u0627\u0644\u0627\u062f\u0633\u062a\u06cc \u0635\u0646\u0639\u062a \u0646\u0641\u062a \u0648 \u06af\u0627\u0632\u060c \u062c\u0627\u06cc\u06cc \u06a9\u0647 \u0642\u0627\u0628\u0644\u06cc\u062a \u0627\u0637\u0645\u06cc\u0646\u0627\u0646 \u062a\u062c\u0647\u06cc\u0632\u0627\u062a \u0628\u0647 \u0637\u0648\u0631 \u0645\u0633\u062a\u0642\u06cc\u0645 \u0628\u0631 \u062a\u0648\u0644\u06cc\u062f \u0648 \u0627\u06cc\u0645\u0646\u06cc \u062a\u0623\u062b\u06cc\u0631 \u0645\u06cc \u06af\u0630\u0627\u0631\u062f\u060c \u062a\u0639\u0645\u06cc\u0631 \u0648 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u067e\u06cc\u0634 \u0628\u06cc\u0646\u06cc \u0634\u062f\u0647 \u0646\u0648\u06cc\u062f \u0642\u0627\u0628\u0644 \u062a\u0648\u062c\u0647\u06cc \u062f\u0627\u0631\u062f.<\/p>\n<h3><span class=\"ez-toc-section\" id=\"%D8%A7%D9%86%D8%AA%D8%AE%D8%A7%D8%A8_%D9%85%D8%AF%D9%84_%DB%8C%D8%A7%D8%AF%DA%AF%DB%8C%D8%B1%DB%8C_%D9%85%D8%A7%D8%B4%DB%8C%D9%86\"><\/span>\n<p>  \u0627\u0646\u062a\u062e\u0627\u0628 \u0645\u062f\u0644 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0645\u0627\u0634\u06cc\u0646<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0645\u0631\u06a9\u0632 \u0628\u0631\u0646\u0627\u0645\u0647 \u0645\u0627 \u0627\u0646\u062a\u062e\u0627\u0628 \u0648 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 RandomForestClassifier \u0627\u0633\u062a\u060c \u06cc\u06a9 \u0631\u0648\u0634 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u06af\u0631\u0648\u0647\u06cc \u0642\u0648\u06cc \u06a9\u0647 \u0647\u0645 \u0628\u0631\u0627\u06cc \u0648\u0638\u0627\u06cc\u0641 \u0637\u0628\u0642\u0647 \u0628\u0646\u062f\u06cc \u0648 \u0647\u0645 \u0628\u0631\u0627\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u0645\u062c\u0645\u0648\u0639\u0647 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u067e\u06cc\u0686\u06cc\u062f\u0647 \u0627\u06cc \u06a9\u0647 \u0627\u063a\u0644\u0628 \u062f\u0631 \u062a\u0646\u0638\u06cc\u0645\u0627\u062a \u0635\u0646\u0639\u062a\u06cc \u0628\u0627 \u0622\u0646 \u0645\u0648\u0627\u062c\u0647 \u0645\u06cc \u0634\u0648\u0646\u062f\u060c \u0645\u0646\u0627\u0633\u0628 \u0627\u0633\u062a.<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"kn\">from<\/span> <span class=\"n\">sklearn.ensemble<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">RandomForestClassifier<\/span>\n<span class=\"kn\">import<\/span> <span class=\"n\">joblib<\/span>\n\n<span class=\"c1\"># Initialize the RandomForestClassifier model\n<\/span><span class=\"n\">model<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">RandomForestClassifier<\/span><span class=\"p\">(<\/span><span class=\"n\">n_estimators<\/span><span class=\"o\">=<\/span><span class=\"mi\">100<\/span><span class=\"p\">,<\/span> <span class=\"n\">random_state<\/span><span class=\"o\">=<\/span><span class=\"mi\">42<\/span><span class=\"p\">)<\/span>\n\n<span class=\"c1\"># Train the model with your dataset (X_train, y_train)\n<\/span><span class=\"n\">model<\/span><span class=\"p\">.<\/span><span class=\"nf\">fit<\/span><span class=\"p\">(<\/span><span class=\"n\">X_train<\/span><span class=\"p\">,<\/span> <span class=\"n\">y_train<\/span><span class=\"p\">)<\/span>\n\n<span class=\"c1\"># Save the trained model to a file\n<\/span><span class=\"n\">joblib<\/span><span class=\"p\">.<\/span><span class=\"nf\">dump<\/span><span class=\"p\">(<\/span><span class=\"n\">model<\/span><span class=\"p\">,<\/span> <span class=\"sh\">'<\/span><span class=\"s\">models\/predictive_model.pkl<\/span><span class=\"sh\">'<\/span><span class=\"p\">)<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D8%AA%D9%86%D8%B8%DB%8C%D9%85_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87_%D9%81%D9%84%D8%A7%D8%B3%DA%A9\"><\/span>\n<p>  \u062a\u0646\u0638\u06cc\u0645 \u0628\u0631\u0646\u0627\u0645\u0647 \u0641\u0644\u0627\u0633\u06a9<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Flask \u06cc\u06a9 \u0686\u0627\u0631\u0686\u0648\u0628 \u0627\u0646\u0639\u0637\u0627\u0641 \u067e\u0630\u06cc\u0631 \u0648 \u0633\u0628\u06a9 \u0628\u0631\u0627\u06cc \u062a\u0648\u0633\u0639\u0647 \u0628\u0631\u0646\u0627\u0645\u0647 \u0647\u0627\u06cc \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0648\u0628 \u062f\u0631 \u067e\u0627\u06cc\u062a\u0648\u0646 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f.  \u0628\u0631\u0646\u0627\u0645\u0647 Flask \u0645\u0627 \u0645\u062f\u0644 \u0622\u0645\u0648\u0632\u0634\u200c\u062f\u06cc\u062f\u0647 RandomForestClassifier \u0631\u0627 \u0628\u0631\u0627\u06cc \u067e\u06cc\u0634\u200c\u0628\u06cc\u0646\u06cc \u0633\u0644\u0627\u0645\u062a \u062a\u062c\u0647\u06cc\u0632\u0627\u062a \u0628\u0631\u0627\u0633\u0627\u0633 \u0648\u0631\u0648\u062f\u06cc \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u062d\u0633\u06af\u0631 \u0627\u062f\u063a\u0627\u0645 \u0645\u06cc\u200c\u06a9\u0646\u062f.<\/p>\n<h4><span class=\"ez-toc-section\" id=\"%D9%86%D8%B5%D8%A8_%D9%88_%D9%88%D8%A7%D8%A8%D8%B3%D8%AA%DA%AF%DB%8C_%D9%87%D8%A7\"><\/span>\n<p>  \u0646\u0635\u0628 \u0648 \u0648\u0627\u0628\u0633\u062a\u06af\u06cc \u0647\u0627<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>\u0645\u0637\u0645\u0626\u0646 \u0634\u0648\u06cc\u062f \u067e\u0627\u06cc\u062a\u0648\u0646 \u0648 \u067e\u06cc\u067e \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0631\u062f\u0647 \u0627\u06cc\u062f.  \u06cc\u06a9 \u0645\u062d\u06cc\u0637 \u0645\u062c\u0627\u0632\u06cc \u0627\u06cc\u062c\u0627\u062f \u06a9\u0646\u06cc\u062f \u0648 Flask \u0648 \u06a9\u062a\u0627\u0628\u062e\u0627\u0646\u0647 \u0647\u0627\u06cc \u0645\u0648\u0631\u062f \u0646\u06cc\u0627\u0632 \u0631\u0627 \u0646\u0635\u0628 \u06a9\u0646\u06cc\u062f:<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight shell\"><code>python <span class=\"nt\">-m<\/span> venv venv\n<span class=\"nb\">source <\/span>venv\/bin\/activate  <span class=\"c\"># Activate virtual environment<\/span>\npip <span class=\"nb\">install <\/span>Flask scikit-learn joblib pandas\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h4><span class=\"ez-toc-section\" id=\"%D8%B3%D8%A7%D8%AE%D8%AA%D8%A7%D8%B1_%DA%A9%D8%A7%D8%B1%D8%A8%D8%B1%D8%AF%DB%8C_%D9%81%D9%84%D8%A7%D8%B3%DA%A9\"><\/span>\n<p>  \u0633\u0627\u062e\u062a\u0627\u0631 \u06a9\u0627\u0631\u0628\u0631\u062f\u06cc \u0641\u0644\u0627\u0633\u06a9<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight plaintext\"><code>predictive-maintenance-flask\/\n\u251c\u2500\u2500 app.py                  # Flask application\n\u251c\u2500\u2500 requirements.txt        # Python dependencies\n\u251c\u2500\u2500 static\/\n\u2502   \u2514\u2500\u2500 style.css           # CSS styles\n\u2514\u2500\u2500 templates\/\n    \u2514\u2500\u2500 index.html          # HTML template\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%DA%A9%D8%AF_%D8%A8%D8%B1%D9%86%D8%A7%D9%85%D9%87_%D9%81%D9%84%D8%A7%D8%B3%DA%A9\"><\/span>\n<p>  \u06a9\u062f \u0628\u0631\u0646\u0627\u0645\u0647 \u0641\u0644\u0627\u0633\u06a9<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<h4><span class=\"ez-toc-section\" id=\"apppy\"><\/span>\n<p>  <code>app.py<\/code><br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight python\"><code><span class=\"kn\">from<\/span> <span class=\"n\">flask<\/span> <span class=\"kn\">import<\/span> <span class=\"n\">Flask<\/span><span class=\"p\">,<\/span> <span class=\"n\">render_template<\/span><span class=\"p\">,<\/span> <span class=\"n\">request<\/span><span class=\"p\">,<\/span> <span class=\"n\">jsonify<\/span>\n<span class=\"kn\">import<\/span> <span class=\"n\">joblib<\/span>\n<span class=\"kn\">import<\/span> <span class=\"n\">pandas<\/span> <span class=\"k\">as<\/span> <span class=\"n\">pd<\/span>\n\n<span class=\"n\">app<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">Flask<\/span><span class=\"p\">(<\/span><span class=\"n\">__name__<\/span><span class=\"p\">)<\/span>\n<span class=\"n\">model<\/span> <span class=\"o\">=<\/span> <span class=\"bp\">None<\/span>\n\n<span class=\"c1\"># Load the trained machine learning model\n<\/span><span class=\"k\">def<\/span> <span class=\"nf\">load_model<\/span><span class=\"p\">():<\/span>\n    <span class=\"k\">global<\/span> <span class=\"n\">model<\/span>\n    <span class=\"n\">model<\/span> <span class=\"o\">=<\/span> <span class=\"n\">joblib<\/span><span class=\"p\">.<\/span><span class=\"nf\">load<\/span><span class=\"p\">(<\/span><span class=\"sh\">'<\/span><span class=\"s\">models\/predictive_model.pkl<\/span><span class=\"sh\">'<\/span><span class=\"p\">)<\/span>\n\n<span class=\"c1\"># Home route\n<\/span><span class=\"nd\">@app.route<\/span><span class=\"p\">(<\/span><span class=\"sh\">'<\/span><span class=\"s\">\/<\/span><span class=\"sh\">'<\/span><span class=\"p\">)<\/span>\n<span class=\"k\">def<\/span> <span class=\"nf\">home<\/span><span class=\"p\">():<\/span>\n    <span class=\"k\">return<\/span> <span class=\"nf\">render_template<\/span><span class=\"p\">(<\/span><span class=\"sh\">'<\/span><span class=\"s\">index.html<\/span><span class=\"sh\">'<\/span><span class=\"p\">)<\/span>\n\n<span class=\"c1\"># Endpoint to receive sensor data and make predictions\n<\/span><span class=\"nd\">@app.route<\/span><span class=\"p\">(<\/span><span class=\"sh\">'<\/span><span class=\"s\">\/predict<\/span><span class=\"sh\">'<\/span><span class=\"p\">,<\/span> <span class=\"n\">methods<\/span><span class=\"o\">=<\/span><span class=\"p\">[<\/span><span class=\"sh\">'<\/span><span class=\"s\">POST<\/span><span class=\"sh\">'<\/span><span class=\"p\">])<\/span>\n<span class=\"k\">def<\/span> <span class=\"nf\">predict<\/span><span class=\"p\">():<\/span>\n    <span class=\"k\">if<\/span> <span class=\"n\">model<\/span> <span class=\"ow\">is<\/span> <span class=\"bp\">None<\/span><span class=\"p\">:<\/span>\n        <span class=\"nf\">load_model<\/span><span class=\"p\">()<\/span>  <span class=\"c1\"># Load the model if not already loaded\n<\/span>\n    <span class=\"c1\"># Get data from the POST request\n<\/span>    <span class=\"n\">data<\/span> <span class=\"o\">=<\/span> <span class=\"n\">request<\/span><span class=\"p\">.<\/span><span class=\"n\">form<\/span><span class=\"p\">.<\/span><span class=\"nf\">to_dict<\/span><span class=\"p\">()<\/span>\n\n    <span class=\"c1\"># Convert the data into a DataFrame\n<\/span>    <span class=\"n\">input_data<\/span> <span class=\"o\">=<\/span> <span class=\"n\">pd<\/span><span class=\"p\">.<\/span><span class=\"nc\">DataFrame<\/span><span class=\"p\">([<\/span><span class=\"n\">data<\/span><span class=\"p\">])<\/span>\n\n    <span class=\"c1\"># Make predictions\n<\/span>    <span class=\"n\">prediction<\/span> <span class=\"o\">=<\/span> <span class=\"n\">model<\/span><span class=\"p\">.<\/span><span class=\"nf\">predict<\/span><span class=\"p\">(<\/span><span class=\"n\">input_data<\/span><span class=\"p\">)<\/span>\n    <span class=\"n\">prediction_prob<\/span> <span class=\"o\">=<\/span> <span class=\"n\">model<\/span><span class=\"p\">.<\/span><span class=\"nf\">predict_proba<\/span><span class=\"p\">(<\/span><span class=\"n\">input_data<\/span><span class=\"p\">)[:,<\/span> <span class=\"mi\">1<\/span><span class=\"p\">]<\/span>  <span class=\"c1\"># Probability of failure\n<\/span>\n    <span class=\"c1\"># Prepare response\n<\/span>    <span class=\"k\">if<\/span> <span class=\"n\">prediction<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">]<\/span> <span class=\"o\">==<\/span> <span class=\"mi\">1<\/span><span class=\"p\">:<\/span>\n        <span class=\"n\">result<\/span> <span class=\"o\">=<\/span> <span class=\"sh\">\"<\/span><span class=\"s\">Equipment failure predicted.<\/span><span class=\"sh\">\"<\/span>\n    <span class=\"k\">else<\/span><span class=\"p\">:<\/span>\n        <span class=\"n\">result<\/span> <span class=\"o\">=<\/span> <span class=\"sh\">\"<\/span><span class=\"s\">Equipment functioning normally.<\/span><span class=\"sh\">\"<\/span>\n\n    <span class=\"n\">output<\/span> <span class=\"o\">=<\/span> <span class=\"p\">{<\/span>\n        <span class=\"sh\">\"<\/span><span class=\"s\">prediction<\/span><span class=\"sh\">\"<\/span><span class=\"p\">:<\/span> <span class=\"n\">result<\/span><span class=\"p\">,<\/span>\n        <span class=\"sh\">\"<\/span><span class=\"s\">probability<\/span><span class=\"sh\">\"<\/span><span class=\"p\">:<\/span> <span class=\"nf\">float<\/span><span class=\"p\">(<\/span><span class=\"n\">prediction_prob<\/span><span class=\"p\">[<\/span><span class=\"mi\">0<\/span><span class=\"p\">])<\/span>\n    <span class=\"p\">}<\/span>\n\n    <span class=\"k\">return<\/span> <span class=\"nf\">jsonify<\/span><span class=\"p\">(<\/span><span class=\"n\">output<\/span><span class=\"p\">)<\/span>\n\n<span class=\"k\">if<\/span> <span class=\"n\">__name__<\/span> <span class=\"o\">==<\/span> <span class=\"sh\">'<\/span><span class=\"s\">__main__<\/span><span class=\"sh\">'<\/span><span class=\"p\">:<\/span>\n    <span class=\"n\">app<\/span><span class=\"p\">.<\/span><span class=\"nf\">run<\/span><span class=\"p\">(<\/span><span class=\"n\">debug<\/span><span class=\"o\">=<\/span><span class=\"bp\">True<\/span><span class=\"p\">)<\/span>\n<\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div>\n<h3><span class=\"ez-toc-section\" id=\"%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87_%D9%88_%D8%A7%D8%B3%D8%AA%D9%82%D8%B1%D8%A7%D8%B1\"><\/span>\n<p>  \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0648 \u0627\u0633\u062a\u0642\u0631\u0627\u0631<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<ol>\n<li>\n<p><strong>\u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u0648\u0631\u0648\u062f\u06cc \u0648 \u067e\u06cc\u0634 \u0628\u06cc\u0646\u06cc<\/strong>:<\/p>\n<ul>\n<li>\u06a9\u0627\u0631\u0628\u0631\u0627\u0646 \u062f\u0627\u062f\u0647 \u0647\u0627\u06cc \u062d\u0633\u06af\u0631 (\u0645\u0627\u0646\u0646\u062f \u062f\u0645\u0627\u060c \u0641\u0634\u0627\u0631) \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u06cc\u06a9 \u0641\u0631\u0645 \u0648\u0628 \u0648\u0627\u0631\u062f \u0645\u06cc \u06a9\u0646\u0646\u062f.<\/li>\n<li>\u0628\u0631\u0646\u0627\u0645\u0647 Flask \u0627\u0632 \u0645\u062f\u0644 \u0622\u0645\u0648\u0632\u0634 \u062f\u06cc\u062f\u0647 \u0628\u0631\u0627\u06cc \u067e\u06cc\u0634 \u0628\u06cc\u0646\u06cc \u0648\u0636\u0639\u06cc\u062a \u0633\u0644\u0627\u0645\u062a \u062a\u062c\u0647\u06cc\u0632\u0627\u062a (\u0634\u06a9\u0633\u062a \u06cc\u0627 \u0639\u0627\u062f\u06cc) \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f \u0648 \u06cc\u06a9 \u0627\u0645\u062a\u06cc\u0627\u0632 \u0627\u062d\u062a\u0645\u0627\u0644 \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f.<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><strong>\u06cc\u06a9\u067e\u0627\u0631\u0686\u0647 \u0633\u0627\u0632\u06cc \u0648 \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631\u06cc<\/strong>:<\/p>\n<ul>\n<li>\u0645\u0639\u0645\u0627\u0631\u06cc \u0645\u062f\u0648\u0644\u0627\u0631 Flask \u0627\u0645\u06a9\u0627\u0646 \u0627\u062f\u063a\u0627\u0645 \u0622\u0633\u0627\u0646 \u0628\u0627 \u0633\u0627\u06cc\u0631 \u0686\u0627\u0631\u0686\u0648\u0628 \u0647\u0627 \u0648 \u06af\u0632\u06cc\u0646\u0647 \u0647\u0627\u06cc \u06af\u0633\u062a\u0631\u0634 \u0645\u0642\u06cc\u0627\u0633 \u067e\u0630\u06cc\u0631 \u0631\u0627 \u0641\u0631\u0627\u0647\u0645 \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<li>\u0628\u0631\u0627\u06cc \u0628\u0647\u06cc\u0646\u0647\u200c\u0633\u0627\u0632\u06cc \u0628\u06cc\u0634\u062a\u0631 \u0627\u0633\u062a\u0631\u0627\u062a\u0698\u06cc\u200c\u0647\u0627\u06cc \u062a\u0639\u0645\u06cc\u0631 \u0648 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u067e\u06cc\u0634\u200c\u0628\u06cc\u0646\u06cc\u200c\u06a9\u0646\u0646\u062f\u0647\u060c \u0628\u0631\u0646\u0627\u0645\u0647 \u0631\u0627 \u0628\u0627 \u062c\u0631\u06cc\u0627\u0646 \u062f\u0627\u062f\u0647\u200c\u0647\u0627\u06cc \u0628\u06cc\u200c\u062f\u0631\u0646\u06af \u0648 \u0627\u0628\u0632\u0627\u0631\u0647\u0627\u06cc \u062a\u062c\u0633\u0645 \u067e\u06cc\u0634\u0631\u0641\u062a\u0647 \u062a\u0642\u0648\u06cc\u062a \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h3><span class=\"ez-toc-section\" id=\"%D9%86%D8%AA%DB%8C%D8%AC%D9%87\"><\/span>\n<p>  \u0646\u062a\u06cc\u062c\u0647<br \/>\n<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>\u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0645\u0627\u0634\u06cc\u0646 \u0648 \u0627\u0633\u062a\u0642\u0631\u0627\u0631 \u0622\u0646 \u0627\u0632 \u0637\u0631\u06cc\u0642 Flask\u060c \u0633\u0627\u0632\u0645\u0627\u0646\u200c\u0647\u0627 \u062f\u0631 \u0628\u062e\u0634 \u0628\u0627\u0644\u0627\u062f\u0633\u062a\u06cc \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0647 \u0627\u0633\u062a\u0631\u0627\u062a\u0698\u06cc\u200c\u0647\u0627\u06cc \u062a\u0639\u0645\u06cc\u0631 \u0648 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u067e\u06cc\u0634\u06af\u06cc\u0631\u0627\u0646\u0647 \u062f\u0633\u062a \u06cc\u0627\u0628\u0646\u062f \u06a9\u0647 \u06a9\u0627\u0631\u0627\u06cc\u06cc \u0639\u0645\u0644\u06cc\u0627\u062a\u06cc \u0631\u0627 \u0627\u0641\u0632\u0627\u06cc\u0634 \u0645\u06cc\u200c\u062f\u0647\u062f\u060c \u0632\u0645\u0627\u0646 \u062e\u0631\u0627\u0628\u06cc \u0631\u0627 \u0628\u0647 \u062d\u062f\u0627\u0642\u0644 \u0645\u06cc\u200c\u0631\u0633\u0627\u0646\u062f \u0648 \u0633\u0637\u0648\u062d \u062a\u0648\u0644\u06cc\u062f \u067e\u0627\u06cc\u062f\u0627\u0631 \u0631\u0627 \u062a\u0636\u0645\u06cc\u0646 \u0645\u06cc\u200c\u06a9\u0646\u062f.  \u0647\u0645\u0627\u0646\u0637\u0648\u0631 \u06a9\u0647 \u062a\u06a9\u0646\u0648\u0644\u0648\u0698\u06cc \u0628\u0647 \u062a\u06a9\u0627\u0645\u0644 \u062e\u0648\u062f \u0627\u062f\u0627\u0645\u0647 \u0645\u06cc \u062f\u0647\u062f\u060c \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u062a\u0639\u0645\u06cc\u0631 \u0648 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u067e\u06cc\u0634 \u0628\u06cc\u0646\u06cc \u0634\u062f\u0647 \u0646\u0642\u0634 \u0628\u0633\u06cc\u0627\u0631 \u0645\u0647\u0645\u06cc \u062f\u0631 \u062d\u0641\u0638 \u0631\u0642\u0627\u0628\u062a \u0648 \u067e\u0627\u06cc\u062f\u0627\u0631\u06cc \u062f\u0631 \u0639\u0645\u0644\u06cc\u0627\u062a \u0635\u0646\u0639\u062a\u06cc \u0627\u06cc\u0641\u0627 \u062e\u0648\u0627\u0647\u062f \u06a9\u0631\u062f.<\/p>\n<p>\u0644\u06cc\u0646\u06a9 Github \u0627\u06cc\u0646\u062c\u0627 <\/p>\n<\/p><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Summarize this content to 400 words in Persian Lang \u062f\u0631 \u0686\u0634\u0645 \u0627\u0646\u062f\u0627\u0632 \u0635\u0646\u0639\u062a\u06cc \u067e\u0631 \u0633\u0631\u0639\u062a \u0627\u0645\u0631\u0648\u0632\u060c \u062a\u0639\u0645\u06cc\u0631 \u0648 \u0646\u06af\u0647\u062f\u0627\u0631\u06cc \u067e\u06cc\u0634 \u0628\u06cc\u0646\u06cc \u0634\u062f\u0647 \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u06cc\u06a9 \u0627\u0633\u062a\u0631\u0627\u062a\u0698\u06cc \u062d\u06cc\u0627\u062a\u06cc \u0628\u0631\u0627\u06cc \u0628\u0647\u06cc\u0646\u0647 \u0633\u0627\u0632\u06cc \u0645\u062f\u06cc\u0631\u06cc\u062a \u062f\u0627\u0631\u0627\u06cc\u06cc \u0648 \u06a9\u0627\u0631\u0627\u06cc\u06cc \u0639\u0645\u0644\u06cc\u0627\u062a\u06cc \u0638\u0627\u0647\u0631 \u0634\u062f\u0647 \u0627\u0633\u062a. \u0627\u06cc\u0646 \u0645\u0642\u0627\u0644\u0647 \u0628\u0647 \u0628\u0631\u0631\u0633\u06cc \u0627\u062c\u0631\u0627\u06cc \u0639\u0645\u0644\u06cc \u062a\u06a9\u0646\u06cc\u06a9\u200c\u0647\u0627\u06cc \u06cc\u0627\u062f\u06af\u06cc\u0631\u06cc \u0645\u0627\u0634\u06cc\u0646 \u062f\u0631 \u0628\u062e\u0634 \u0628\u0627\u0644\u0627\u062f\u0633\u062a\u06cc \u0645\u06cc\u200c\u067e\u0631\u062f\u0627\u0632\u062f\u060c \u0628\u0647\u200c\u0648\u06cc\u0698\u0647 \u0628\u0631 \u0631\u0648\u06cc \u06cc\u06a9 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":69994,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-69993","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/69993","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=69993"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/69993\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/69994"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=69993"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=69993"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=69993"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}