import streamlit as st import requests from PIL import Image from io import BytesIO import base64 API_KEY = "AIzaSyAbKZgDxZ-lL-vNXStTl0S4vZftDSYu890" st.set_page_config(page_title="Image To Text", page_icon="icon.png", layout="centered", initial_sidebar_state="auto", menu_items=None) # Streamlit başlık st.title("Gemini API Resim Analizi") # Kullanıcının resim yüklemesine izin verme uploaded_file = st.file_uploader("Lütfen bir resim yükleyin", type=["jpg", "jpeg", "png"]) st.subheader(""" Resim yükledikten sonra resim hakkında istediğiniz soruyu aşağıda çıkacak alana sorabilirsiniz. Lütfen sadece resim hakkında soru sorun !!! """) # Eğer resim yüklendiyse if uploaded_file is not None: # Resmi görüntüle image = Image.open(uploaded_file) st.image(image, caption="Yüklenen Resim", use_column_width=True) prompt_text = st.text_area("Lütfen resimde sormak istediğiniz şeyi yazın") buton = st.button("Resmi Yorumla") image = image.convert('RGB') # Gemini API için resmi hazırla image_bytes = BytesIO() image.save(image_bytes, format='JPEG') image_base64 = base64.b64encode(image_bytes.getvalue()).decode('utf-8') # Gemini API isteği yap api_url = "https://generativelanguage.googleapis.com/v1beta/models/gemini-pro-vision:generateContent?key=AIzaSyAbKZgDxZ-lL-vNXStTl0S4vZftDSYu890" headers = {'Content-Type': 'application/json'} prompt_text_ben = """ Bu resimde gördüğünüz sahneyi ayrıntılı bir şekilde tanımlamanızı istiyorum. Lütfen resimdeki ana nesne veya nesneleri belirtin, renklerini ve konumlarını açıklayın. Ayrıca, resimdeki atmosferi veya duygusal tonu yakalamak için kullanabileceğiniz ifadeleri eklemeniz beni memnun eder. """ request_data = { "contents": [ { "parts": [ {"text": prompt_text}, { "inline_data": { "mime_type": "image/jpeg", "data": image_base64 } } ] } ] } if buton: response = requests.post(api_url, json=request_data, headers=headers) print(response.json()) # Gemini API'den gelen cevabı işle result_text = response.json()['candidates'][0]['content']['parts'][0]['text'] # Kullanıcıya sonucu göster st.subheader("Resmin İçeriği:") st.write(result_text)