Spaces:
Sleeping
Sleeping
import os | |
import streamlit as st | |
import google.generativeai as genai | |
from PIL import Image | |
import io | |
# API-Schlüssel laden (aus Umgebungsvariable) | |
genai.configure(api_key=os.getenv('KEY')) # Sicherer! | |
# Gemini Modell erstellen | |
generation_config = { | |
"temperature": 0.5, # Anpassbar | |
"top_p": 0.95, # Anpassbar | |
"max_output_tokens": 200, # Anpassbar | |
} | |
model = genai.GenerativeModel(model_name="gemini-pro", generation_config=generation_config) # Gemini Pro verwenden | |
st.title("Bildanalyse mit Gemini") | |
uploaded_file = st.file_uploader("Bild hochladen", type=["jpg", "png", "jpeg"]) | |
if uploaded_file is not None: | |
image = Image.open(uploaded_file) | |
st.image(image, caption="Hochgeladenes Bild", use_column_width=True) | |
if st.button("Analysieren"): | |
with st.spinner("Analysiere Bild..."): | |
try: | |
# Bild in Bytes umwandeln | |
image_bytes = io.BytesIO() | |
image.save(image_bytes, format=image.format) | |
image_bytes = image_bytes.getvalue() | |
# Bild in Base64 kodieren | |
encoded_image = base64.b64encode(image_bytes).decode("utf-8") | |
# Prompt erstellen (angepasst für Base64) | |
prompt = f"Beschreibe dieses Bild (Base64-kodiert) und identifiziere das Hauptobjekt:\n\n{encoded_image}" | |
# Anfrage an Gemini senden | |
response = model.generate_text(prompt=prompt) | |
# Antwort anzeigen | |
st.write("## Analyseergebnis:") | |
st.write(response.result) | |
except Exception as e: | |
st.error(f"Ein Fehler ist aufgetreten: {e}") |