aitrack / untitled33.py
Yomna22Soror's picture
Upload untitled33.py
45d6fc8 verified
# -*- 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)