File size: 2,619 Bytes
07ae9fd b426f35 07ae9fd b426f35 07ae9fd b426f35 07ae9fd b426f35 07ae9fd b426f35 07ae9fd b426f35 07ae9fd b426f35 07ae9fd b426f35 35ce90a b426f35 07ae9fd |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
import gradio as gr
from huggingface_hub import InferenceClient
import os
"""
Warning Lamp Detector using Hugging Face Inference API
This application allows users to upload images of warning lamps and get classification results.
"""
# Initialize the client with your model
client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
def detect_warning_lamp(image, history: list[tuple[str, str]], system_message):
"""
Process the uploaded image and return detection results
"""
# TODO: Replace with actual model inference
# This is a placeholder response - you'll need to integrate your actual model
messages = [{"role": "system", "content": system_message}]
# Add the image analysis request
messages.append({
"role": "user",
"content": f"Please analyze this warning lamp image and provide a detailed classification."
})
response = ""
for message in client.chat_completion(
messages,
max_tokens=512,
stream=True,
temperature=0.7,
top_p=0.95,
):
token = message.choices[0].delta.content
response += token
yield response
# Create a custom interface with image upload
with gr.Blocks(title="Warning Lamp Detector", theme=gr.themes.Soft()) as demo:
gr.Markdown("""
# 🚨 Warning Lamp Detector
Upload an image of a warning lamp to get its classification.
### Instructions:
1. Upload a clear image of the warning lamp
2. Wait for the analysis
3. View the detailed classification results
""")
with gr.Row():
with gr.Column(scale=1):
image_input = gr.Image(
label="Upload Warning Lamp Image",
type="pil",
sources="upload"
)
system_message = gr.Textbox(
value="You are an expert in warning lamp classification. Analyze the image and provide detailed information about the type, color, and status of the warning lamp.",
label="System Message",
lines=3
)
with gr.Column(scale=1):
chatbot = gr.Chatbot(
[],
elem_id="chatbot",
bubble_full_width=False,
avatar_images=(None, "🚨"),
height=400
)
# Add a submit button
submit_btn = gr.Button("Analyze Warning Lamp", variant="primary")
submit_btn.click(
detect_warning_lamp,
inputs=[image_input, chatbot, system_message],
outputs=chatbot
)
if __name__ == "__main__":
demo.launch()
|