Geologist_AI / app.py
solfedge's picture
Update app.py
e0edb69 verified
import gradio as gr
import os
from simple_classifier import SimpleRockClassifier
classifier = SimpleRockClassifier()
def analyze_core(image):
"""Analyze a drill core image"""
# Save uploaded image temporarily
temp_path = "temp_upload.jpg"
image.save(temp_path)
# Get prediction
try:
result = classifier.predict(temp_path)
# Format response
response = f"""
## Drill Core Analysis Results
### Primary Prediction
**Rock Type:** `{result['rock_type']}`
**Confidence:** `{result['confidence']:.2f}`
### Analysis Details
{result['explanation']}
"""
except Exception as e:
response = f"## Error\nAn error occurred during analysis: {str(e)}"
if os.path.exists(temp_path):
os.remove(temp_path)
return response
# Create Gradio interface
with gr.Blocks(title="Geologist_AI - Core Logger") as demo:
gr.Markdown("# Geologist_AI - Core Logger")
gr.Markdown("Upload a drill core image to identify the rock type")
with gr.Row():
with gr.Column():
image_input = gr.Image(type="pil", label="πŸ“· Drill Core Image")
submit_btn = gr.Button("πŸ” Analyze Core Sample", variant="primary")
with gr.Column():
output_text = gr.Markdown(label="πŸ“Š Analysis Results")
submit_btn.click(
fn=analyze_core,
inputs=image_input,
outputs=output_text
)
gr.Markdown("---")
gr.Markdown("### About this Tool")
gr.Markdown("""
This AI-powered geologist identifies rock types based on:
- **Visual color analysis**
- **Deep learning feature extraction**
**Supported rock types:**
- Gold-bearing rock
- Iron-rich rock
- Lithium-rich rock
- Copper-bearing rock
- Quartz-rich rock
- Waste rock
""")
# Launch the app
if __name__ == "__main__":
demo.launch()