Defkhan5960's picture
Upload app.py
4ba3e6e
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)