Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixed an issue in ai medical imaging agent! (CAN MERGE) #130

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions ai_agent_tutorials/ai_medical_imaging_agent/README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# 🩻 Medical Imaging Diagnosis Agent

A Medical Imaging Diagnosis Agent build on agno powered by Gemini 2.0 Flash Experimental that provides AI-assisted analysis of medical images of various scans. The agent acts as a medical imaging diagnosis expert to analyze various types of medical images and videos, providing detailed diagnostic insights and explanations.
A Medical Imaging Diagnosis Agent build on agno powered by Gemini 2.0 Flash that provides AI-assisted analysis of medical images of various scans. The agent acts as a medical imaging diagnosis expert to analyze various types of medical images and videos, providing detailed diagnostic insights and explanations.

## Features

Expand Down Expand Up @@ -57,7 +57,7 @@ A Medical Imaging Diagnosis Agent build on agno powered by Gemini 2.0 Flash Expe

- Uses Gemini 2.0 Flash for analysis
- Requires stable internet connection
- API usage costs apply
- Free API usage costs - 1,500 free requests per day by google!
- For educational and development purposes only
- Not a replacement for professional medical diagnosis

Expand Down
27 changes: 13 additions & 14 deletions ai_agent_tutorials/ai_medical_imaging_agent/ai_medical_imaging.py
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
import os
from PIL import Image
from PIL import Image as PILImage
from agno.agent import Agent
from agno.models.google import Gemini
import streamlit as st
from agno.tools.duckduckgo import DuckDuckGoTools
from agno.media import Image as AgnoImage

if "GOOGLE_API_KEY" not in st.session_state:
st.session_state.GOOGLE_API_KEY = None
Expand Down Expand Up @@ -42,8 +43,8 @@

medical_agent = Agent(
model=Gemini(
api_key=st.session_state.GOOGLE_API_KEY,
id="gemini-2.0-flash-exp"
id="gemini-2.0-flash",
api_key=st.session_state.GOOGLE_API_KEY
),
tools=[DuckDuckGoTools()],
markdown=True
Expand Down Expand Up @@ -108,11 +109,9 @@

if uploaded_file is not None:
with image_container:
# Center the image using columns
col1, col2, col3 = st.columns([1, 2, 1])
with col2:
image = Image.open(uploaded_file)
# Calculate aspect ratio for resizing
image = PILImage.open(uploaded_file)
width, height = image.size
aspect_ratio = width / height
new_width = 500
Expand All @@ -133,13 +132,16 @@

with analysis_container:
if analyze_button:
image_path = "temp_medical_image.png"
with open(image_path, "wb") as f:
f.write(uploaded_file.getbuffer())

with st.spinner("🔄 Analyzing image... Please wait."):
try:
response = medical_agent.run(query, images=[image_path])
temp_path = "temp_resized_image.png"
resized_image.save(temp_path)

# Create AgnoImage object
agno_image = AgnoImage(filepath=temp_path) # Adjust if constructor differs

# Run analysis
response = medical_agent.run(query, images=[agno_image])
st.markdown("### 📋 Analysis Results")
st.markdown("---")
st.markdown(response.content)
Expand All @@ -150,8 +152,5 @@
)
except Exception as e:
st.error(f"Analysis error: {e}")
finally:
if os.path.exists(image_path):
os.remove(image_path)
else:
st.info("👆 Please upload a medical image to begin analysis")