{"id":38299,"date":"2026-01-28T09:40:44","date_gmt":"2026-01-28T06:40:44","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=38299"},"modified":"2026-01-28T09:40:44","modified_gmt":"2026-01-28T06:40:44","slug":"ai-goruntu-uretimi-icin-streamlit-ve-python-ile-akilli-bir-prompt-olusturucu-uygulamasi-gelistirmek","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/ai-goruntu-uretimi-icin-streamlit-ve-python-ile-akilli-bir-prompt-olusturucu-uygulamasi-gelistirmek\/","title":{"rendered":"AI G\u00f6r\u00fcnt\u00fc \u00dcretimi \u0130\u00e7in Streamlit ve Python ile Ak\u0131ll\u0131 Bir Prompt Olu\u015fturucu Uygulamas\u0131 Geli\u015ftirmek"},"content":{"rendered":"<h2>AI G\u00f6r\u00fcnt\u00fc \u00dcretimi \u0130\u00e7in Streamlit ve Python ile Ak\u0131ll\u0131 Bir Prompt Olu\u015fturucu Uygulamas\u0131 Geli\u015ftirmek<\/h2>\n<p><body><\/p>\n<h2>Giri\u015f: Yapay Zeka G\u00f6r\u00fcnt\u00fc \u00dcretimi ve Prompt M\u00fchendisli\u011finin Y\u00fckseli\u015fi<\/h2>\n<p>Son y\u0131llarda yapay zeka teknolojileri, \u00f6zellikle g\u00f6r\u00fcnt\u00fc \u00fcretimi alan\u0131nda inan\u0131lmaz ilerlemeler kaydetti. DALL-E, Midjourney, Stable Diffusion gibi metinden g\u00f6r\u00fcnt\u00fcye (text-to-image) modeller, kullan\u0131c\u0131lar\u0131n sadece birka\u00e7 kelime veya c\u00fcmle ile hayal g\u00fc\u00e7lerini somut g\u00f6rsel \u00e7\u0131kt\u0131lara d\u00f6n\u00fc\u015ft\u00fcrmelerine olanak tan\u0131yor. Bu modellerin arkas\u0131ndaki g\u00fc\u00e7, genellikle geni\u015f veri k\u00fcmeleri \u00fczerinde e\u011fitilmi\u015f dif\u00fczyon tabanl\u0131 sinir a\u011flar\u0131d\u0131r. Ancak, bu modellerden istenen kalitede ve do\u011frultuda sonu\u00e7lar alabilmek, basit bir metin giri\u015fi yapmaktan \u00e7ok daha fazlas\u0131n\u0131 gerektirir. \u0130\u015fte bu noktada &#8220;prompt m\u00fchendisli\u011fi&#8221; (prompt engineering) kavram\u0131 devreye girer.<\/p>\n<p>Prompt m\u00fchendisli\u011fi, yapay zeka modellerinden en iyi \u00e7\u0131kt\u0131y\u0131 alabilmek i\u00e7in do\u011fru, detayl\u0131 ve etkili metin istemleri (prompt&#8217;lar) olu\u015fturma sanat\u0131d\u0131r. Bir prompt, sadece bir anahtar kelime listesi de\u011fil, ayn\u0131 zamanda modelin g\u00f6rseli nas\u0131l yorumlamas\u0131 gerekti\u011fini belirten stil, \u0131\u015f\u0131kland\u0131rma, kompozisyon, sanat\u00e7\u0131 referanslar\u0131, negatif istemler (g\u00f6rselde olmamas\u0131 gerekenler) gibi bir\u00e7ok unsuru i\u00e7erebilir. \u0130yi yaz\u0131lm\u0131\u015f bir prompt, s\u0131radan bir g\u00f6rselden sanatsal bir ba\u015fyap\u0131ta kadar geni\u015f bir fark yaratabilir. Ancak, bu kadar \u00e7ok parametreyi ak\u0131lda tutarak manuel olarak prompt yazmak, \u00f6zellikle yeni ba\u015flayanlar i\u00e7in olduk\u00e7a zorlay\u0131c\u0131 ve zaman al\u0131c\u0131 bir s\u00fcre\u00e7tir. Bu zorlu\u011fu a\u015fmak ve prompt olu\u015fturma s\u00fcrecini demokratikle\u015ftirmek amac\u0131yla, kullan\u0131c\u0131 dostu bir prompt olu\u015fturucu uygulamas\u0131na ihtiya\u00e7 duyulmaktad\u0131r. Bu makalede, Python ve Streamlit kullanarak b\u00f6yle bir ak\u0131ll\u0131 prompt olu\u015fturucu uygulamas\u0131n\u0131n nas\u0131l geli\u015ftirilece\u011fini detayl\u0131 bir \u015fekilde inceleyece\u011fiz.<\/p>\n<h2>Neden Streamlit? H\u0131zl\u0131 Uygulama Geli\u015ftirme \u0130\u00e7in M\u00fckemmel Bir Se\u00e7im<\/h2>\n<p>Uygulama geli\u015ftirme d\u00fcnyas\u0131nda, veri bilimi ve makine \u00f6\u011frenimi projeleri i\u00e7in h\u0131zl\u0131 prototipleme ve kolay da\u011f\u0131t\u0131m sa\u011flayan ara\u00e7lar giderek daha fazla \u00f6nem kazanmaktad\u0131r. Streamlit, bu alandaki en pop\u00fcler ve etkili k\u00fct\u00fcphanelerden biridir. Python geli\u015ftiricilerinin sadece birka\u00e7 sat\u0131r kodla etkile\u015fimli web uygulamalar\u0131 olu\u015fturmas\u0131na olanak tan\u0131r, bu da onu prompt olu\u015fturucu gibi bir ara\u00e7 i\u00e7in ideal bir se\u00e7im haline getirir.<\/p>\n<h3>Streamlit&#8217;in Temel Avantajlar\u0131:<\/h3>\n<p>*   <strong>Tamamen Python Tabanl\u0131:<\/strong> Frontend (aray\u00fcz) geli\u015ftirmek i\u00e7in HTML, CSS veya JavaScript bilgisine ihtiya\u00e7 duyulmaz. T\u00fcm uygulama mant\u0131\u011f\u0131 ve aray\u00fcz elemanlar\u0131 Python ile yaz\u0131l\u0131r. Bu, veri bilimciler ve makine \u00f6\u011frenimi m\u00fchendisleri i\u00e7in \u00f6\u011frenme e\u011frisini \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r.<br \/>\n*   <strong>H\u0131zl\u0131 Prototipleme:<\/strong> Streamlit&#8217;in basit API&#8217;si sayesinde, fikirler \u00e7ok k\u0131sa s\u00fcrede \u00e7al\u0131\u015fan uygulamalara d\u00f6n\u00fc\u015ft\u00fcr\u00fclebilir. <code>st.text_input<\/code>, <code>st.selectbox<\/code>, <code>st.slider<\/code> gibi bile\u015fenler, kullan\u0131c\u0131 etkile\u015fimini kolayca eklemeyi sa\u011flar.<br \/>\n*   <strong>Etkile\u015fimli Bile\u015fenler:<\/strong> Uygulaman\u0131n an\u0131nda g\u00fcncellenmesini sa\u011flayan dinamik bile\u015fenler sunar. Kullan\u0131c\u0131 bir se\u00e7ene\u011fi de\u011fi\u015ftirdi\u011finde, uygulaman\u0131n ilgili k\u0131sm\u0131 otomatik olarak yeniden \u00e7al\u0131\u015f\u0131r ve g\u00fcncellenmi\u015f \u00e7\u0131kt\u0131y\u0131 g\u00f6sterir.<br \/>\n*   <strong>Kolay Da\u011f\u0131t\u0131m:<\/strong> Streamlit uygulamalar\u0131, Streamlit Cloud gibi platformlar arac\u0131l\u0131\u011f\u0131yla kolayca buluta da\u011f\u0131t\u0131labilir, b\u00f6ylece d\u00fcnya \u00e7ap\u0131ndaki kullan\u0131c\u0131lara eri\u015filebilir hale gelir. Docker veya Heroku gibi di\u011fer platformlar da desteklenir.<br \/>\n*   <strong>Geni\u015f K\u00fct\u00fcphane Entegrasyonu:<\/strong> Pandas, NumPy, Matplotlib, scikit-learn, TensorFlow, PyTorch gibi pop\u00fcler Python k\u00fct\u00fcphaneleriyle sorunsuz bir \u015fekilde entegre olur. Bu, veri i\u015fleme, model \u00e7al\u0131\u015ft\u0131rma ve g\u00f6rselle\u015ftirme yeteneklerini uygulamaya kolayca dahil etmeyi sa\u011flar.<\/p>\n<p>Prompt olu\u015fturucu uygulamam\u0131zda, kullan\u0131c\u0131lar\u0131n \u00e7e\u015fitli parametreleri se\u00e7melerine ve girmelerine olanak tan\u0131yan bir dizi etkile\u015fimli aray\u00fcz eleman\u0131na ihtiyac\u0131m\u0131z olacak. Streamlit, bu gereksinimleri minimum \u00e7abayla kar\u015f\u0131layarak geli\u015ftirme s\u00fcrecini h\u0131zland\u0131racakt\u0131r.<\/p>\n<h2>Prompt Olu\u015fturucu Uygulamas\u0131n\u0131n Temel Bile\u015fenleri ve Mimarisi<\/h2>\n<p>Bir AI g\u00f6r\u00fcnt\u00fc prompt olu\u015fturucunun temel amac\u0131, kullan\u0131c\u0131n\u0131n karma\u015f\u0131k prompt&#8217;lar olu\u015fturmas\u0131n\u0131 basitle\u015ftirmektir. Bunu ba\u015farmak i\u00e7in, uygulaman\u0131n belirli bir mimariye ve temel bile\u015fenlere sahip olmas\u0131 gerekir:<\/p>\n<h3>Kullan\u0131c\u0131 Aray\u00fcz\u00fc (UI) Tasar\u0131m\u0131:<\/h3>\n<p>*   <strong>Yan Panel (Sidebar):<\/strong> Genellikle uygulaman\u0131n ana kontrol paneli olarak kullan\u0131l\u0131r. Burada kategori baz\u0131nda prompt parametrelerini (\u00f6rne\u011fin, &#8220;Stil&#8221;, &#8220;I\u015f\u0131kland\u0131rma&#8221;, &#8221; &#8220;Kamera A\u00e7\u0131lar\u0131&#8221;) gruplayabiliriz.<br \/>\n*   <strong>Ana \u0130\u00e7erik Alan\u0131:<\/strong> Olu\u015fturulan prompt&#8217;un \u00f6nizlemesi, ek bilgiler veya yard\u0131mc\u0131 g\u00f6rseller burada g\u00f6sterilebilir.<br \/>\n*   <strong>Etkile\u015fimli Form Elemanlar\u0131:<\/strong> Kullan\u0131c\u0131dan girdi almak i\u00e7in <code>text_input<\/code>, <code>selectbox<\/code>, <code>multiselect<\/code>, <code>slider<\/code>, <code>checkbox<\/code> gibi Streamlit bile\u015fenleri kullan\u0131lacakt\u0131r.<\/p>\n<h3>Prompt&#8217;un Ana Unsurlar\u0131:<\/h3>\n<p>Bir prompt, genellikle a\u015fa\u011f\u0131daki gibi kategorilere ayr\u0131labilir:<br \/>\n*   <strong>Ana Konu\/Nesne:<\/strong> G\u00f6rselin merkezinde ne olaca\u011f\u0131 (\u00f6rn. &#8220;bir uzay gemisi&#8221;, &#8220;bir kedi&#8221;).<br \/>\n*   <strong>Stil\/Sanat Ak\u0131m\u0131:<\/strong> G\u00f6rselin sanatsal tarz\u0131 (\u00f6rn. &#8220;fotoger\u00e7ek\u00e7i&#8221;, &#8220;piksel sanat\u0131&#8221;, &#8220;empresyonist ya\u011fl\u0131 boya&#8221;).<br \/>\n*   <strong>Sanat\u00e7\u0131 Referans\u0131:<\/strong> Belirli bir sanat\u00e7\u0131n\u0131n tarz\u0131nda (\u00f6rn. &#8220;Van Gogh tarz\u0131nda&#8221;, &#8220;Studio Ghibli esteti\u011fi&#8221;).<br \/>\n*   <strong>I\u015f\u0131kland\u0131rma:<\/strong> G\u00f6rseldeki \u0131\u015f\u0131\u011f\u0131n t\u00fcr\u00fc ve y\u00f6n\u00fc (\u00f6rn. &#8220;alt\u0131n saat \u0131\u015f\u0131\u011f\u0131&#8221;, &#8220;neon \u0131\u015f\u0131klar&#8221;, &#8220;kontra \u0131\u015f\u0131k&#8221;).<br \/>\n*   <strong>Kamera A\u00e7\u0131lar\u0131\/Kompozisyon:<\/strong> \u00c7ekimin nas\u0131l yap\u0131laca\u011f\u0131 (\u00f6rn. &#8220;geni\u015f a\u00e7\u0131&#8221;, &#8220;yak\u0131n \u00e7ekim&#8221;, &#8220;ku\u015f bak\u0131\u015f\u0131&#8221;).<br \/>\n*   <strong>Ortam\/Arka Plan:<\/strong> G\u00f6rselin ge\u00e7ti\u011fi yer (\u00f6rn. &#8220;f\u00fct\u00fcristik \u015fehir&#8221;, &#8220;ormanl\u0131k alan&#8221;, &#8220;uzay bo\u015flu\u011fu&#8221;).<br \/>\n*   <strong>Detaylar\/Nitelikler:<\/strong> Konuyu veya ortam\u0131 detayland\u0131ran ek s\u0131fatlar ve \u00f6zellikler (\u00f6rn. &#8220;pasl\u0131&#8221;, &#8220;parlak&#8221;, &#8220;antik&#8221;).<br \/>\n*   <strong>\u00c7\u00f6z\u00fcn\u00fcrl\u00fck\/Kalite:<\/strong> G\u00f6rselin teknik \u00f6zellikleri (\u00f6rn. &#8220;4K&#8221;, &#8220;8K&#8221;, &#8220;ultra detayl\u0131&#8221;).<br \/>\n<em>   <strong>Negatif Prompt&#8217;lar:<\/strong> G\u00f6rselde <\/em>olmamas\u0131* gereken \u015feyler (\u00f6rn. &#8220;bulan\u0131k&#8221;, &#8220;\u00e7arp\u0131k&#8221;, &#8220;filigran&#8221;).<\/p>\n<h3>Veri Yap\u0131lar\u0131 ve Prompt Birle\u015ftirme Mant\u0131\u011f\u0131:<\/h3>\n<p>Uygulaman\u0131n \u00e7ekirde\u011fi, kullan\u0131c\u0131n\u0131n se\u00e7ti\u011fi veya girdi\u011fi t\u00fcm bu par\u00e7alar\u0131 bir araya getirerek anlaml\u0131 ve etkili bir prompt dizesi olu\u015fturmakt\u0131r. Bu s\u00fcre\u00e7 genellikle \u015fu ad\u0131mlar\u0131 i\u00e7erir:<br \/>\n1.  <strong>Parametrelerin Tan\u0131mlanmas\u0131:<\/strong> Her bir prompt kategorisi i\u00e7in olas\u0131 se\u00e7enekleri veya varsay\u0131lan de\u011ferleri bir Python s\u00f6zl\u00fc\u011f\u00fc veya JSON dosyas\u0131 i\u00e7inde tutmak. Bu, uygulaman\u0131n \u00f6l\u00e7eklenebilirli\u011fini ve kolayca g\u00fcncellenebilirli\u011fini sa\u011flar.<br \/>\n2.  <strong>Kullan\u0131c\u0131 Giri\u015flerinin Al\u0131nmas\u0131:<\/strong> Streamlit bile\u015fenleri arac\u0131l\u0131\u011f\u0131yla kullan\u0131c\u0131dan se\u00e7imleri ve metin girdilerini toplamak.<br \/>\n3.  <strong>Prompt Dizesinin Olu\u015fturulmas\u0131:<\/strong> Toplanan par\u00e7alar\u0131 belirli bir s\u0131raya g\u00f6re birle\u015ftirerek nihai prompt dizesini olu\u015fturmak. Bu s\u00fcre\u00e7te, bo\u015f veya se\u00e7ilmemi\u015f alanlar\u0131 atlamak ve uygun noktalama i\u015faretlerini (virg\u00fcller, parantezler) kullanmak \u00f6nemlidir.<\/p>\n<h2>Uygulama Geli\u015ftirme Ad\u0131mlar\u0131: Kodlama S\u00fcreci<\/h2>\n<p>\u015eimdi, bu bile\u015fenleri kullanarak ad\u0131m ad\u0131m bir Streamlit uygulamas\u0131n\u0131 nas\u0131l geli\u015ftirece\u011fimizi inceleyelim.<\/p>\n<h3>Proje Kurulumu ve Gerekli K\u00fct\u00fcphaneler<\/h3>\n<p>\u00d6ncelikle bir Python ortam\u0131 olu\u015fturup Streamlit&#8217;i kurmam\u0131z gerekiyor:<\/p>\n<pre><code class=\"language-bash\">python -m venv prompt_builder_env\nsource prompt_builder_env\/bin\/activate  # Linux\/macOS\nprompt_builder_env\\Scripts\\activate    # Windows\npip install streamlit<\/code><\/pre>\n<p>Daha sonra <code>app.py<\/code> ad\u0131nda bir dosya olu\u015fturarak kodlamaya ba\u015flayabiliriz.<\/p>\n<h3>Ana Sayfa Yap\u0131s\u0131 ve Temel UI Elemanlar\u0131<\/h3>\n<p>Uygulamam\u0131z\u0131n temel yap\u0131s\u0131n\u0131 ve ba\u015fl\u0131\u011f\u0131n\u0131 ayarlayarak ba\u015flayabiliriz:<\/p>\n<pre><code class=\"language-python\">import streamlit as st\n\nst.set_page_config(\n    page_title=\"Ak\u0131ll\u0131 AI Prompt Olu\u015fturucu\",\n    page_icon=\"\u2728\",\n    layout=\"wide\"\n)\n\nst.title(\"\u2728 AI G\u00f6r\u00fcnt\u00fc Prompt Olu\u015fturucu\")\nst.markdown(\"Hayalinizdeki g\u00f6r\u00fcnt\u00fcy\u00fc olu\u015fturmak i\u00e7in prompt'unuzu kolayca in\u015fa edin.\")\n\n<h2>Prompt par\u00e7alar\u0131n\u0131 tutacak s\u00f6zl\u00fck<\/h2>\nprompt_params = {}<\/code><\/pre>\n<p><code>st.set_page_config<\/code> ile sayfa ba\u015fl\u0131\u011f\u0131n\u0131, ikonunu ve layout&#8217;unu ayarl\u0131yoruz. <code>layout=\"wide\"<\/code> ile uygulaman\u0131n geni\u015f ekran\u0131 kullanmas\u0131n\u0131 sa\u011fl\u0131yoruz.<\/p>\n<h3>Kullan\u0131c\u0131 Giri\u015flerini Y\u00f6netme<\/h3>\n<p>Yan panel (<code>st.sidebar<\/code>) ve ana i\u00e7erik alan\u0131n\u0131 kullanarak kullan\u0131c\u0131dan girdileri alaca\u011f\u0131z.<\/p>\n<h4>Ana Konu ve Temel Detaylar:<\/h4>\n<p>Ana konuyu ve temel detaylar\u0131 ana alana yerle\u015ftirebiliriz:<\/p>\n<pre><code class=\"language-python\">st.header(\"1. Ana Konu ve Temel Detaylar\")\nkonu = st.text_input(\"G\u00f6rselin ana konusu nedir?\", \"bir kedi\")\nprompt_params[\"konu\"] = konu\n\nek_detaylar = st.text_area(\"Konuyu detayland\u0131ran ek a\u00e7\u0131klamalar (renk, eylem, duygu vb.)\",\n                           \"oyuncu, t\u00fcyl\u00fc, sevimli, g\u00fcne\u015fli bir pencerenin \u00f6n\u00fcnde uyuyor\")\nif ek_detaylar:\n    prompt_params[\"ek_detaylar\"] = ek_detaylar<\/code><\/pre>\n<h4>Stil, I\u015f\u0131kland\u0131rma, Kamera ve Sanat\u00e7\u0131 Referanslar\u0131 (Yan Panelde):<\/h4>\n<p>Bu t\u00fcr se\u00e7im tabanl\u0131 parametreler i\u00e7in <code>st.sidebar<\/code> kullanmak daha d\u00fczenli bir g\u00f6r\u00fcn\u00fcm sa\u011flar.<\/p>\n<pre><code class=\"language-python\">st.sidebar.header(\"2. G\u00f6rsel \u00d6zellikleri\")\n\n<h2>Stil Se\u00e7imi<\/h2>\nst.sidebar.subheader(\"Stil\")\nstiller = [\"Fotoger\u00e7ek\u00e7i\", \"Dijital Sanat\", \"Suluboya\", \"Ya\u011fl\u0131 Boya\", \"Piksel Sanat\u0131\", \"Anime\", \"\u00c7izgi Roman\", \"Vekt\u00f6r Sanat\u0131\", \"3D Render\", \"Siberpunk\", \"Steampunk\", \"Gotik\"]\nsecilen_stil = st.sidebar.multiselect(\"Bir veya birden fazla stil se\u00e7in:\", stiller, default=[\"Fotoger\u00e7ek\u00e7i\"])\nif secilen_stil:\n    prompt_params[\"stil\"] = \", \".join(secilen_stil)\n\n<h2>I\u015f\u0131kland\u0131rma Se\u00e7imi<\/h2>\nst.sidebar.subheader(\"I\u015f\u0131kland\u0131rma\")\nisiklandirmalar = [\"Do\u011fal I\u015f\u0131k\", \"St\u00fcdyo I\u015f\u0131\u011f\u0131\", \"Alt\u0131n Saat\", \"Mavi Saat\", \"Neon I\u015f\u0131klar\", \"Kontra I\u015f\u0131k\", \"Yumu\u015fak I\u015f\u0131k\", \"Sert I\u015f\u0131k\", \"Vol\u00fcmetrik I\u015f\u0131k\"]\nsecilen_isiklandirma = st.sidebar.selectbox(\"I\u015f\u0131kland\u0131rma t\u00fcr\u00fc:\", [\"Yok\"] + isiklandirmalar)\nif secilen_isiklandirma != \"Yok\":\n    prompt_params[\"isiklandirma\"] = secilen_isiklandirma\n\n<h2>Kamera A\u00e7\u0131lar\u0131<\/h2>\nst.sidebar.subheader(\"Kamera A\u00e7\u0131s\u0131 ve Kompozisyon\")\nkamera_acilari = [\"Geni\u015f A\u00e7\u0131\", \"Yak\u0131n \u00c7ekim\", \"Makro\", \"Ku\u015f Bak\u0131\u015f\u0131\", \"Kurba\u011fa Bak\u0131\u015f\u0131\", \"Omuz \u00dcst\u00fc \u00c7ekim\", \"Hollanda A\u00e7\u0131s\u0131\"]\nsecilen_kamera_acisi = st.sidebar.selectbox(\"Kamera a\u00e7\u0131s\u0131:\", [\"Yok\"] + kamera_acilari)\nif secilen_kamera_acisi != \"Yok\":\n    prompt_params[\"kamera_acisi\"] = secilen_kamera_acisi\n\n<h2>Sanat\u00e7\u0131 Referans\u0131<\/h2>\nst.sidebar.subheader(\"Sanat\u00e7\u0131\/Referans\")\nsanatci_referanslari = [\"Van Gogh\", \"Monet\", \"Picasso\", \"Da Vinci\", \"Frida Kahlo\", \"Hayao Miyazaki\", \"H.R. Giger\", \"Banksy\"]\nsecilen_sanatci = st.sidebar.selectbox(\"Sanat\u00e7\u0131 referans\u0131 (iste\u011fe ba\u011fl\u0131):\", [\"Yok\"] + sanatci_referanslari)\nif secilen_sanatci != \"Yok\":\n    prompt_params[\"sanatci\"] = f\"tarz\u0131nda {secilen_sanatci}\"<\/code><\/pre>\n<h4>Geli\u015fmi\u015f Ayarlar ve Negatif Prompt&#8217;lar:<\/h4>\n<p>Bu b\u00f6l\u00fcm\u00fc ana i\u00e7erik alan\u0131nda daha a\u015fa\u011f\u0131da veya ayr\u0131 bir geni\u015fletilebilir b\u00f6l\u00fcmde (<code>st.expander<\/code>) g\u00f6sterebiliriz.<\/p>\n<pre><code class=\"language-python\">st.header(\"3. Geli\u015fmi\u015f Ayarlar\")\n\nwith st.expander(\"\u00c7\u00f6z\u00fcn\u00fcrl\u00fck ve Kalite\"):\n    cozunurluk = st.selectbox(\"G\u00f6r\u00fcnt\u00fc \u00e7\u00f6z\u00fcn\u00fcrl\u00fc\u011f\u00fc:\", [\"Varsay\u0131lan\", \"HD\", \"4K\", \"8K\", \"Ultra HD\"])\n    if cozunurluk != \"Varsay\u0131lan\":\n        prompt_params[\"cozunurluk\"] = cozunurluk\n\n    kalite_detay = st.multiselect(\"Kalite ve detay seviyesi:\", [\"Y\u00fcksek Detay\", \"Sinematik\", \"Ger\u00e7ek\u00e7i\", \"Sanatsal\", \"Foto\u011frafik\", \"Dramatik Ayd\u0131nlatma\"])\n    if kalite_detay:\n        prompt_params[\"kalite_detay\"] = \", \".join(kalite_detay)\n\nst.header(\"4. Negatif Prompt'lar (G\u00f6rselde \u0130stemedi\u011finiz \u015eeyler)\")\nnegatif_prompt_listesi = [\"bulan\u0131k\", \"\u00e7arp\u0131k\", \"k\u00f6t\u00fc \u00e7izilmi\u015f\", \"\u00e7\u00f6z\u00fcn\u00fcrl\u00fc\u011f\u00fc d\u00fc\u015f\u00fck\", \"filigran\", \"ekstra uzuvlar\", \"mutasyon\", \"\u00e7irkin\", \"anlams\u0131z\"]\nsecilen_negatif_promptlar = st.multiselect(\"G\u00f6rselde olmamas\u0131n\u0131 istedi\u011finiz \u015feyler:\", negatif_prompt_listesi)\nozel_negatif_prompt = st.text_input(\"Ek negatif prompt'lar (virg\u00fclle ay\u0131r\u0131n):\", \"\")\nif ozel_negatif_prompt:\n    secilen_negatif_promptlar.extend([p.strip() for p in ozel_negatif_prompt.split(',') if p.strip()])\n\nif secilen_negatif_promptlar:\n    prompt_params[\"negatif_prompt\"] = \", \".join(set(secilen_negatif_promptlar)) # set ile tekrar edenleri kald\u0131r<\/code><\/pre>\n<h3>Prompt Par\u00e7alar\u0131n\u0131 Birle\u015ftirme Mant\u0131\u011f\u0131<\/h3>\n<p>Kullan\u0131c\u0131dan t\u00fcm girdileri ald\u0131ktan sonra, bunlar\u0131 birle\u015ftirerek nihai prompt dizesini olu\u015fturmal\u0131y\u0131z. Bu i\u015flemi bir fonksiyon i\u00e7inde yapmak kodun okunabilirli\u011fini art\u0131r\u0131r.<\/p>\n<pre><code class=\"language-python\">def build_prompt(params):\n    parts = []\n\n    # Ana Konu ve Detaylar\n    if \"konu\" in params:\n        main_subject = params[\"konu\"]\n        if \"ek_detaylar\" in params:\n            main_subject += f\", {params['ek_detaylar']}\"\n        parts.append(main_subject)\n\n    # Stil, Sanat\u00e7\u0131, I\u015f\u0131kland\u0131rma, Kamera\n    if \"stil\" in params:\n        parts.append(params[\"stil\"])\n    if \"sanatci\" in params:\n        parts.append(params[\"sanatci\"])\n    if \"isiklandirma\" in params:\n        parts.append(f\"{params['isiklandirma']} \u0131\u015f\u0131kland\u0131rma\")\n    if \"kamera_acisi\" in params:\n        parts.append(params[\"kamera_acisi\"])\n\n    # Kalite ve \u00c7\u00f6z\u00fcn\u00fcrl\u00fck\n    if \"kalite_detay\" in params:\n        parts.append(params[\"kalite_detay\"])\n    if \"cozunurluk\" in params:\n        parts.append(params[\"cozunurluk\"])\n    \n    # Son olarak, birle\u015ftirme\n    final_prompt = \", \".join(filter(None, parts)) # Bo\u015f elemanlar\u0131 filtrele\n    \n    negative_prompt = \"\"\n    if \"negatif_prompt\" in params:\n        negative_prompt = params[\"negatif_prompt\"]\n\n    return final_prompt, negative_prompt\n\n<h2>Prompt'u olu\u015ftur<\/h2>\nfinal_prompt_text, final_negative_prompt_text = build_prompt(prompt_params)<\/code><\/pre>\n<h3>\u00d6nizleme ve Geri Bildirim<\/h3>\n<p>Olu\u015fturulan prompt&#8217;u kullan\u0131c\u0131ya g\u00f6stermeli ve kopyalama imkan\u0131 sunmal\u0131y\u0131z.<\/p>\n<pre><code class=\"language-python\">st.header(\"5. Olu\u015fturulan Prompt\")\n\nif final_prompt_text:\n    st.markdown(\"### Pozitif Prompt:\")\n    st.code(final_prompt_text, language=\"text\")\n\n    # Kopyalama d\u00fc\u011fmesi (Streamlit'in yerle\u015fik kopyalama \u00f6zelli\u011fi yok, JS kullanabiliriz veya kullan\u0131c\u0131 manuel kopyalar)\n    st.button(\"Prompt'u Kopyala (Manuel)\") # Kullan\u0131c\u0131ya manuel kopyalamas\u0131n\u0131 hat\u0131rlat\u0131r\n    # Otomatik kopyalama i\u00e7in st.experimental_set_query_params veya \u00f6zel JS kullanmak gerekir,\n    # bu makalede basit tutmak ad\u0131na manuel kopyalamay\u0131 \u00f6neriyoruz.\nelse:\n    st.info(\"L\u00fctfen yukar\u0131dan prompt'unuzu olu\u015fturmak i\u00e7in se\u00e7imler yap\u0131n.\")\n\nif final_negative_prompt_text:\n    st.markdown(\"### Negatif Prompt:\")\n    st.code(final_negative_prompt_text, language=\"text\")<\/code><\/pre>\n<h3>Geli\u015fmi\u015f \u00d6zellikler: AI Destekli Prompt \u0130yile\u015ftirme<\/h3>\n<p>Uygulamam\u0131z\u0131 &#8220;ak\u0131ll\u0131&#8221; yapan k\u0131s\u0131m buras\u0131d\u0131r. Kullan\u0131c\u0131n\u0131n girdi\u011fi temel prompt&#8217;u al\u0131p, bir dil modeline (\u00f6rne\u011fin, OpenAI&#8217;nin GPT serisi veya Hugging Face&#8217;deki a\u00e7\u0131k kaynakl\u0131 bir model) g\u00f6ndererek daha zengin, detayl\u0131 ve sanatsal bir versiyonunu olu\u015fturmas\u0131n\u0131 isteyebiliriz.<\/p>\n<p>Bu \u00f6zellik i\u00e7in bir API anahtar\u0131na ihtiyac\u0131m\u0131z olacak ve bunu Streamlit Secrets ile g\u00fcvenli bir \u015fekilde y\u00f6netmeliyiz.<\/p>\n<pre><code class=\"language-python\"># pip install openai\nimport openai # veya transformers k\u00fct\u00fcphanesi\n\nst.header(\"6. AI Destekli Prompt \u0130yile\u015ftirme\")\nst.markdown(\"Yapay zeka, prompt'unuzu daha detayl\u0131 ve sanatsal hale getirebilir.\")\n\nai_guncelle = st.checkbox(\"AI kullanarak prompt'u zenginle\u015ftir?\")\n\nif ai_guncelle:\n    # OpenAI API anahtar\u0131n\u0131 Streamlit Secrets'tan al\n    openai_api_key = st.secrets[\"openai\"][\"api_key\"]\n    \n    if not openai_api_key:\n        st.warning(\"L\u00fctfen OpenAI API anahtar\u0131n\u0131z\u0131 Streamlit Secrets'a ekleyin.\")\n    else:\n        client = openai.OpenAI(api_key=openai_api_key)\n\n        if st.button(\"AI Prompt'u Olu\u015ftur\"):\n            if final_prompt_text:\n                with st.spinner(\"AI prompt'unuzu zenginle\u015ftiriyor...\"):\n                    try:\n                        # Dil modeline g\u00f6nderilecek talimat\n                        ai_prompt_instruction = f\"A\u015fa\u011f\u0131daki prompt'u, yapay zeka g\u00f6r\u00fcnt\u00fc \u00fcreticileri i\u00e7in daha detayl\u0131, sanatsal ve etkileyici hale getir. Mevcut prompt'u temel alarak, \u0131\u015f\u0131kland\u0131rma, kompozisyon, dokular, renk paleti ve genel atmosfer hakk\u0131nda yarat\u0131c\u0131 detaylar ekle. Sadece zenginle\u015ftirilmi\u015f prompt'u d\u00f6nd\u00fcr, ek a\u00e7\u0131klama yapma:\\n\\n'{final_prompt_text}'\"\n                        \n                        response = client.chat.completions.create(\n                            model=\"gpt-3.5-turbo\", # veya \"gpt-4\"\n                            messages=[\n                                {\"role\": \"system\", \"content\": \"Sen bir yapay zeka g\u00f6r\u00fcnt\u00fc prompt m\u00fchendisisin.\"},\n                                {\"role\": \"user\", \"content\": ai_prompt_instruction}\n                            ],\n                            max_tokens=250\n                        )\n                        ai_enriched_prompt = response.choices[0].message.content.strip()\n                        \n                        st.markdown(\"### AI Taraf\u0131ndan Zenginle\u015ftirilmi\u015f Prompt:\")\n                        st.code(ai_enriched_prompt, language=\"text\")\n                        st.button(\"AI Prompt'u Kopyala (Manuel)\") # Yine manuel kopyalama\n                        \n                    except Exception as e:\n                        st.error(f\"AI prompt olu\u015fturulurken bir hata olu\u015ftu: {e}\")\n                        st.info(\"API anahtar\u0131n\u0131z\u0131n do\u011fru oldu\u011fundan ve yeterli krediniz oldu\u011fundan emin olun.\")\n            else:\n                st.warning(\"L\u00fctfen \u00f6nce temel prompt'unuzu olu\u015fturun.\")<\/code><\/pre>\n<p><strong><code>streamlit\/secrets.toml<\/code> dosyas\u0131:<\/strong><\/p>\n<pre><code class=\"language-toml\">[openai]\napi_key = \"sk-YOUR_OPENAI_API_KEY\"<\/code><\/pre>\n<p>Bu b\u00f6l\u00fcmde, kullan\u0131c\u0131n\u0131n se\u00e7ti\u011fi anahtar kelimeleri ve detaylar\u0131 al\u0131p, bunlar\u0131 bir dil modeline (GPT-3.5 Turbo) g\u00f6ndererek daha uzun, a\u00e7\u0131klay\u0131c\u0131 ve sanatsal bir prompt dizesi olu\u015fturmas\u0131n\u0131 sa\u011fl\u0131yoruz. Bu, uygulaman\u0131n &#8220;ak\u0131ll\u0131&#8221; y\u00f6n\u00fcn\u00fc olu\u015fturur ve kullan\u0131c\u0131lara prompt m\u00fchendisli\u011fi konusunda ek bir destek sunar.<\/p>\n<h2>Uygulamay\u0131 \u00c7al\u0131\u015ft\u0131rma ve Da\u011f\u0131tma<\/h2>\n<p>Uygulamay\u0131 yerel olarak \u00e7al\u0131\u015ft\u0131rmak i\u00e7in terminalde <code>app.py<\/code> dosyas\u0131n\u0131n bulundu\u011fu dizine gidip \u015fu komutu \u00e7al\u0131\u015ft\u0131rman\u0131z yeterlidir:<\/p>\n<pre><code class=\"language-bash\">streamlit run app.py<\/code><\/pre>\n<p>Bu komut, uygulaman\u0131z\u0131 varsay\u0131lan web taray\u0131c\u0131n\u0131zda a\u00e7acakt\u0131r.<\/p>\n<h3>Da\u011f\u0131t\u0131m Se\u00e7enekleri:<\/h3>\n<p>*   <strong>Streamlit Cloud:<\/strong> Streamlit uygulamalar\u0131n\u0131 GitHub depolar\u0131ndan do\u011frudan da\u011f\u0131tmak i\u00e7in en basit y\u00f6ntemdir. \u00dccretsiz bir katman\u0131 bulunur ve h\u0131zl\u0131 prototipleme i\u00e7in idealdir. <code>secrets.toml<\/code> dosyas\u0131n\u0131 Streamlit Cloud&#8217;un aray\u00fcz\u00fcnden g\u00fcvenli bir \u015fekilde y\u00f6netebilirsiniz.<br \/>\n*   <strong>Heroku\/Render:<\/strong> Bu platformlar, web uygulamalar\u0131n\u0131 da\u011f\u0131tmak i\u00e7in genel ama\u00e7l\u0131 PaaS (Platform as a Service) \u00e7\u00f6z\u00fcmleridir. <code>Procfile<\/code> ve <code>requirements.txt<\/code> dosyalar\u0131 ile yap\u0131land\u0131r\u0131l\u0131rlar.<br \/>\n*   <strong>Docker:<\/strong> Uygulaman\u0131z\u0131 bir Docker konteynerine paketleyerek herhangi bir ortamda tutarl\u0131 bir \u015fekilde \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayabilirsiniz. Bu, daha karma\u015f\u0131k ba\u011f\u0131ml\u0131l\u0131klar\u0131 olan veya daha fazla kontrol gerektiren uygulamalar i\u00e7in iyi bir se\u00e7enektir.<br \/>\n*   <strong>Kendi Sunucunuz:<\/strong> Bir sanal \u00f6zel sunucu (VPS) \u00fczerinde Nginx gibi bir ters proxy kullanarak Streamlit uygulaman\u0131z\u0131 da\u011f\u0131tabilirsiniz.<\/p>\n<p>Herhangi bir da\u011f\u0131t\u0131m senaryosunda, <code>requirements.txt<\/code> dosyan\u0131zda t\u00fcm ba\u011f\u0131ml\u0131l\u0131klar\u0131n (streamlit, openai vb.) listelendi\u011finden emin olun.<\/p>\n<pre><code class=\"language-bash\">pip freeze > requirements.txt<\/code><\/pre>\n<h2>Sonu\u00e7 ve Gelecek Potansiyeli<\/h2>\n<p>Bu makalede, Streamlit ve Python kullanarak AI g\u00f6r\u00fcnt\u00fc \u00fcretimi i\u00e7in ak\u0131ll\u0131 bir prompt olu\u015fturucu uygulamas\u0131n\u0131n nas\u0131l geli\u015ftirilece\u011fini detayl\u0131 bir \u015fekilde ele ald\u0131k. Uygulama, kullan\u0131c\u0131lar\u0131n karma\u015f\u0131k prompt&#8217;lar\u0131 kolayca olu\u015fturmas\u0131na, farkl\u0131 parametreleri ke\u015ffetmesine ve hatta yapay zeka destekli iyile\u015ftirmelerle prompt&#8217;lar\u0131n\u0131 zenginle\u015ftirmesine olanak tan\u0131r. Streamlit&#8217;in sa\u011flad\u0131\u011f\u0131 h\u0131zl\u0131 geli\u015ftirme ve kullan\u0131c\u0131 dostu aray\u00fcz yetenekleri sayesinde, veri bilimciler ve geli\u015ftiriciler, bu t\u00fcr ara\u00e7lar\u0131 minimum \u00e7abayla hayata ge\u00e7irebilirler.<\/p>\n<h3>Uygulaman\u0131n Faydalar\u0131:<\/h3>\n<p>*   <strong>Eri\u015filebilirlik:<\/strong> Prompt m\u00fchendisli\u011fi konusunda deneyimi olmayan kullan\u0131c\u0131lar\u0131n bile kaliteli prompt&#8217;lar olu\u015fturmas\u0131n\u0131 sa\u011flar.<br \/>\n*   <strong>Verimlilik:<\/strong> Prompt yazma s\u00fcrecini h\u0131zland\u0131r\u0131r ve tekrarlayan g\u00f6revleri ortadan kald\u0131r\u0131r.<br \/>\n*   <strong>Ke\u015fif:<\/strong> Kullan\u0131c\u0131lar\u0131n farkl\u0131 stil, \u0131\u015f\u0131kland\u0131rma ve kompozisyon se\u00e7eneklerini kolayca denemesine olanak tan\u0131r.<br \/>\n*   <strong>\u00d6\u011frenme:<\/strong> Prompt&#8217;lar\u0131n nas\u0131l yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131n\u0131 ve hangi unsurlar\u0131n \u00f6nemli oldu\u011funu g\u00f6stererek kullan\u0131c\u0131lara e\u011fitimsel bir de\u011fer sunar.<\/p>\n<h3>Gelecek Potansiyeli ve Eklenebilecek Yeni \u00d6zellikler:<\/h3>\n<p>Geli\u015ftirdi\u011fimiz bu temel uygulamay\u0131 daha da ileriye ta\u015f\u0131mak i\u00e7in bir\u00e7ok geli\u015ftirme yap\u0131labilir:<br \/>\n*   <strong>G\u00f6r\u00fcnt\u00fc \u00d6nizleme:<\/strong> Olu\u015fturulan prompt&#8217;u kullanarak do\u011frudan uygulamadan bir AI g\u00f6r\u00fcnt\u00fc modeline (\u00f6rn. Stable Diffusion API) istek g\u00f6ndererek \u00fcretilen g\u00f6r\u00fcnt\u00fcy\u00fc \u00f6nizleme.<br \/>\n*   <strong>Prompt Ge\u00e7mi\u015fi ve Kaydetme:<\/strong> Kullan\u0131c\u0131lar\u0131n olu\u015fturduklar\u0131 prompt&#8217;lar\u0131 kaydetmelerine, d\u00fczenlemelerine ve favorilerine eklemelerine olanak tan\u0131yan bir veritaban\u0131 entegrasyonu.<br \/>\n*   <strong>Kullan\u0131c\u0131 Hesaplar\u0131:<\/strong> Prompt&#8217;lar\u0131 ki\u015fiselle\u015ftirmek ve kaydetmek i\u00e7in kullan\u0131c\u0131 oturum a\u00e7ma ve hesap y\u00f6netimi.<br \/>\n*   <strong>Daha Fazla AI Entegrasyonu:<\/strong> Prompt&#8217;u sadece zenginle\u015ftirmekle kalmay\u0131p, belirli anahtar kelimelere g\u00f6re \u00f6neriler sunan veya prompt&#8217;un g\u00f6rsel etkisini tahmin eden daha geli\u015fmi\u015f dil modelleri kullanma.<br \/>\n*   <strong>Topluluk \u00d6zellikleri:<\/strong> Kullan\u0131c\u0131lar\u0131n en iyi prompt&#8217;lar\u0131n\u0131 payla\u015fabilece\u011fi ve ba\u015fkalar\u0131n\u0131n prompt&#8217;lar\u0131n\u0131 ke\u015ffedebilece\u011fi bir b\u00f6l\u00fcm.<br \/>\n*   <strong>\u00c7oklu Dil Deste\u011fi:<\/strong> Uygulamay\u0131 farkl\u0131 dillerde kullan\u0131labilir hale getirme.<br \/>\n*   <strong>G\u00f6rsel Etiketleme\/Ters Prompt M\u00fchendisli\u011fi:<\/strong> Bir g\u00f6rsel y\u00fckleyerek o g\u00f6rseli en iyi tan\u0131mlayan prompt&#8217;u otomatik olarak olu\u015fturan bir \u00f6zellik (CLIP modelleri ile m\u00fcmk\u00fcn).<\/p>\n<p>Yapay zeka teknolojileri geli\u015ftik\u00e7e, bu t\u00fcr yard\u0131mc\u0131 ara\u00e7lar\u0131n \u00f6nemi de artacakt\u0131r. Streamlit ve Python gibi g\u00fc\u00e7l\u00fc ara\u00e7larla, bu yenilik\u00e7i uygulamalar\u0131 geli\u015ftirmek art\u0131k her zamankinden daha kolay ve eri\u015filebilir. Bu uygulama, hem bireysel yarat\u0131c\u0131lar hem de profesyonel tasar\u0131mc\u0131lar i\u00e7in g\u00fc\u00e7l\u00fc bir ara\u00e7 haline gelme potansiyeline sahiptir.<\/p>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"AI G\u00f6r\u00fcnt\u00fc \u00dcretimi \u0130\u00e7in Streamlit ve Python ile Ak\u0131ll\u0131 Bir Prompt Olu\u015fturucu Uygulamas\u0131 Geli\u015ftirmek\nGiri\u015f: Yapay Zeka G\u00f6r\u00fcnt\u00fc \u00dcreti","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1403],"tags":[],"class_list":{"0":"post-38299","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-python","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>AI G\u00f6r\u00fcnt\u00fc \u00dcretimi \u0130\u00e7in Streamlit ve Python ile Ak\u0131ll\u0131 Bir Prompt Olu\u015fturucu Uygulamas\u0131 Geli\u015ftirmek - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/ai-goruntu-uretimi-icin-streamlit-ve-python-ile-akilli-bir-prompt-olusturucu-uygulamasi-gelistirmek\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"AI G\u00f6r\u00fcnt\u00fc \u00dcretimi \u0130\u00e7in Streamlit ve Python ile Ak\u0131ll\u0131 Bir Prompt Olu\u015fturucu Uygulamas\u0131 Geli\u015ftirmek\" \/>\n<meta property=\"og:description\" content=\"AI G\u00f6r\u00fcnt\u00fc \u00dcretimi \u0130\u00e7in Streamlit ve Python ile Ak\u0131ll\u0131 Bir Prompt Olu\u015fturucu Uygulamas\u0131 Geli\u015ftirmek  Giri\u015f: Yapay Zeka G\u00f6r\u00fcnt\u00fc \u00dcreti\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/ai-goruntu-uretimi-icin-streamlit-ve-python-ile-akilli-bir-prompt-olusturucu-uygulamasi-gelistirmek\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-28T06:40:44+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ai-goruntu-uretimi-icin-streamlit-ve-python-ile-akilli-bir-prompt-olusturucu-uygulamasi-gelistirmek\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ai-goruntu-uretimi-icin-streamlit-ve-python-ile-akilli-bir-prompt-olusturucu-uygulamasi-gelistirmek\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"AI G\u00f6r\u00fcnt\u00fc \u00dcretimi \u0130\u00e7in Streamlit ve Python ile Ak\u0131ll\u0131 Bir Prompt Olu\u015fturucu Uygulamas\u0131 Geli\u015ftirmek\",\"datePublished\":\"2026-01-28T06:40:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ai-goruntu-uretimi-icin-streamlit-ve-python-ile-akilli-bir-prompt-olusturucu-uygulamasi-gelistirmek\/\"},\"wordCount\":2156,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Python\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ai-goruntu-uretimi-icin-streamlit-ve-python-ile-akilli-bir-prompt-olusturucu-uygulamasi-gelistirmek\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ai-goruntu-uretimi-icin-streamlit-ve-python-ile-akilli-bir-prompt-olusturucu-uygulamasi-gelistirmek\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/ai-goruntu-uretimi-icin-streamlit-ve-python-ile-akilli-bir-prompt-olusturucu-uygulamasi-gelistirmek\/\",\"name\":\"AI G\u00f6r\u00fcnt\u00fc \u00dcretimi \u0130\u00e7in Streamlit ve Python ile Ak\u0131ll\u0131 Bir Prompt Olu\u015fturucu Uygulamas\u0131 Geli\u015ftirmek - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-28T06:40:44+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ai-goruntu-uretimi-icin-streamlit-ve-python-ile-akilli-bir-prompt-olusturucu-uygulamasi-gelistirmek\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ai-goruntu-uretimi-icin-streamlit-ve-python-ile-akilli-bir-prompt-olusturucu-uygulamasi-gelistirmek\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ai-goruntu-uretimi-icin-streamlit-ve-python-ile-akilli-bir-prompt-olusturucu-uygulamasi-gelistirmek\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"AI G\u00f6r\u00fcnt\u00fc \u00dcretimi \u0130\u00e7in Streamlit ve Python ile Ak\u0131ll\u0131 Bir Prompt Olu\u015fturucu Uygulamas\u0131 Geli\u015ftirmek\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"AI G\u00f6r\u00fcnt\u00fc \u00dcretimi \u0130\u00e7in Streamlit ve Python ile Ak\u0131ll\u0131 Bir Prompt Olu\u015fturucu Uygulamas\u0131 Geli\u015ftirmek - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/ai-goruntu-uretimi-icin-streamlit-ve-python-ile-akilli-bir-prompt-olusturucu-uygulamasi-gelistirmek\/","og_locale":"tr_TR","og_type":"article","og_title":"AI G\u00f6r\u00fcnt\u00fc \u00dcretimi \u0130\u00e7in Streamlit ve Python ile Ak\u0131ll\u0131 Bir Prompt Olu\u015fturucu Uygulamas\u0131 Geli\u015ftirmek","og_description":"AI G\u00f6r\u00fcnt\u00fc \u00dcretimi \u0130\u00e7in Streamlit ve Python ile Ak\u0131ll\u0131 Bir Prompt Olu\u015fturucu Uygulamas\u0131 Geli\u015ftirmek  Giri\u015f: Yapay Zeka G\u00f6r\u00fcnt\u00fc \u00dcreti","og_url":"https:\/\/fatihsoysal.com\/blog\/ai-goruntu-uretimi-icin-streamlit-ve-python-ile-akilli-bir-prompt-olusturucu-uygulamasi-gelistirmek\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-28T06:40:44+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"16 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/ai-goruntu-uretimi-icin-streamlit-ve-python-ile-akilli-bir-prompt-olusturucu-uygulamasi-gelistirmek\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/ai-goruntu-uretimi-icin-streamlit-ve-python-ile-akilli-bir-prompt-olusturucu-uygulamasi-gelistirmek\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"AI G\u00f6r\u00fcnt\u00fc \u00dcretimi \u0130\u00e7in Streamlit ve Python ile Ak\u0131ll\u0131 Bir Prompt Olu\u015fturucu Uygulamas\u0131 Geli\u015ftirmek","datePublished":"2026-01-28T06:40:44+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/ai-goruntu-uretimi-icin-streamlit-ve-python-ile-akilli-bir-prompt-olusturucu-uygulamasi-gelistirmek\/"},"wordCount":2156,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Python"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/ai-goruntu-uretimi-icin-streamlit-ve-python-ile-akilli-bir-prompt-olusturucu-uygulamasi-gelistirmek\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/ai-goruntu-uretimi-icin-streamlit-ve-python-ile-akilli-bir-prompt-olusturucu-uygulamasi-gelistirmek\/","url":"https:\/\/fatihsoysal.com\/blog\/ai-goruntu-uretimi-icin-streamlit-ve-python-ile-akilli-bir-prompt-olusturucu-uygulamasi-gelistirmek\/","name":"AI G\u00f6r\u00fcnt\u00fc \u00dcretimi \u0130\u00e7in Streamlit ve Python ile Ak\u0131ll\u0131 Bir Prompt Olu\u015fturucu Uygulamas\u0131 Geli\u015ftirmek - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-28T06:40:44+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/ai-goruntu-uretimi-icin-streamlit-ve-python-ile-akilli-bir-prompt-olusturucu-uygulamasi-gelistirmek\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/ai-goruntu-uretimi-icin-streamlit-ve-python-ile-akilli-bir-prompt-olusturucu-uygulamasi-gelistirmek\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/ai-goruntu-uretimi-icin-streamlit-ve-python-ile-akilli-bir-prompt-olusturucu-uygulamasi-gelistirmek\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"AI G\u00f6r\u00fcnt\u00fc \u00dcretimi \u0130\u00e7in Streamlit ve Python ile Ak\u0131ll\u0131 Bir Prompt Olu\u015fturucu Uygulamas\u0131 Geli\u015ftirmek"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38299","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=38299"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38299\/revisions"}],"predecessor-version":[{"id":38300,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/38299\/revisions\/38300"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=38299"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=38299"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=38299"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}