fixed model name to gemini-2.0-flash, used AgnoImage for the run param

This commit is contained in:
Madhu 2025-02-25 01:02:36 +05:30
parent fc02a7f3dd
commit 1764b04ae0

View file

@ -1,9 +1,10 @@
import os import os
from PIL import Image from PIL import Image as PILImage
from agno.agent import Agent from agno.agent import Agent
from agno.models.google import Gemini from agno.models.google import Gemini
import streamlit as st import streamlit as st
from agno.tools.duckduckgo import DuckDuckGoTools from agno.tools.duckduckgo import DuckDuckGoTools
from agno.media import Image as AgnoImage
if "GOOGLE_API_KEY" not in st.session_state: if "GOOGLE_API_KEY" not in st.session_state:
st.session_state.GOOGLE_API_KEY = None st.session_state.GOOGLE_API_KEY = None
@ -42,8 +43,8 @@ with st.sidebar:
medical_agent = Agent( medical_agent = Agent(
model=Gemini( model=Gemini(
api_key=st.session_state.GOOGLE_API_KEY, id="gemini-2.0-flash",
id="gemini-2.0-flash-exp" api_key=st.session_state.GOOGLE_API_KEY
), ),
tools=[DuckDuckGoTools()], tools=[DuckDuckGoTools()],
markdown=True markdown=True
@ -108,11 +109,9 @@ with upload_container:
if uploaded_file is not None: if uploaded_file is not None:
with image_container: with image_container:
# Center the image using columns
col1, col2, col3 = st.columns([1, 2, 1]) col1, col2, col3 = st.columns([1, 2, 1])
with col2: with col2:
image = Image.open(uploaded_file) image = PILImage.open(uploaded_file)
# Calculate aspect ratio for resizing
width, height = image.size width, height = image.size
aspect_ratio = width / height aspect_ratio = width / height
new_width = 500 new_width = 500
@ -133,13 +132,16 @@ if uploaded_file is not None:
with analysis_container: with analysis_container:
if analyze_button: 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."): with st.spinner("🔄 Analyzing image... Please wait."):
try: 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("### 📋 Analysis Results")
st.markdown("---") st.markdown("---")
st.markdown(response.content) st.markdown(response.content)
@ -150,8 +152,5 @@ if uploaded_file is not None:
) )
except Exception as e: except Exception as e:
st.error(f"Analysis error: {e}") st.error(f"Analysis error: {e}")
finally:
if os.path.exists(image_path):
os.remove(image_path)
else: else:
st.info("👆 Please upload a medical image to begin analysis") st.info("👆 Please upload a medical image to begin analysis")