{"id":40530,"date":"2026-02-27T13:00:43","date_gmt":"2026-02-27T10:00:43","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/spring-ai-ve-azure-openai-modern-yapay-zeka-uygulamalari-icin-guclu-ikili\/"},"modified":"2026-02-27T13:00:43","modified_gmt":"2026-02-27T10:00:43","slug":"spring-ai-ve-azure-openai-modern-yapay-zeka-uygulamalari-icin-guclu-ikili","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/spring-ai-ve-azure-openai-modern-yapay-zeka-uygulamalari-icin-guclu-ikili\/","title":{"rendered":"Spring AI ve Azure OpenAI: Modern Yapay Zeka Uygulamalar\u0131 \u0130\u00e7in G\u00fc\u00e7l\u00fc \u0130kili"},"content":{"rendered":"<h2>Spring AI ve Azure OpenAI: Modern Yapay Zeka Uygulamalar\u0131 \u0130\u00e7in G\u00fc\u00e7l\u00fc \u0130kili<\/h2>\n<p>Yapay zeka teknolojileri, i\u015f d\u00fcnyas\u0131ndan g\u00fcnl\u00fck ya\u015fant\u0131m\u0131za kadar her alanda devrim yaratmaya devam ediyor. \u00d6zellikle b\u00fcy\u00fck dil modelleri (LLM&#8217;ler) ve \u00fcretken yapay zeka (Generative AI) alan\u0131ndaki geli\u015fmeler, yaz\u0131l\u0131m geli\u015ftiricilere daha \u00f6nce hayal bile edilemeyen yetenekler sunuyor. Bu heyecan verici d\u00f6nemde, Java ekosisteminin g\u00fc\u00e7l\u00fc oyuncusu Spring Framework, Spring AI projesiyle yapay zeka uygulamalar\u0131 geli\u015ftirmeyi kolayla\u015ft\u0131r\u0131rken, Microsoft Azure OpenAI hizmetleri de kurumsal d\u00fczeyde g\u00fcvenilirlik ve \u00f6l\u00e7eklenebilirlik sa\u011fl\u0131yor. Bu makale, Spring AI ve Azure OpenAI&#8217;\u0131 bir araya getirerek nas\u0131l g\u00fc\u00e7l\u00fc ve modern yapay zeka uygulamalar\u0131 geli\u015ftirebilece\u011finizi ad\u0131m ad\u0131m a\u00e7\u0131klayacakt\u0131r.<\/p>\n<h2>Giri\u015f: Yapay Zeka Uygulamalar\u0131n\u0131n Y\u00fckseli\u015fi ve Spring AI&#8217;\u0131n Rol\u00fc<\/h2>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn rekabet\u00e7i d\u00fcnyas\u0131nda, i\u015fletmelerin verimlili\u011fi art\u0131rmak, m\u00fc\u015fteri deneyimini geli\u015ftirmek ve inovasyonu h\u0131zland\u0131rmak i\u00e7in yapay zeka yeteneklerine y\u00f6nelmesi ka\u00e7\u0131n\u0131lmaz hale gelmi\u015ftir. Do\u011fal dil i\u015fleme (NLP), g\u00f6r\u00fcnt\u00fc tan\u0131ma, tahminleme gibi alanlarda yapay zeka \u00e7\u00f6z\u00fcmleri, karar alma s\u00fcre\u00e7lerini optimize ederken, yeni \u00fcr\u00fcn ve hizmetlerin \u00f6n\u00fcn\u00fc a\u00e7maktad\u0131r.<\/p>\n<h3>Yapay Zeka D\u00f6n\u00fc\u015f\u00fcm\u00fc ve Kurumsal \u0130htiya\u00e7lar<\/h3>\n<p>Kurumsal yapay zeka uygulamalar\u0131 geli\u015ftirirken kar\u015f\u0131la\u015f\u0131lan en b\u00fcy\u00fck zorluklardan biri, farkl\u0131 yapay zeka modellerini ve sa\u011flay\u0131c\u0131lar\u0131n\u0131 entegre etmek, y\u00f6netmek ve \u00f6l\u00e7eklendirmektir. Bu s\u00fcre\u00e7ler genellikle karma\u015f\u0131k API&#8217;lar, farkl\u0131 kimlik do\u011frulama mekanizmalar\u0131 ve model ya\u015fam d\u00f6ng\u00fcs\u00fc y\u00f6netimi gibi konular\u0131 i\u00e7erir. \u0130\u015fletmeler, bu karma\u015f\u0131kl\u0131\u011f\u0131 azaltacak, geli\u015ftirme s\u00fcrecini h\u0131zland\u0131racak ve mevcut altyap\u0131lar\u0131yla uyumlu \u00e7\u00f6z\u00fcmler aramaktad\u0131r.<\/p>\n<h3>Spring Ekosisteminin Yapay Zekaya Adaptasyonu<\/h3>\n<p>Java geli\u015ftiricileri i\u00e7in Spring Framework, y\u0131llard\u0131r kurumsal uygulama geli\u015ftirmede standart haline gelmi\u015ftir. Mod\u00fcler yap\u0131s\u0131, g\u00fc\u00e7l\u00fc ba\u011f\u0131ml\u0131l\u0131k enjeksiyonu (DI) ve geni\u015f ekosistemi sayesinde Spring, geli\u015ftiricilere \u00fcretken bir ortam sunar. Spring AI projesi, bu g\u00fc\u00e7l\u00fc ekosistemi yapay zeka d\u00fcnyas\u0131na ta\u015f\u0131yarak, farkl\u0131 LLM sa\u011flay\u0131c\u0131lar\u0131yla (OpenAI, Azure OpenAI, Google Gemini, Hugging Face vb.) tutarl\u0131 ve basit bir aray\u00fcz \u00fczerinden etkile\u015fim kurmay\u0131 hedefler. Bu sayede Java geli\u015ftiricileri, mevcut Spring bilgilerini kullanarak kolayca yapay zeka uygulamalar\u0131 geli\u015ftirebilirler.<\/p>\n<h3>Azure OpenAI&#8217;\u0131n Kurumsal Avantajlar\u0131<\/h3>\n<p>Microsoft Azure OpenAI hizmetleri, OpenAI&#8217;\u0131n g\u00fc\u00e7l\u00fc modellerini (GPT-3.5, GPT-4, DALL-E, Embeddings) Azure&#8217;\u0131n kurumsal d\u00fczeydeki g\u00fcvenlik, uyumluluk, \u00f6l\u00e7eklenebilirlik ve b\u00f6lgesel eri\u015filebilirlik avantajlar\u0131yla birle\u015ftirir. Bu, \u00f6zellikle hassas verilerle \u00e7al\u0131\u015fan veya kat\u0131 reg\u00fclasyonlara tabi i\u015fletmeler i\u00e7in kritik bir fark yarat\u0131r. Azure OpenAI, modelleri kendi sanal a\u011f\u0131n\u0131z i\u00e7inde bar\u0131nd\u0131rma, \u00f6zel eri\u015fim kontrolleri ve Azure&#8217;\u0131n kapsaml\u0131 izleme ara\u00e7lar\u0131ndan faydalanma imkan\u0131 sunar.<\/p>\n<h2>Spring AI Nedir? Temel Bile\u015fenleri ve Avantajlar\u0131<\/h2>\n<p>Spring AI, Java geli\u015ftiricilerinin yapay zeka modelleriyle etkile\u015fim kurmas\u0131n\u0131 kolayla\u015ft\u0131ran, Spring ekosisteminin yeni ve heyecan verici bir projesidir. Amac\u0131, farkl\u0131 yapay zeka sa\u011flay\u0131c\u0131lar\u0131 i\u00e7in tek tip bir API sunarak, geli\u015ftiricilerin model se\u00e7iminden ba\u011f\u0131ms\u0131z olarak uygulama geli\u015ftirmelerini sa\u011flamakt\u0131r.<\/p>\n<h3>Spring AI&#8217;\u0131n Mimarisi ve Temel Mod\u00fclleri<\/h3>\n<p>Spring AI, mod\u00fcler bir yap\u0131ya sahiptir. Temel olarak iki ana bile\u015fenden olu\u015fur:<\/p>\n<ul>\n<li><strong>Core API:<\/strong> LLM&#8217;ler, g\u00f6mme modelleri (embedding models) ve di\u011fer yapay zeka yetenekleri i\u00e7in ortak aray\u00fczler ve veri yap\u0131lar\u0131 sa\u011flar. Bu \u00e7ekirdek API, farkl\u0131 sa\u011flay\u0131c\u0131lar\u0131n spesifik detaylar\u0131n\u0131 soyutlar.<\/li>\n<li><strong>Sa\u011flay\u0131c\u0131 Entegrasyonlar\u0131:<\/strong> Her bir yapay zeka sa\u011flay\u0131c\u0131s\u0131 (OpenAI, Azure OpenAI, Google Gemini vb.) i\u00e7in ayr\u0131 bir mod\u00fcl bulunur. Bu mod\u00fcller, \u00e7ekirdek API&#8217;yi kullanarak ilgili sa\u011flay\u0131c\u0131n\u0131n API&#8217;si ile ileti\u015fim kurar ve Spring Boot&#8217;un otomatik yap\u0131land\u0131rma yeteneklerinden faydalan\u0131r.<\/li>\n<\/ul>\n<p>Bu mimari sayesinde, geli\u015ftiriciler kodlar\u0131nda minimum de\u011fi\u015fiklikle farkl\u0131 yapay zeka modelleri aras\u0131nda ge\u00e7i\u015f yapabilirler.<\/p>\n<h3>Desteklenen Modeller ve Sa\u011flay\u0131c\u0131lar<\/h3>\n<p>Spring AI, ba\u015flang\u0131\u00e7tan itibaren geni\u015f bir model ve sa\u011flay\u0131c\u0131 yelpazesini desteklemektedir. Ba\u015fl\u0131calar\u0131 \u015funlard\u0131r:<\/p>\n<ul>\n<li><strong>B\u00fcy\u00fck Dil Modelleri (LLM&#8217;ler):<\/strong> OpenAI (GPT-3.5, GPT-4), Azure OpenAI, Google Gemini, Hugging Face, Amazon Bedrock (Anthropic Claude, AI21 Labs Jurassic, Amazon Titan).<\/li>\n<li><strong>G\u00f6mme Modelleri (Embedding Models):<\/strong> OpenAI Embeddings, Azure OpenAI Embeddings, Google AI Embeddings.<\/li>\n<li><strong>Vekt\u00f6r Veritabanlar\u0131:<\/strong> Pinecone, Weaviate, Milvus, Chroma, Redis.<\/li>\n<\/ul>\n<p>Bu \u00e7e\u015fitlilik, geli\u015ftiricilere projelerinin ihtiya\u00e7lar\u0131na en uygun modeli ve altyap\u0131y\u0131 se\u00e7me \u00f6zg\u00fcrl\u00fc\u011f\u00fc sunar.<\/p>\n<h3>Geli\u015ftiriciler \u0130\u00e7in Sundu\u011fu Kolayl\u0131klar<\/h3>\n<p>Spring AI&#8217;\u0131n geli\u015ftiricilere sa\u011flad\u0131\u011f\u0131 ba\u015fl\u0131ca avantajlar \u015funlard\u0131r:<\/p>\n<ul>\n<li><strong>Tutarl\u0131 API:<\/strong> Farkl\u0131 LLM&#8217;ler i\u00e7in tek ve tutarl\u0131 bir programlama aray\u00fcz\u00fc.<\/li>\n<li><strong>Spring Boot Entegrasyonu:<\/strong> Otomatik yap\u0131land\u0131rma ve Spring Boot uygulamalar\u0131na kolay entegrasyon.<\/li>\n<li><strong>Geli\u015ftirme H\u0131z\u0131:<\/strong> Karma\u015f\u0131k API \u00e7a\u011fr\u0131lar\u0131 yerine y\u00fcksek seviyeli soyutlamalarla h\u0131zl\u0131 prototipleme ve geli\u015ftirme.<\/li>\n<li><strong>Mod\u00fclerlik:<\/strong> \u0130htiya\u00e7 duyulan bile\u015fenlerin kolayca eklenip \u00e7\u0131kar\u0131labilmesi.<\/li>\n<li><strong>Geni\u015f Ekosistem:<\/strong> Spring&#8217;in g\u00fc\u00e7l\u00fc test, g\u00fcvenlik ve veri eri\u015fim \u00f6zellikleriyle entegrasyon.<\/li>\n<\/ul>\n<h2>Azure OpenAI Hizmetleri: Kurumsal Yapay Zeka \u0130\u00e7in G\u00fc\u00e7l\u00fc Platform<\/h2>\n<p>Azure OpenAI Hizmetleri, OpenAI&#8217;\u0131n en yeni ve en g\u00fc\u00e7l\u00fc yapay zeka modellerini Microsoft Azure&#8217;\u0131n kurumsal d\u00fczeydeki altyap\u0131s\u0131 \u00fczerinden sunar. Bu, i\u015fletmelerin yapay zekan\u0131n g\u00fcc\u00fcnden faydalan\u0131rken ayn\u0131 zamanda veri g\u00fcvenli\u011fi, uyumluluk ve \u00f6l\u00e7eklenebilirlik gibi kritik kurumsal gereksinimleri kar\u015f\u0131lamas\u0131n\u0131 sa\u011flar.<\/p>\n<h3>Azure OpenAI&#8217;\u0131n Temel \u00d6zellikleri<\/h3>\n<p>Azure OpenAI&#8217;\u0131n \u00f6ne \u00e7\u0131kan \u00f6zellikleri \u015funlard\u0131r:<\/p>\n<ul>\n<li><strong>Kurumsal G\u00fcvenlik:<\/strong> Azure Active Directory entegrasyonu, sanal a\u011f izolasyonu ve veri \u015fifreleme ile \u00fcst d\u00fczey g\u00fcvenlik.<\/li>\n<li><strong>\u00d6l\u00e7eklenebilirlik ve G\u00fcvenilirlik:<\/strong> Azure&#8217;\u0131n k\u00fcresel altyap\u0131s\u0131 sayesinde y\u00fcksek performans ve kesintisiz eri\u015fim.<\/li>\n<li><strong>Veri Gizlili\u011fi:<\/strong> OpenAI modellerinin, Azure OpenAI m\u00fc\u015fterilerinin verileriyle e\u011fitilmemesi garantisi.<\/li>\n<li><strong>Model \u00d6zelle\u015ftirme:<\/strong> Kendi verilerinizle modelleri ince ayar (fine-tuning) yapma imkan\u0131 (belirli modeller i\u00e7in).<\/li>\n<li><strong>Sorumlu Yapay Zeka:<\/strong> \u0130\u00e7erik filtreleme ve k\u00f6t\u00fcye kullan\u0131m\u0131 \u00f6nleme mekanizmalar\u0131.<\/li>\n<\/ul>\n<h3>Modeller (GPT-3.5, GPT-4, Embeddings, DALL-E)<\/h3>\n<p>Azure OpenAI \u00fczerinden eri\u015filebilen ba\u015fl\u0131ca modeller:<\/p>\n<ul>\n<li><strong>GPT-3.5 ve GPT-4 Serisi:<\/strong> Metin anlama, metin \u00fcretimi, \u00f6zetleme, \u00e7eviri, kod olu\u015fturma ve sohbet botlar\u0131 i\u00e7in kullan\u0131l\u0131r. GPT-4, daha karma\u015f\u0131k ak\u0131l y\u00fcr\u00fctme ve \u00e7ok modlu yetenekler sunar.<\/li>\n<li><strong>Embeddings Modelleri:<\/strong> Metinleri say\u0131sal vekt\u00f6rlere d\u00f6n\u00fc\u015ft\u00fcrerek anlamsal arama, \u00f6neri sistemleri ve k\u00fcmeleme gibi g\u00f6revlerde kullan\u0131l\u0131r.<\/li>\n<li><strong>DALL-E:<\/strong> Metin a\u00e7\u0131klamalar\u0131ndan y\u00fcksek kaliteli g\u00f6r\u00fcnt\u00fcler olu\u015fturmak i\u00e7in kullan\u0131l\u0131r.<\/li>\n<li><strong>Whisper:<\/strong> Konu\u015fmay\u0131 metne d\u00f6n\u00fc\u015ft\u00fcrme (Speech-to-Text) yetene\u011fi sunar.<\/li>\n<\/ul>\n<p>Bu modeller, geni\u015f bir yelpazede yapay zeka \u00e7\u00f6z\u00fcmleri geli\u015ftirmek i\u00e7in temel olu\u015fturur.<\/p>\n<h3>G\u00fcvenlik, \u00d6l\u00e7eklenebilirlik ve Kurumsal Uyumluluk<\/h3>\n<p>Azure OpenAI, i\u015fletmelerin en hassas verileriyle bile g\u00fcvenle \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flayan bir dizi \u00f6zellikle birlikte gelir. Verileriniz, Azure&#8217;\u0131n s\u0131k\u0131 g\u00fcvenlik protokolleri alt\u0131nda korunur ve modellerin e\u011fitimi i\u00e7in kullan\u0131lmaz. Ayr\u0131ca, Azure&#8217;\u0131n k\u00fcresel veri merkezleri ve otomatik \u00f6l\u00e7eklendirme yetenekleri sayesinde, uygulaman\u0131z\u0131n talepleri artt\u0131k\u00e7a sorunsuz bir \u015fekilde geni\u015fleyebilir. GDPR, HIPAA gibi uluslararas\u0131 ve sekt\u00f6rel uyumluluk standartlar\u0131na uygunluk, kurumsal benimseme i\u00e7in kritik bir fakt\u00f6rd\u00fcr.<\/p>\n<h2>Spring AI ve Azure OpenAI Entegrasyonu: Ad\u0131m Ad\u0131m Kurulum<\/h2>\n<p>Spring AI ile Azure OpenAI&#8217;\u0131 entegre etmek olduk\u00e7a basittir. Spring Boot&#8217;un otomatik yap\u0131land\u0131rma yetenekleri sayesinde, birka\u00e7 ba\u011f\u0131ml\u0131l\u0131k ve yap\u0131land\u0131rma ayar\u0131 ile ba\u015flayabilirsiniz.<\/p>\n<h3>Gerekli Ba\u011f\u0131ml\u0131l\u0131klar ve Proje Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>\u00d6ncelikle, Spring Boot projenize Spring AI Azure OpenAI ba\u011f\u0131ml\u0131l\u0131\u011f\u0131n\u0131 eklemeniz gerekir. Maven veya Gradle kullanabilirsiniz.<\/p>\n<p><strong>Maven (pom.xml):<\/strong><\/p>\n<pre><code class=\"language-xml\"><dependency>\n    <groupId>org.springframework.ai<\/groupId>\n    <artifactId>spring-ai-azure-openai-spring-boot-starter<\/artifactId>\n    <version>0.8.1<\/version> <!-- G\u00fcncel versiyonu kontrol edin -->\n<\/dependency>\n<\/pre>\n<p><\/code><\/p>\n<p><strong>Gradle (build.gradle):<\/strong><\/p>\n<pre><code class=\"language-gradle\">implementation 'org.springframework.ai:spring-ai-azure-openai-spring-boot-starter:0.8.1' \/\/ G\u00fcncel versiyonu kontrol edin\n<\/pre>\n<p><\/code><\/p>\n<p>Bu ba\u011f\u0131ml\u0131l\u0131k, hem Azure OpenAI LLM hem de Embedding modelleri i\u00e7in gerekli s\u0131n\u0131flar\u0131 ve otomatik yap\u0131land\u0131rmay\u0131 i\u00e7erir.<\/p>\n<h3>Azure OpenAI Kimlik Do\u011frulama Ayarlar\u0131<\/h3>\n<p>Azure OpenAI'\u0131 kullanabilmek i\u00e7in bir Azure hesab\u0131na ve bir Azure OpenAI kayna\u011f\u0131na ihtiyac\u0131n\u0131z olacak. Kayna\u011f\u0131 olu\u015fturduktan sonra, bir da\u011f\u0131t\u0131m (deployment) olu\u015fturman\u0131z ve API anahtar\u0131n\u0131z\u0131 (API Key) ve u\u00e7 nokta URL'nizi (Endpoint URL) alman\u0131z gerekecektir. Bu bilgileri <code>application.properties<\/code> veya <code>application.yml<\/code> dosyan\u0131za ekleyin:<\/p>\n<p><strong>application.properties:<\/strong><\/p>\n<pre><code class=\"language-properties\">spring.ai.azure.openai.api-key=YOUR_AZURE_OPENAI_API_KEY\nspring.ai.azure.openai.endpoint=YOUR_AZURE_OPENAI_ENDPOINT_URL\nspring.ai.azure.openai.chat.options.deployment-name=YOUR_CHAT_MODEL_DEPLOYMENT_NAME\nspring.ai.azure.openai.embedding.options.deployment-name=YOUR_EMBEDDING_MODEL_DEPLOYMENT_NAME\n<\/pre>\n<p><\/code><\/p>\n<p><code>YOUR_AZURE_OPENAI_API_KEY<\/code>: Azure OpenAI kayna\u011f\u0131n\u0131z\u0131n API anahtar\u0131.<br \/>\n<code>YOUR_AZURE_OPENAI_ENDPOINT_URL<\/code>: Azure OpenAI kayna\u011f\u0131n\u0131z\u0131n u\u00e7 nokta URL'si (\u00f6rn. <code>https:\/\/your-resource-name.openai.azure.com\/<\/code>).<br \/>\n<code>YOUR_CHAT_MODEL_DEPLOYMENT_NAME<\/code>: Azure OpenAI st\u00fcdyosunda olu\u015fturdu\u011funuz sohbet modelinin (\u00f6rn. <code>gpt-35-turbo<\/code> veya <code>gpt-4<\/code>) da\u011f\u0131t\u0131m ad\u0131.<br \/>\n<code>YOUR_EMBEDDING_MODEL_DEPLOYMENT_NAME<\/code>: Azure OpenAI st\u00fcdyosunda olu\u015fturdu\u011funuz g\u00f6mme modelinin (\u00f6rn. <code>text-embedding-ada-002<\/code>) da\u011f\u0131t\u0131m ad\u0131.<\/p>\n<h3>Basit Bir Metin \u00dcretme Uygulamas\u0131<\/h3>\n<p>Yap\u0131land\u0131rma tamamland\u0131ktan sonra, Spring AI'\u0131n <code>ChatClient<\/code> aray\u00fcz\u00fcn\u00fc kullanarak basit bir metin \u00fcretme uygulamas\u0131 yazabiliriz:<\/p>\n<pre><code class=\"language-java\">import org.springframework.ai.chat.client.ChatClient;\nimport org.springframework.ai.chat.model.ChatResponse;\nimport org.springframework.ai.chat.prompt.Prompt;\nimport org.springframework.ai.chat.prompt.PromptTemplate;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.web.bind.annotation.GetMapping;\nimport org.springframework.web.bind.annotation.RequestParam;\nimport org.springframework.web.bind.annotation.RestController;\n\n@RestController\npublic class AiController {\n\n    private final ChatClient chatClient;\n\n    @Autowired\n    public AiController(ChatClient chatClient) {\n        this.chatClient = chatClient;\n    }\n\n    @GetMapping(\"\/generate\")\n    public String generate(@RequestParam(value = \"message\", defaultValue = \"Spring AI nedir?\") String message) {\n        return chatClient.prompt()\n                .user(message)\n                .call()\n                .content();\n    }\n\n    @GetMapping(\"\/generateWithPromptTemplate\")\n    public String generateWithPromptTemplate(@RequestParam(value = \"ad\", defaultValue = \"Ali\") String ad) {\n        PromptTemplate promptTemplate = new PromptTemplate(\"Merhaba, benim ad\u0131m {ad}. Bana kendinden bahseder misin?\");\n        Prompt prompt = promptTemplate.create(Map.of(\"ad\", ad));\n        return chatClient.prompt(prompt)\n                .call()\n                .content();\n    }\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Yukar\u0131daki \u00f6rnekte, <code>ChatClient<\/code> otomatik olarak enjekte edilir ve mesaj g\u00f6ndermek i\u00e7in kullan\u0131l\u0131r. <code>\/generate<\/code> endpoint'i basit bir mesaj\u0131 LLM'e g\u00f6nderirken, <code>\/generateWithPromptTemplate<\/code> endpoint'i daha yap\u0131land\u0131r\u0131lm\u0131\u015f bir prompt (istek) \u00f6rne\u011fi sunar.<\/p>\n<h3>Sohbet (Chat) Uygulamas\u0131 Olu\u015fturma<\/h3>\n<p>Spring AI, sohbet tabanl\u0131 uygulamalar i\u00e7in de kolayl\u0131klar sunar. Bir sohbet ge\u00e7mi\u015fini y\u00f6netmek ve modele ba\u011flam sa\u011flamak i\u00e7in <code>ChatClient<\/code>'\u0131n yeteneklerini kullanabiliriz:<\/p>\n<pre><code class=\"language-java\">import org.springframework.ai.chat.client.ChatClient;\nimport org.springframework.ai.chat.messages.UserMessage;\nimport org.springframework.ai.chat.model.ChatResponse;\nimport org.springframework.ai.chat.prompt.Prompt;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.web.bind.annotation.GetMapping;\nimport org.springframework.web.bind.annotation.RequestParam;\nimport org.springframework.web.bind.annotation.RestController;\n\nimport java.util.List;\n\n@RestController\npublic class ChatController {\n\n    private final ChatClient chatClient;\n\n    @Autowired\n    public ChatController(ChatClient chatClient) {\n        this.chatClient = chatClient;\n    }\n\n    @GetMapping(\"\/chat\")\n    public String chat(@RequestParam(value = \"message\", defaultValue = \"Merhaba, nas\u0131ls\u0131n?\") String message) {\n        \/\/ Basit bir \u00f6rnek, ger\u00e7ek bir uygulamada sohbet ge\u00e7mi\u015fi bir oturumda veya veritaban\u0131nda tutulur.\n        UserMessage userMessage = new UserMessage(message);\n        Prompt prompt = new Prompt(List.of(userMessage)); \/\/ Daha karma\u015f\u0131k senaryolarda SystemMessage ve AssistantMessage da eklenebilir.\n\n        ChatResponse response = chatClient.prompt(prompt)\n                .call()\n                .chatResponse();\n\n        return response.getResult().getOutput().getContent();\n    }\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnek, tek bir kullan\u0131c\u0131 mesaj\u0131n\u0131 i\u015fler. Ger\u00e7ek bir sohbet uygulamas\u0131nda, \u00f6nceki mesajlar\u0131 (hem kullan\u0131c\u0131dan hem de asistandan gelenleri) bir liste halinde tutarak <code>Prompt<\/code> nesnesine eklemeniz gerekir, b\u00f6ylece model konu\u015fman\u0131n ba\u011flam\u0131n\u0131 anlayabilir.<\/p>\n<h2>Pratik Uygulama Senaryolar\u0131: Metin \u00dcretimi ve Sohbet Botlar\u0131<\/h2>\n<p>Spring AI ve Azure OpenAI'\u0131n birle\u015fimiyle geli\u015ftirilebilecek bir\u00e7ok pratik uygulama senaryosu bulunmaktad\u0131r. \u0130\u015fte baz\u0131 pop\u00fcler \u00f6rnekler:<\/p>\n<h3>Metin \u00dcretimi ve \u0130\u00e7erik Olu\u015fturma<\/h3>\n<p>Pazarlama metinleri, blog yaz\u0131lar\u0131, \u00fcr\u00fcn a\u00e7\u0131klamalar\u0131, e-posta taslaklar\u0131 gibi \u00e7e\u015fitli i\u00e7eriklerin otomatik olarak olu\u015fturulmas\u0131 veya tasla\u011f\u0131n\u0131n haz\u0131rlanmas\u0131. Bu, i\u00e7erik \u00fcretim s\u00fcre\u00e7lerini h\u0131zland\u0131r\u0131r ve yazarlar\u0131n yarat\u0131c\u0131 s\u00fcre\u00e7lerine odaklanmalar\u0131n\u0131 sa\u011flar.<\/p>\n<pre><code class=\"language-java\">\/\/ \u00d6rnek: \u00dcr\u00fcn a\u00e7\u0131klamas\u0131 olu\u015fturma\nString productName = \"Ak\u0131ll\u0131 Saat X Pro\";\nString features = \"Nab\u0131z takibi, GPS, su ge\u00e7irmezlik, 7 g\u00fcn pil \u00f6mr\u00fc\";\nString promptText = \"\u015eu \u00fcr\u00fcn i\u00e7in ilgi \u00e7ekici bir pazarlama metni olu\u015ftur: \u00dcr\u00fcn Ad\u0131: {productName}, \u00d6zellikler: {features}\";\n\nPromptTemplate promptTemplate = new PromptTemplate(promptText);\nPrompt prompt = promptTemplate.create(Map.of(\"productName\", productName, \"features\", features));\n\nString marketingText = chatClient.prompt(prompt).call().content();\nSystem.out.println(marketingText);\n<\/pre>\n<p><\/code><\/p>\n<h3>Etkile\u015fimli Sohbet Botlar\u0131 Geli\u015ftirme<\/h3>\n<p>M\u00fc\u015fteri hizmetleri, teknik destek, sat\u0131\u015f veya dahili ileti\u015fim i\u00e7in ak\u0131ll\u0131 sohbet botlar\u0131. Bu botlar, do\u011fal dil anlama yetenekleri sayesinde kullan\u0131c\u0131 sorular\u0131n\u0131 yan\u0131tlayabilir, sorunlar\u0131 \u00e7\u00f6zebilir ve hatta karma\u015f\u0131k g\u00f6revlerde yard\u0131mc\u0131 olabilir.<\/p>\n<p>Spring AI, sohbet ge\u00e7mi\u015fini y\u00f6netmek i\u00e7in <code>ChatClient<\/code>'\u0131n <code>.prompt().user(...).assistant(...).user(...)<\/code> zincirleme \u00e7a\u011fr\u0131lar\u0131n\u0131 veya <code>List<Message><\/code> kullan\u0131m\u0131n\u0131 destekler.<\/p>\n<h3>G\u00f6mme (Embeddings) ve Anlamsal Arama (Semantic Search)<\/h3>\n<p>Metinleri say\u0131sal vekt\u00f6rlere d\u00f6n\u00fc\u015ft\u00fcrerek, anlamsal olarak benzer belgeleri bulma, \u00f6neri sistemleri olu\u015fturma veya i\u00e7erik k\u00fcmeleme gibi g\u00f6revleri ger\u00e7ekle\u015ftirebilirsiniz. Spring AI'\u0131n <code>EmbeddingClient<\/code> aray\u00fcz\u00fc bu i\u015flemi kolayla\u015ft\u0131r\u0131r.<\/p>\n<pre><code class=\"language-java\">import org.springframework.ai.embedding.EmbeddingClient;\nimport org.springframework.ai.embedding.EmbeddingResponse;\nimport org.springframework.beans.factory.annotation.Autowired;\nimport org.springframework.web.bind.annotation.GetMapping;\nimport org.springframework.web.bind.annotation.RequestParam;\nimport org.springframework.web.bind.annotation.RestController;\n\nimport java.util.List;\n\n@RestController\npublic class EmbeddingController {\n\n    private final EmbeddingClient embeddingClient;\n\n    @Autowired\n    public EmbeddingController(EmbeddingClient embeddingClient) {\n        this.embeddingClient = embeddingClient;\n    }\n\n    @GetMapping(\"\/embed\")\n    public List<Double> embed(@RequestParam(value = \"text\", defaultValue = \"Yapay zeka teknolojileri\") String text) {\n        EmbeddingResponse embeddingResponse = this.embeddingClient.embedForResponse(List.of(text));\n        return embeddingResponse.getResults().get(0).getOutput();\n    }\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Bu vekt\u00f6rler daha sonra bir vekt\u00f6r veritaban\u0131nda saklanarak anlamsal arama i\u00e7in kullan\u0131labilir.<\/p>\n<h3>RAG (Retrieval Augmented Generation) Yakla\u015f\u0131m\u0131<\/h3>\n<p>RAG, LLM'lerin bilgi taban\u0131n\u0131 geni\u015fletmek i\u00e7in harici veri kaynaklar\u0131ndan (belgeler, veritabanlar\u0131 vb.) bilgi al\u0131p, bu bilgiyi LLM'e ba\u011flam olarak sunma tekni\u011fidir. Bu, modellerin g\u00fcncel ve spesifik bilgilere eri\u015fmesini sa\u011flayarak hal\u00fcsinasyonlar\u0131 azalt\u0131r ve daha do\u011fru yan\u0131tlar \u00fcretir. Spring AI, vekt\u00f6r veritaban\u0131 entegrasyonlar\u0131 ve <code>VectorStoreRetriever<\/code> gibi bile\u015fenlerle RAG uygulamalar\u0131n\u0131 destekler.<\/p>\n<p><strong>RAG Ak\u0131\u015f\u0131:<\/strong><\/p>\n<ol>\n<li>Kullan\u0131c\u0131 bir soru sorar.<\/li>\n<li>Soru, embedding modeline g\u00f6nderilerek bir vekt\u00f6re d\u00f6n\u00fc\u015ft\u00fcr\u00fcl\u00fcr.<\/li>\n<li>Bu vekt\u00f6r, vekt\u00f6r veritaban\u0131nda depolanan belgelerin vekt\u00f6rleriyle kar\u015f\u0131la\u015ft\u0131r\u0131larak en alakal\u0131 belgeler bulunur.<\/li>\n<li>Bulunan belgeler, kullan\u0131c\u0131n\u0131n sorusuyla birlikte LLM'e bir prompt olarak g\u00f6nderilir.<\/li>\n<li>LLM, bu ba\u011flam\u0131 kullanarak daha do\u011fru ve ilgili bir yan\u0131t \u00fcretir.<\/li>\n<\/ol>\n<h2>Geli\u015fmi\u015f Konular ve En \u0130yi Uygulamalar<\/h2>\n<p>Yapay zeka uygulamalar\u0131 geli\u015ftirirken sadece temel entegrasyon yeterli de\u011fildir. Performans, maliyet, g\u00fcvenlik ve do\u011fruluk gibi fakt\u00f6rleri g\u00f6z \u00f6n\u00fcnde bulundurmak kritik \u00f6neme sahiptir.<\/p>\n<h3>Prompt M\u00fchendisli\u011fi (Prompt Engineering) Teknikleri<\/h3>\n<p>LLM'lerden en iyi sonu\u00e7lar\u0131 almak i\u00e7in do\u011fru prompt'lar\u0131 (istekleri) tasarlamak bir sanatt\u0131r. \u0130yi bir prompt:<\/p>\n<ul>\n<li>A\u00e7\u0131k ve spesifiktir.<\/li>\n<li>\u0130stenen \u00e7\u0131kt\u0131n\u0131n format\u0131n\u0131 belirtir (JSON, liste vb.).<\/li>\n<li>\u00d6rnekler (few-shot prompting) i\u00e7erebilir.<\/li>\n<li>Modelin bir persona (ki\u015filik) benimsemesini isteyebilir.<\/li>\n<li>Zincirleme prompt'lar veya ara\u00e7 \u00e7a\u011fr\u0131lar\u0131 (tool calling) kullanabilir.<\/li>\n<\/ul>\n<p>Spring AI, <code>PromptTemplate<\/code> ve <code>ChatClient<\/code>'\u0131n ak\u0131c\u0131 API'si ile prompt m\u00fchendisli\u011fini kolayla\u015ft\u0131r\u0131r.<\/p>\n<h3>Maliyet Y\u00f6netimi ve Performans Optimizasyonu<\/h3>\n<p>LLM \u00e7a\u011fr\u0131lar\u0131 maliyetli olabilir. Maliyetleri y\u00f6netmek i\u00e7in:<\/p>\n<ul>\n<li><strong>Model Se\u00e7imi:<\/strong> G\u00f6rev i\u00e7in en uygun (ve genellikle daha ucuz) modeli kullan\u0131n (\u00f6rn. basit g\u00f6revler i\u00e7in GPT-3.5 yerine GPT-4 kullanmaktan ka\u00e7\u0131n\u0131n).<\/li>\n<li><strong>Token Kullan\u0131m\u0131:<\/strong> Prompt'lar\u0131 ve yan\u0131tlar\u0131 m\u00fcmk\u00fcn oldu\u011funca k\u0131sa tutun.<\/li>\n<li><strong>\u00d6nbellekleme:<\/strong> S\u0131k\u00e7a sorulan sorular\u0131n veya tekrarlayan yan\u0131tlar\u0131n \u00f6nbelle\u011fe al\u0131nmas\u0131.<\/li>\n<li><strong>Asenkron \u0130\u015fleme:<\/strong> Uzun s\u00fcren LLM \u00e7a\u011fr\u0131lar\u0131n\u0131 asenkron olarak i\u015fleyerek kullan\u0131c\u0131 deneyimini iyile\u015ftirin.<\/li>\n<\/ul>\n<p>Spring AI, asenkron \u00e7a\u011fr\u0131lar i\u00e7in reaktif API'ler sunar.<\/p>\n<h3>G\u00fcvenlik ve Veri Gizlili\u011fi<\/h3>\n<p>Azure OpenAI, kurumsal d\u00fczeyde g\u00fcvenlik sunsa da, uygulama katman\u0131nda da dikkatli olmak gerekir:<\/p>\n<ul>\n<li><strong>Hassas Veri Filtreleme:<\/strong> Kullan\u0131c\u0131 giri\u015flerindeki veya model yan\u0131tlar\u0131ndaki hassas ki\u015fisel verileri (PII) tan\u0131mlay\u0131n ve filtreleyin.<\/li>\n<li><strong>Giri\u015f Do\u011frulama:<\/strong> K\u00f6t\u00fc niyetli veya a\u015f\u0131r\u0131 uzun prompt'lar\u0131 engelleyin.<\/li>\n<li><strong>Eri\u015fim Kontrol\u00fc:<\/strong> Yapay zeka hizmetlerine eri\u015fimi en az ayr\u0131cal\u0131k ilkesine g\u00f6re y\u00f6netin.<\/li>\n<li><strong>Model G\u00fcvenli\u011fi:<\/strong> Azure OpenAI'\u0131n yerle\u015fik i\u00e7erik filtreleme \u00f6zelliklerini etkinle\u015ftirin.<\/li>\n<\/ul>\n<h3>Hata Y\u00f6netimi ve \u0130zleme<\/h3>\n<p>Yapay zeka uygulamalar\u0131nda hatalar (API limitleri, model yan\u0131t s\u00fcreleri, i\u00e7erik filtreleme) yayg\u0131nd\u0131r. Uygulaman\u0131z\u0131n bu hatalar\u0131 d\u00fczg\u00fcn bir \u015fekilde ele almas\u0131 ve izlemesi \u00f6nemlidir:<\/p>\n<ul>\n<li><strong>Retry Mekanizmalar\u0131:<\/strong> Ge\u00e7ici hatalar i\u00e7in otomatik tekrar deneme mant\u0131\u011f\u0131 uygulay\u0131n.<\/li>\n<li><strong>Logging:<\/strong> LLM \u00e7a\u011fr\u0131lar\u0131n\u0131, prompt'lar\u0131 ve yan\u0131tlar\u0131 (hassas verileri maskeleyerek) loglay\u0131n.<\/li>\n<li><strong>Metrikler:<\/strong> API \u00e7a\u011fr\u0131 say\u0131lar\u0131, gecikme s\u00fcreleri ve hata oranlar\u0131 gibi metrikleri izleyin.<\/li>\n<\/ul>\n<p>Spring Boot Actuator ve Micrometer gibi ara\u00e7lar, bu t\u00fcr izleme ve metrik toplama i\u015flemlerini kolayla\u015ft\u0131r\u0131r.<\/p>\n<h2>Sonu\u00e7<\/h2>\n<p>Spring AI ve Azure OpenAI, Java geli\u015ftiricileri i\u00e7in yapay zeka uygulamalar\u0131 geli\u015ftirme s\u00fcrecini \u00f6nemli \u00f6l\u00e7\u00fcde basitle\u015ftiren g\u00fc\u00e7l\u00fc bir kombinasyon sunar. Spring AI'\u0131n tutarl\u0131 API'si ve Spring Boot ile entegrasyonu, geli\u015ftiricilerin farkl\u0131 LLM sa\u011flay\u0131c\u0131lar\u0131 aras\u0131nda kolayca ge\u00e7i\u015f yapmas\u0131na olanak tan\u0131rken, Azure OpenAI'\u0131n kurumsal d\u00fczeydeki g\u00fcvenlik, \u00f6l\u00e7eklenebilirlik ve model \u00e7e\u015fitlili\u011fi, i\u015fletmelerin g\u00fcvenle yapay zeka \u00e7\u00f6z\u00fcmlerini benimsemesini sa\u011flar.<\/p>\n<p>Bu makalede ele al\u0131nan temel entegrasyon ad\u0131mlar\u0131, kod \u00f6rnekleri ve en iyi uygulamalar sayesinde, siz de kendi ak\u0131ll\u0131 uygulamalar\u0131n\u0131z\u0131 olu\u015fturmaya ba\u015flayabilir, metin \u00fcretimi, sohbet botlar\u0131, anlamsal arama ve RAG gibi senaryolarla i\u015f s\u00fcre\u00e7lerinizi d\u00f6n\u00fc\u015ft\u00fcrebilirsiniz. Yapay zeka d\u00fcnyas\u0131ndaki bu h\u0131zl\u0131 evrimde, Spring AI ve Azure OpenAI ile gelece\u011fin uygulamalar\u0131n\u0131 in\u015fa etmek art\u0131k \u00e7ok daha eri\u015filebilir.<\/p>\n<h2>SSS (S\u0131k Sorulan Sorular)<\/h2>\n<h3>Spring AI \u00fccretsiz mi?<\/h3>\n<p>Evet, Spring AI projesi a\u00e7\u0131k kaynakl\u0131d\u0131r ve kullan\u0131m\u0131 \u00fccretsizdir. Ancak, entegre etti\u011finiz yapay zeka sa\u011flay\u0131c\u0131lar\u0131n\u0131n (\u00f6rn. Azure OpenAI) kendi kullan\u0131m \u00fccretleri bulunmaktad\u0131r.<\/p>\n<h3>Azure OpenAI'\u0131 kullanmak pahal\u0131 m\u0131?<\/h3>\n<p>Azure OpenAI'\u0131n maliyetleri kullan\u0131lan modelin t\u00fcr\u00fcne, \u00e7a\u011fr\u0131 say\u0131s\u0131na ve token miktar\u0131na g\u00f6re de\u011fi\u015fiklik g\u00f6sterir. Azure'\u0131n fiyatland\u0131rma sayfas\u0131n\u0131 kontrol ederek detayl\u0131 bilgi alabilirsiniz. Genellikle k\u00fc\u00e7\u00fck \u00f6l\u00e7ekli kullan\u0131mlar uygun maliyetli olabilirken, b\u00fcy\u00fck \u00f6l\u00e7ekli kurumsal kullan\u0131mlar i\u00e7in maliyet optimizasyonu \u00f6nemlidir.<\/p>\n<h3>Spring AI sadece Azure ile mi \u00e7al\u0131\u015f\u0131r?<\/h3>\n<p>Hay\u0131r, Spring AI birden fazla yapay zeka sa\u011flay\u0131c\u0131s\u0131n\u0131 destekler. Azure OpenAI'\u0131n yan\u0131 s\u0131ra OpenAI, Google Gemini, Hugging Face, Amazon Bedrock gibi di\u011fer pop\u00fcler sa\u011flay\u0131c\u0131larla da entegre edilebilir. Bu esneklik, geli\u015ftiricilere model ve sa\u011flay\u0131c\u0131 se\u00e7imi konusunda b\u00fcy\u00fck \u00f6zg\u00fcrl\u00fck sunar.<\/p>\n<h3>Hangi Java versiyonu gerekli?<\/h3>\n<p>Spring AI genellikle Java 17 veya \u00fczeri versiyonlar\u0131 gerektirir.<\/p>\n","protected":false},"excerpt":{"rendered":"Yapay zeka teknolojileri, i\u015f d\u00fcnyas\u0131ndan g\u00fcnl\u00fck ya\u015fant\u0131m\u0131za kadar her alanda devrim yaratmaya devam ediyor.","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":[1405],"tags":[],"class_list":{"0":"post-40530","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-azure","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>Spring AI ve Azure OpenAI: Modern Yapay Zeka Uygulamalar\u0131 \u0130\u00e7in G\u00fc\u00e7l\u00fc \u0130kili - 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\/spring-ai-ve-azure-openai-modern-yapay-zeka-uygulamalari-icin-guclu-ikili\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Spring AI ve Azure OpenAI: Modern Yapay Zeka Uygulamalar\u0131 \u0130\u00e7in G\u00fc\u00e7l\u00fc \u0130kili\" \/>\n<meta property=\"og:description\" content=\"Yapay zeka teknolojileri, i\u015f d\u00fcnyas\u0131ndan g\u00fcnl\u00fck ya\u015fant\u0131m\u0131za kadar her alanda devrim yaratmaya devam ediyor.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/spring-ai-ve-azure-openai-modern-yapay-zeka-uygulamalari-icin-guclu-ikili\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-27T10:00:43+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\/spring-ai-ve-azure-openai-modern-yapay-zeka-uygulamalari-icin-guclu-ikili\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/spring-ai-ve-azure-openai-modern-yapay-zeka-uygulamalari-icin-guclu-ikili\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Spring AI ve Azure OpenAI: Modern Yapay Zeka Uygulamalar\u0131 \u0130\u00e7in G\u00fc\u00e7l\u00fc \u0130kili\",\"datePublished\":\"2026-02-27T10:00:43+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/spring-ai-ve-azure-openai-modern-yapay-zeka-uygulamalari-icin-guclu-ikili\/\"},\"wordCount\":2741,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Azure\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/spring-ai-ve-azure-openai-modern-yapay-zeka-uygulamalari-icin-guclu-ikili\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/spring-ai-ve-azure-openai-modern-yapay-zeka-uygulamalari-icin-guclu-ikili\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/spring-ai-ve-azure-openai-modern-yapay-zeka-uygulamalari-icin-guclu-ikili\/\",\"name\":\"Spring AI ve Azure OpenAI: Modern Yapay Zeka Uygulamalar\u0131 \u0130\u00e7in G\u00fc\u00e7l\u00fc \u0130kili - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-27T10:00:43+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/spring-ai-ve-azure-openai-modern-yapay-zeka-uygulamalari-icin-guclu-ikili\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/spring-ai-ve-azure-openai-modern-yapay-zeka-uygulamalari-icin-guclu-ikili\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/spring-ai-ve-azure-openai-modern-yapay-zeka-uygulamalari-icin-guclu-ikili\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Spring AI ve Azure OpenAI: Modern Yapay Zeka Uygulamalar\u0131 \u0130\u00e7in G\u00fc\u00e7l\u00fc \u0130kili\"}]},{\"@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":"Spring AI ve Azure OpenAI: Modern Yapay Zeka Uygulamalar\u0131 \u0130\u00e7in G\u00fc\u00e7l\u00fc \u0130kili - 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\/spring-ai-ve-azure-openai-modern-yapay-zeka-uygulamalari-icin-guclu-ikili\/","og_locale":"tr_TR","og_type":"article","og_title":"Spring AI ve Azure OpenAI: Modern Yapay Zeka Uygulamalar\u0131 \u0130\u00e7in G\u00fc\u00e7l\u00fc \u0130kili","og_description":"Yapay zeka teknolojileri, i\u015f d\u00fcnyas\u0131ndan g\u00fcnl\u00fck ya\u015fant\u0131m\u0131za kadar her alanda devrim yaratmaya devam ediyor.","og_url":"https:\/\/fatihsoysal.com\/blog\/spring-ai-ve-azure-openai-modern-yapay-zeka-uygulamalari-icin-guclu-ikili\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-27T10:00:43+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\/spring-ai-ve-azure-openai-modern-yapay-zeka-uygulamalari-icin-guclu-ikili\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/spring-ai-ve-azure-openai-modern-yapay-zeka-uygulamalari-icin-guclu-ikili\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Spring AI ve Azure OpenAI: Modern Yapay Zeka Uygulamalar\u0131 \u0130\u00e7in G\u00fc\u00e7l\u00fc \u0130kili","datePublished":"2026-02-27T10:00:43+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/spring-ai-ve-azure-openai-modern-yapay-zeka-uygulamalari-icin-guclu-ikili\/"},"wordCount":2741,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Azure"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/spring-ai-ve-azure-openai-modern-yapay-zeka-uygulamalari-icin-guclu-ikili\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/spring-ai-ve-azure-openai-modern-yapay-zeka-uygulamalari-icin-guclu-ikili\/","url":"https:\/\/fatihsoysal.com\/blog\/spring-ai-ve-azure-openai-modern-yapay-zeka-uygulamalari-icin-guclu-ikili\/","name":"Spring AI ve Azure OpenAI: Modern Yapay Zeka Uygulamalar\u0131 \u0130\u00e7in G\u00fc\u00e7l\u00fc \u0130kili - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-27T10:00:43+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/spring-ai-ve-azure-openai-modern-yapay-zeka-uygulamalari-icin-guclu-ikili\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/spring-ai-ve-azure-openai-modern-yapay-zeka-uygulamalari-icin-guclu-ikili\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/spring-ai-ve-azure-openai-modern-yapay-zeka-uygulamalari-icin-guclu-ikili\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Spring AI ve Azure OpenAI: Modern Yapay Zeka Uygulamalar\u0131 \u0130\u00e7in G\u00fc\u00e7l\u00fc \u0130kili"}]},{"@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\/40530","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=40530"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/40530\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=40530"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=40530"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=40530"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}