# -*- coding: utf-8 -*- """Untitled33.ipynb Automatically generated by Colab. Original file is located at https://colab.research.google.com/drive/1p2JWKpjv7_CT2FJ5sbbsq9ZtYVSzY5WS """ !pip install roboflow from roboflow import Roboflow rf = Roboflow(api_key="tN8RCHc8406wlBLQoCBx") workspace = rf.workspace("yomnasoror") # اسم الـ workspace بتاعك print("📂 Available Projects:") for p in workspace.projects(): print("-", p) from roboflow import Roboflow print("loading Roboflow workspace...") rf = Roboflow(api_key="tN8RCHc8406wlBLQoCBx") print("loading Roboflow project...") project = rf.workspace("yomnasoror").project("medical-waste") # الاسم لازم يكون lowercase بدون مسافات model = project.version(1).model print("✅ Model loaded successfully!") import os print(os.listdir()) import gradio as gr from roboflow import Roboflow # تحميل الموديل rf = Roboflow(api_key="tN8RCHc8406wlBLQoCBx") project = rf.workspace("yomnasoror").project("medical-waste") model = project.version(1).model # دالة التنبؤ def predict_image(image): pred = model.predict(image.name).json() return str(pred) # إنشاء واجهة Gradio iface = gr.Interface(fn=predict_image, inputs="file", outputs="text") iface.launch(share=True) !pip install pyngrok flask from pyngrok import ngrok # 🔐 أضيفي التوكِن بتاعك هنا ngrok.set_auth_token("3459NDFoZcow9VdVbCd6WF7Mjsq_5uLRwTaSyR4s4HeXk2Cq3") from flask import Flask app = Flask(__name__) @app.route("/") def home(): return "🚀 Flask API is running!" # شغّلي السيرفر على بورت محدد from threading import Thread def run(): app.run(port=5000) t = Thread(target=run) t.start() # افتحي tunnel ngrok public_url = ngrok.connect(5000) print("🔥 Public URL:", public_url) !pip install flask ngrok from flask import Flask, request, jsonify from tensorflow.keras.models import load_model from tensorflow.keras.preprocessing import image import numpy as np from PIL import Image import io app = Flask(__name__) # ✅ تحميل الموديل model = load_model("model.h5") class_names = ['infectious', 'sharp', 'general'] @app.route('/predict', methods=['POST']) def predict(): if 'file' not in request.files: return jsonify({'error': 'No file provided'}), 400 file = request.files['file'] img = Image.open(io.BytesIO(file.read())).resize((224, 224)) img_array = np.expand_dims(np.array(img) / 255.0, axis=0) preds = model.predict(img_array) pred_class = class_names[np.argmax(preds)] return jsonify({ 'prediction': pred_class, 'confidence': float(np.max(preds)) }) !pip install flask pyngrok roboflow import requests # 🔸 رابط الـAPI اللي ظهرلك من ngrok API_URL = "https://limbed-occupationless-kaitlynn.ngrok-free.dev" # ← غيّريه بالرابط اللي طلعلك # 🔸 مسار الصورة اللي عايزة تجربيها image_path = "/content/Sryngis34_JPG.rf.451be7985f401d1c4c8f170541813990.jpg" # أو ارفعي صورة بنفس الاسم في كولاب # 🔸 إرسال الصورة للـAPI with open("/content/Sryngis34_JPG.rf.451be7985f401d1c4c8f170541813990.jpg", "rb") as img: files = {"image": img} response = requests.post(API_URL + "/predict", files=files) # 🔸 عرض النتيجة print(response.json()) from flask import Flask, request, jsonify from roboflow import Roboflow from pyngrok import ngrok from threading import Thread # 🔹 تحميل الموديل من Roboflow print("Loading Roboflow model...") rf = Roboflow(api_key="tN8RCHc8406wlBLQoCBx") project = rf.workspace("yomnasoror").project("medical-waste") model = project.version(1).model print("✅ Model loaded successfully!") # 🔹 إنشاء تطبيق Flask app = Flask(__name__) @app.route("/", methods=["GET"]) def home(): return "✅ Medical Waste Classification API is running!" @app.route("/predict", methods=["POST"]) def predict(): if "image" not in request.files: return jsonify({"error": "No image uploaded"}), 400 image = request.files["image"] result = model.predict(image).json() return jsonify(result) # 🔹 استخدمي منفذ جديد port = 5001 # غيري عن 5000 public_url = ngrok.connect(port).public_url print(f"🚀 Public API URL: {public_url}") # Run the Flask app in a separate thread def run_flask_app(): app.run(port=port, debug=True, use_reloader=False) flask_thread = Thread(target=run_flask_app) flask_thread.start() import gradio as gr import requests # رابط الـAPI اللي عملتيه API_URL = "https://xxxxxx.ngrok-free.app/predict" # غيّريه بالرابط بتاعك # دالة ترسل الصورة إلى الـAPI وترجع النتيجة def predict_via_api(image): files = {"image": image} response = requests.post(API_URL, files=files) result = response.json() try: pred = result["predictions"][0] label = pred["class"] conf = pred["confidence"] return f"🧠 النوع: {label}\n📊 الدقة: {conf:.2f}" except Exception: return "⚠️ خطأ أثناء تحليل الصورة!" # إنشاء واجهة Gradio iface = gr.Interface( fn=predict_via_api, inputs=gr.Image(type="filepath", label="📸 ارفع صورة المخلفات الطبية"), outputs="text", title="BioTrack AI - Medical Waste Classifier", description="ارفع صورة، وسيقوم الذكاء الاصطناعي بالتعرف على نوع المخلفات الطبية 🔬" ) iface.launch(share=True)