{"id":32303,"date":"2025-10-20T06:01:26","date_gmt":"2025-10-20T03:01:26","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/uretim-ortamina-hazir-yapay-zeka-ajanlari-openai-agents-sdk-ve-fastapi-ile-gelistirme\/"},"modified":"2025-10-20T06:01:26","modified_gmt":"2025-10-20T03:01:26","slug":"uretim-ortamina-hazir-yapay-zeka-ajanlari-openai-agents-sdk-ve-fastapi-ile-gelistirme","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/uretim-ortamina-hazir-yapay-zeka-ajanlari-openai-agents-sdk-ve-fastapi-ile-gelistirme\/","title":{"rendered":"\u00dcretim Ortam\u0131na Haz\u0131r Yapay Zeka Ajanlar\u0131: OpenAI Agents SDK ve FastAPI ile Geli\u015ftirme"},"content":{"rendered":"<style>\n  body {\n    font-family: 'Segoe UI', Tahoma, Geneva, Verdana, sans-serif;\n    line-height: 1.6;\n    color: #333;\n    max-width: 900px;\n    margin: 0 auto;\n    padding: 20px;\n    background-color: #f9f9f9;\n  }\n  h2 {\n    color: #2c3e50;\n    border-bottom: 2px solid #3498db;\n    padding-bottom: 10px;\n    margin-top: 40px;\n  }\n  h3 {\n    color: #34495e;\n    margin-top: 30px;\n  }\n  p {\n    margin-bottom: 15px;\n    text-align: justify;\n  }\n  pre {\n    background-color: #ecf0f1;\n    border: 1px solid #bdc3c7;\n    padding: 15px;\n    border-radius: 5px;\n    overflow-x: auto;\n    margin-bottom: 20px;\n  }\n  code {\n    font-family: 'Consolas', 'Monaco', monospace;\n    font-size: 0.9em;\n    color: #c0392b;\n    background-color: #e0e6ea;\n    padding: 2px 4px;\n    border-radius: 3px;\n  }\n  pre code {\n    color: #2c3e50;\n    background-color: transparent;\n    padding: 0;\n  }\n  ul {\n    list-style-type: disc;\n    margin-left: 20px;\n    margin-bottom: 15px;\n  }\n  ol {\n    list-style-type: decimal;\n    margin-left: 20px;\n    margin-bottom: 15px;\n  }\n  li {\n    margin-bottom: 8px;\n  }\n  .expert-tip {\n    background-color: #dbe9f6;\n    border-left: 5px solid #3498db;\n    padding: 15px;\n    margin: 20px 0;\n    font-style: italic;\n    color: #2c3e50;\n    border-radius: 3px;\n  }\n  .faq-section h3 {\n    margin-top: 30px;\n    color: #2c3e50;\n  }\n  .faq-question {\n    font-weight: bold;\n    color: #34495e;\n    margin-top: 15px;\n  }\n  .faq-answer {\n    margin-bottom: 10px;\n  }\n  table {\n    width: 100%;\n    border-collapse: collapse;\n    margin: 20px 0;\n  }\n  th, td {\n    border: 1px solid #ddd;\n    padding: 8px;\n    text-align: left;\n  }\n  th {\n    background-color: #f2f2f2;\n    color: #333;\n  }<\/p>\n<p>  \/* Mobile Uyumlu Tasar\u0131m *\/\n  @media (max-width: 768px) {\n    body {\n      padding: 10px;\n    }\n    h2 {\n      font-size: 1.8em;\n    }\n    h3 {\n      font-size: 1.4em;\n    }\n    pre {\n      padding: 10px;\n    }\n    table, thead, tbody, th, td, tr {\n      display: block;\n    }\n    thead tr {\n      position: absolute;\n      top: -9999px;\n      left: -9999px;\n    }\n    tr {\n      margin-bottom: 15px;\n      border: 1px solid #ccc;\n      display: block;\n      padding: 10px;\n      border-radius: 5px;\n    }\n    td {\n      border: none;\n      border-bottom: 1px solid #eee;\n      position: relative;\n      padding-left: 50%;\n      text-align: right;\n    }\n    td:before {\n      position: absolute;\n      top: 6px;\n      left: 6px;\n      width: 45%;\n      padding-right: 10px;\n      white-space: nowrap;\n      content: attr(data-label); \/* Use data-label for mobile headers *\/\n      font-weight: bold;\n      text-align: left;\n    }\n  }\n<\/style>\n<p>Yapay zeka teknolojileri g\u00fcnl\u00fck hayat\u0131m\u0131za entegre olmaya devam ederken, karma\u015f\u0131k g\u00f6revleri otonom olarak yerine getirebilen ak\u0131ll\u0131 ajanlar geli\u015ftirmek kritik \u00f6nem ta\u015f\u0131yor. Bu makalede, OpenAI Agents SDK ve FastAPI kullanarak \u00fcretim ortam\u0131na haz\u0131r, \u00f6l\u00e7eklenebilir ve g\u00fcvenli yapay zeka ajanlar\u0131 nas\u0131l in\u015fa edece\u011finizi ad\u0131m ad\u0131m ke\u015ffedece\u011fiz.<\/p>\n<p>B\u00fcy\u00fck Dil Modelleri (LLM&#8217;ler) inan\u0131lmaz derecede yetenekli olsalar da, genellikle tek seferlik, izole g\u00f6revler i\u00e7in optimize edilmi\u015flerdir. Ger\u00e7ek d\u00fcnya problemleri ise genellikle \u00e7ok ad\u0131ml\u0131 planlama, d\u0131\u015f ara\u00e7larla etkile\u015fim, geri bildirim d\u00f6ng\u00fcleri ve haf\u0131za gerektirir. \u0130\u015fte tam bu noktada yapay zeka ajanlar\u0131 devreye girer. Bir yapay zeka ajan\u0131, belirli bir hedefi ger\u00e7ekle\u015ftirmek i\u00e7in otonom olarak kararlar alabilen, g\u00f6zlemleyebilen, d\u00fc\u015f\u00fcnebilen ve eyleme ge\u00e7ebilen bir yaz\u0131l\u0131m varl\u0131\u011f\u0131d\u0131r.<\/p>\n<p>Ajanlar, temel olarak bir LLM&#8217;i &#8220;beyin&#8221; olarak kullanarak a\u015fa\u011f\u0131daki temel bile\u015fenleri bir araya getirir:<\/p>\n<ul>\n<li><strong>Planlama:<\/strong> Karma\u015f\u0131k bir g\u00f6revi daha k\u00fc\u00e7\u00fck, y\u00f6netilebilir ad\u0131mlara ay\u0131rma yetene\u011fi.<\/li>\n<li><strong>Ara\u00e7 Kullan\u0131m\u0131 (Tool Usage):<\/strong> Harici API&#8217;lar, veritabanlar\u0131 veya \u00f6zel Python fonksiyonlar\u0131 gibi ara\u00e7lar\u0131 kullanarak d\u0131\u015f d\u00fcnya ile etkile\u015fim kurma yetene\u011fi.<\/li>\n<li><strong>Haf\u0131za:<\/strong> Ge\u00e7mi\u015f etkile\u015fimleri ve \u00f6\u011frenilen bilgileri hat\u0131rlayarak ba\u011flam\u0131 koruma ve zaman i\u00e7inde daha iyi kararlar alma yetene\u011fi.<\/li>\n<li><strong>Refleksiyon\/\u00d6\u011frenme:<\/strong> Eylemlerinin sonu\u00e7lar\u0131n\u0131 de\u011ferlendirme ve gelecekteki performans\u0131n\u0131 art\u0131rmak i\u00e7in hatalar\u0131ndan ders \u00e7\u0131karma yetene\u011fi.<\/li>\n<\/ul>\n<p>Bu yetenekler sayesinde ajanlar, dinamik ve belirsiz ortamlarda bile adaptif \u00e7\u00f6z\u00fcmler \u00fcretebilirler. \u00d6rne\u011fin, bir m\u00fc\u015fteri destek ajan\u0131 sadece sorular\u0131 yan\u0131tlamakla kalmaz, ayn\u0131 zamanda bir veritaban\u0131ndan bilgi \u00e7ekebilir, bir sipari\u015fi de\u011fi\u015ftirebilir veya bir insan temsilciye durumu iletebilir. B\u00f6ylece, manuel s\u00fcre\u00e7leri otomatikle\u015ftirmek, kullan\u0131c\u0131 deneyimini ki\u015fiselle\u015ftirmek ve i\u015fletme verimlili\u011fini art\u0131rmak i\u00e7in muazzam f\u0131rsatlar sunarlar.<\/p>\n<h3>OpenAI Agents SDK&#8217;ya H\u0131zl\u0131 Bir Bak\u0131\u015f<\/h3>\n<p>OpenAI Agents SDK, geli\u015ftiricilerin bu t\u00fcr ak\u0131ll\u0131 ajanlar\u0131 kolayca tasarlamas\u0131n\u0131 ve da\u011f\u0131tmas\u0131n\u0131 sa\u011flayan g\u00fc\u00e7l\u00fc bir ara\u00e7 setidir. OpenAI&#8217;nin en yeni modellerinin yeteneklerini kullanarak, karma\u015f\u0131k i\u015f ak\u0131\u015flar\u0131n\u0131 basitle\u015ftiren ve ajanlar\u0131n d\u0131\u015f d\u00fcnyayla etkile\u015fim kurmas\u0131n\u0131 kolayla\u015ft\u0131ran bir dizi soyutlama katman\u0131 sunar. SDK&#8217;n\u0131n ana bile\u015fenleri \u015funlard\u0131r:<\/p>\n<ul>\n<li><strong>Assistants API:<\/strong> Ajan\u0131n beyni olan LLM&#8217;i y\u00f6netir, sohbet ge\u00e7mi\u015fini, ara\u00e7lar\u0131 ve dosyalar\u0131 depolar.<\/li>\n<li><strong>Threads (Konular):<\/strong> Kullan\u0131c\u0131 ile ajan\u0131n t\u00fcm konu\u015fma ge\u00e7mi\u015fini ve etkile\u015fimlerini saklayan s\u00fcrekli ba\u011flam alanlar\u0131d\u0131r. Bu sayede ajan, \u00f6nceki konu\u015fmalar\u0131 hat\u0131rlayabilir.<\/li>\n<li><strong>Tools (Ara\u00e7lar):<\/strong> Ajan\u0131n d\u0131\u015f eylemleri ger\u00e7ekle\u015ftirmesini sa\u011flayan \u00f6zel fonksiyonlard\u0131r. Bunlar API \u00e7a\u011fr\u0131lar\u0131, veritaban\u0131 sorgular\u0131 veya herhangi bir \u00f6zel Python kodu olabilir. SDK, bu ara\u00e7lar\u0131 kolayca tan\u0131mlama ve ajana sunma mekanizmas\u0131 sa\u011flar.<\/li>\n<li><strong>Runs (\u00c7al\u0131\u015ft\u0131rmalar):<\/strong> Ajan\u0131n bir g\u00f6revi yerine getirme s\u00fcrecidir. Bir &#8220;run&#8221;, ajan\u0131n d\u00fc\u015f\u00fcnme, planlama, ara\u00e7 kullanma ve yan\u0131t olu\u015fturma ad\u0131mlar\u0131n\u0131 i\u00e7erir. Durumu izlenebilir ve y\u00f6netilebilir.<\/li>\n<\/ul>\n<p>Bu bile\u015fenlerin entegrasyonu sayesinde, geli\u015ftiriciler kendi \u00f6zel i\u015f mant\u0131klar\u0131n\u0131 ve veri kaynaklar\u0131n\u0131 ajana kolayca ba\u011flayabilir, b\u00f6ylece ajan\u0131n yeteneklerini \u00f6nemli \u00f6l\u00e7\u00fcde geni\u015fletebilirler. \u00d6zellikle, Agents SDK&#8217;n\u0131n sundu\u011fu bu yap\u0131l\u0131 yakla\u015f\u0131m, geli\u015ftirme s\u00fcrecini h\u0131zland\u0131r\u0131rken, karma\u015f\u0131k ajan davran\u0131\u015flar\u0131n\u0131n y\u00f6netilmesini de kolayla\u015ft\u0131r\u0131r.<\/p>\n<h3>FastAPI Neden M\u00fckemmel Bir Ortak?<\/h3>\n<p>Yapay zeka ajanlar\u0131n\u0131 bir \u00fcretim ortam\u0131nda \u00e7al\u0131\u015ft\u0131rmak s\u00f6z konusu oldu\u011funda, onlar\u0131 g\u00fcvenilir, h\u0131zl\u0131 ve \u00f6l\u00e7eklenebilir bir aray\u00fczle sunmak \u00e7ok \u00f6nemlidir. \u0130\u015fte tam da bu noktada FastAPI devreye girer. FastAPI, modern Python tabanl\u0131, y\u00fcksek performansl\u0131 bir web framework&#8217;\u00fcd\u00fcr ve asenkron yetenekleri sayesinde geleneksel web \u00e7er\u00e7evelerine k\u0131yasla \u00f6nemli avantajlar sunar.<\/p>\n<p>FastAPI&#8217;nin ba\u015fl\u0131ca faydalar\u0131 \u015funlard\u0131r:<\/p>\n<ul>\n<li><strong>Y\u00fcksek Performans:<\/strong> Starlette ve Pydantic \u00fczerine in\u015fa edilmi\u015f olmas\u0131 sayesinde, FastAPI ola\u011fan\u00fcst\u00fc h\u0131z sunar. Bu, \u00f6zellikle ger\u00e7ek zamanl\u0131 yapay zeka etkile\u015fimlerinde kritik bir fakt\u00f6rd\u00fcr.<\/li>\n<li><strong>Asenkron Destek:<\/strong> Python&#8217;\u0131n <code>async\/await<\/code> yap\u0131s\u0131n\u0131 do\u011fal olarak destekler. Bu, ayn\u0131 anda birden fazla iste\u011fi i\u015fleyebilmesi anlam\u0131na gelir; ajanlar\u0131n LLM \u00e7a\u011fr\u0131lar\u0131 gibi I\/O yo\u011fun i\u015flemleri beklerken uygulaman\u0131n engellenmemesini sa\u011flar.<\/li>\n<li><strong>Otomatik Dok\u00fcmantasyon:<\/strong> FastAPI, OpenAPI (Swagger) ve ReDoc standartlar\u0131na uygun otomatik interaktif API dok\u00fcmantasyonu olu\u015fturur. Bu, geli\u015ftiriciler ve di\u011fer tak\u0131mlar i\u00e7in API&#8217;yi anlamay\u0131 ve kullanmay\u0131 son derece kolayla\u015ft\u0131r\u0131r.<\/li>\n<li><strong>Veri Do\u011frulama ve Serile\u015ftirme:<\/strong> Pydantic modelleri sayesinde, gelen istek verileri otomatik olarak do\u011frulan\u0131r ve tip ipu\u00e7lar\u0131 kullan\u0131larak g\u00fc\u00e7l\u00fc tip denetimi sa\u011flan\u0131r. Bu, hatalar\u0131 azalt\u0131r ve kodun g\u00fcvenilirli\u011fini art\u0131r\u0131r.<\/li>\n<li><strong>Geli\u015ftirici Deneyimi:<\/strong> Modern Python dil \u00f6zelliklerini ve tip ipu\u00e7lar\u0131n\u0131 aktif olarak kullan\u0131r, bu da daha okunakl\u0131, bak\u0131m\u0131 kolay ve hata oran\u0131 d\u00fc\u015f\u00fck kod yazmay\u0131 te\u015fvik eder.<\/li>\n<\/ul>\n<p>Bir yapay zeka ajan\u0131 i\u00e7in bir API aray\u00fcz\u00fc olu\u015ftururken, FastAPI&#8217;nin sundu\u011fu bu \u00f6zellikler sayesinde hem h\u0131zl\u0131 bir geli\u015ftirme s\u00fcreci hem de gelece\u011fe d\u00f6n\u00fck, bak\u0131m\u0131 kolay bir altyap\u0131 elde edilmi\u015f olur. Agents SDK&#8217;dan gelen yan\u0131tlar\u0131 i\u015flemek ve kullan\u0131c\u0131lara sunmak i\u00e7in m\u00fckemmel bir k\u00f6pr\u00fc g\u00f6revi g\u00f6r\u00fcr.<\/p>\n<h2>\u00dcretim Ortam\u0131na Haz\u0131r Bir Mimari Nas\u0131l Olu\u015fturulur?<\/h2>\n<p>Bir yapay zeka ajan\u0131n\u0131 sadece lokal makinenizde \u00e7al\u0131\u015ft\u0131rmak ile onu binlerce kullan\u0131c\u0131n\u0131n e\u015f zamanl\u0131 olarak eri\u015fti\u011fi bir \u00fcretim ortam\u0131nda sorunsuz bir \u015fekilde \u00e7al\u0131\u015ft\u0131rmak aras\u0131nda b\u00fcy\u00fck farklar vard\u0131r. \u00dcretim ortam\u0131na haz\u0131r bir mimari, sadece fonksiyonellik de\u011fil, ayn\u0131 zamanda \u00f6l\u00e7eklenebilirlik, hata tolerans\u0131, g\u00fcvenlik ve izlenebilirlik gibi operasyonel gereksinimleri de kar\u015f\u0131lamal\u0131d\u0131r.<\/p>\n<p>\u0130deal bir mimari a\u015fa\u011f\u0131daki temel bile\u015fenleri i\u00e7erir:<\/p>\n<ol>\n<li><strong>FastAPI Backend:<\/strong> Kullan\u0131c\u0131 isteklerini alan, ajan ile etkile\u015fime giren ve yan\u0131tlar\u0131 geri d\u00f6nd\u00fcren ana API katman\u0131.<\/li>\n<li><strong>OpenAI Agents SDK:<\/strong> Ajan\u0131n kendisi, LLM ile etkile\u015fim kurar, ara\u00e7lar\u0131 \u00e7a\u011f\u0131r\u0131r ve i\u015f ak\u0131\u015f\u0131n\u0131 y\u00f6netir.<\/li>\n<li><strong>Veri Taban\u0131:<\/strong> Kullan\u0131c\u0131 verileri, ajan konu\u015fma ge\u00e7mi\u015fleri (threads), \u00f6zel ara\u00e7 konfig\u00fcrasyonlar\u0131 ve di\u011fer persistent verilerin depolanmas\u0131 i\u00e7in (PostgreSQL, MongoDB vb.).<\/li>\n<li><strong>Mesaj Kuyru\u011fu (Opsiyonel ama \u00d6nerilen):<\/strong> Ajanlar\u0131n uzun s\u00fcren veya asenkron i\u015flemlerini y\u00f6netmek i\u00e7in (Redis, RabbitMQ, Kafka). Bu, API yan\u0131t s\u00fcrelerini k\u0131salt\u0131rken arka planda yo\u011fun i\u015flemleri y\u00fcr\u00fctmeyi sa\u011flar.<\/li>\n<li><strong>\u00d6nbellekleme Katman\u0131:<\/strong> Tekrarlayan veya pahal\u0131 LLM \u00e7a\u011fr\u0131lar\u0131 i\u00e7in yan\u0131tlar\u0131 \u00f6nbelle\u011fe alarak performans\u0131 art\u0131rmak ve maliyeti d\u00fc\u015f\u00fcrmek i\u00e7in (Redis).<\/li>\n<li><strong>Kimlik Do\u011frulama ve Yetkilendirme Servisi:<\/strong> API&#8217;nize eri\u015fimi g\u00fcvenli hale getirmek i\u00e7in (JWT, OAuth2).<\/li>\n<li><strong>G\u00fcnl\u00fckleme ve \u0130zleme Sistemleri:<\/strong> Uygulaman\u0131n ve ajanlar\u0131n davran\u0131\u015f\u0131n\u0131 izlemek, performans sorunlar\u0131n\u0131 tespit etmek ve hatalar\u0131 ay\u0131klamak i\u00e7in (ELK Stack, Prometheus, Grafana).<\/li>\n<\/ol>\n<p>Bu bile\u015fenler, mod\u00fcler ve da\u011f\u0131t\u0131k bir yap\u0131 olu\u015fturarak her bir par\u00e7an\u0131n ba\u011f\u0131ms\u0131z olarak \u00f6l\u00e7eklenmesine ve y\u00f6netilmesine olanak tan\u0131r. \u00d6rne\u011fin, FastAPI sunucunuzu yatay olarak \u00f6l\u00e7ekleyebilirken, mesaj kuyru\u011fu sayesinde ajan i\u015flemlerinizin yo\u011funlu\u011funu y\u00f6netebilirsiniz. Ayr\u0131ca, g\u00fcvenlik duvarlar\u0131, y\u00fck dengeleyiciler ve container orkestrasyon ara\u00e7lar\u0131 (Docker, Kubernetes) gibi ek katmanlar da bu mimarinin \u00f6nemli par\u00e7alar\u0131d\u0131r.<\/p>\n<div class=\"expert-tip\">\n  Uzman \u0130pucu: Mimarinizi tasarlarken, gelecekteki olas\u0131 b\u00fcy\u00fcme ve de\u011fi\u015fiklikleri g\u00f6z \u00f6n\u00fcnde bulundurarak esnek bir yap\u0131 kurmaya \u00f6zen g\u00f6sterin. Mikroservis yakla\u015f\u0131m\u0131, farkl\u0131 ajan t\u00fcrlerini veya ara\u00e7 setlerini ayr\u0131 ayr\u0131 y\u00f6netmenizi kolayla\u015ft\u0131rabilir.\n<\/div>\n<h2>OpenAI Agents SDK ile Ak\u0131ll\u0131 Ara\u00e7lar ve \u0130\u015f Ak\u0131\u015flar\u0131 Nas\u0131l Geli\u015ftirilir?<\/h2>\n<p>OpenAI Agents SDK&#8217;n\u0131n kalbinde, ajanlar\u0131n d\u0131\u015f d\u00fcnya ile etkile\u015fim kurmas\u0131n\u0131 sa\u011flayan &#8220;ara\u00e7lar&#8221; (tools) bulunur. Bu ara\u00e7lar, ajan\u0131n bir web sitesini taramas\u0131, bir e-posta g\u00f6ndermesi, bir veritaban\u0131n\u0131 g\u00fcncellemesi veya bir harici API&#8217;ye istek g\u00f6ndermesi gibi g\u00f6revleri yerine getirmesine olanak tan\u0131r. \u0130\u015fte ad\u0131m ad\u0131m nas\u0131l geli\u015ftirilece\u011fi:<\/p>\n<h3>Ad\u0131m 1: Temel Bir Ajan Olu\u015fturma<\/h3>\n<p>\u00d6ncelikle, OpenAI Assistant&#8217;\u0131n\u0131z\u0131 tan\u0131mlaman\u0131z gerekir. Bu, ajan\u0131n kimli\u011fini, modelini, talimatlar\u0131n\u0131 ve ba\u015flang\u0131\u00e7ta kullanabilece\u011fi ara\u00e7lar\u0131 i\u00e7erir.<\/p>\n<pre><code>\nimport os\nfrom openai import OpenAI\n\nclient = OpenAI(api_key=os.environ.get(\"OPENAI_API_KEY\"))\n\n# Asistan\u0131 olu\u015ftur (veya mevcut bir tanesini y\u00fckle)\n# E\u011fer daha \u00f6nce bir asistan ID'niz varsa onu kullanabilirsiniz.\n# assistant_id = \"asst_...\"\n# assistant = client.beta.assistants.retrieve(assistant_id)\n\nassistant = client.beta.assistants.create(\n    name=\"Ak\u0131ll\u0131 Yard\u0131mc\u0131 Ajan\",\n    instructions=\"Sen ak\u0131ll\u0131 bir yard\u0131mc\u0131 ajans\u0131n. Kullan\u0131c\u0131n\u0131n sorular\u0131n\u0131 yan\u0131tla ve gerekti\u011finde ara\u00e7lar\u0131 kullan.\",\n    model=\"gpt-4o\", # Veya gpt-3.5-turbo, gpt-4-turbo gibi ba\u015fka bir model\n    tools=[] # Ba\u015flang\u0131\u00e7ta ara\u00e7s\u0131z bir ajan\n)\n\nprint(f\"Assistant ID: {assistant.id}\")\n# Bu ID'yi daha sonra kullanmak \u00fczere kaydedin\n<\/pre>\n<p><\/code><\/p>\n<h3>Ad\u0131m 2: \u00d6zel Ara\u00e7lar (Custom Tools) Tan\u0131mlama<\/h3>\n<p>Ajan\u0131n\u0131z\u0131n belirli g\u00f6revleri yerine getirmesi i\u00e7in \u00f6zel ara\u00e7lar olu\u015fturman\u0131z gerekir. Bu ara\u00e7lar, ajan\u0131n \u00e7a\u011f\u0131rabilece\u011fi belirli Python fonksiyonlar\u0131na kar\u015f\u0131l\u0131k gelir. Her arac\u0131n bir ismi, a\u00e7\u0131klamas\u0131 ve alabilece\u011fi parametreleri olmal\u0131d\u0131r.<\/p>\n<p>\u00d6rnek olarak, basit bir hava durumu sorgulama arac\u0131 olu\u015ftural\u0131m:<\/p>\n<pre><code>\n# tools.py dosyas\u0131 gibi d\u00fc\u015f\u00fcnebilirsiniz\ndef get_current_weather(location: str, unit: str = \"celsius\"):\n    \"\"\"\n    Belirtilen konumdaki mevcut hava durumunu al\u0131r.\n    Parameters:\n    - location: Hava durumu sorgulanacak \u015fehir veya konum.\n    - unit: S\u0131cakl\u0131k birimi (celsius veya fahrenheit). Varsay\u0131lan celsius.\n    \"\"\"\n    # Buras\u0131 ger\u00e7ek bir hava durumu API'si \u00e7a\u011fr\u0131s\u0131 yapabilir\n    # Basitlik i\u00e7in statik bir yan\u0131t d\u00f6nd\u00fcrelim\n    if \"ankara\" in location.lower():\n        return f\"{location} konumunda hava a\u00e7\u0131k, 25 derece {unit}.\"\n    elif \"istanbul\" in location.lower():\n        return f\"{location} konumunda hava bulutlu, 22 derece {unit}.\"\n    else:\n        return f\"{location} i\u00e7in hava durumu bilgisi bulunamad\u0131.\"\n\n# Bu fonksiyonlar\u0131 ajan\u0131n kullanabilmesi i\u00e7in kaydetmeliyiz\n# OpenAI'nin bekledi\u011fi formatta bir liste olu\u015fturulur\navailable_tools = {\n    \"get_current_weather\": get_current_weather,\n}\n\n# Ajan tan\u0131m\u0131na eklenecek ara\u00e7 \u015femas\u0131\ntool_schema = {\n    \"type\": \"function\",\n    \"function\": {\n        \"name\": \"get_current_weather\",\n        \"description\": \"Belirtilen konumdaki mevcut hava durumunu al\u0131r.\",\n        \"parameters\": {\n            \"type\": \"object\",\n            \"properties\": {\n                \"location\": {\n                    \"type\": \"string\",\n                    \"description\": \"Hava durumu sorgulanacak \u015fehir veya konum.\",\n                },\n                \"unit\": {\n                    \"type\": \"string\",\n                    \"enum\": [\"celsius\", \"fahrenheit\"],\n                    \"description\": \"S\u0131cakl\u0131k birimi (celsius veya fahrenheit).\",\n                },\n            },\n            \"required\": [\"location\"],\n        },\n    }\n}\n<\/pre>\n<p><\/code><\/p>\n<p>Bu \u015femay\u0131 kullanarak ajan\u0131n\u0131z\u0131 g\u00fcncelleyebilir veya yeni bir ajan olu\u015ftururken ekleyebilirsiniz:<\/p>\n<pre><code>\n# Asistan\u0131 g\u00fcncellemek i\u00e7in\nassistant = client.beta.assistants.update(\n    assistant_id=assistant.id,\n    tools=[tool_schema]\n)\nprint(f\"Assistant g\u00fcncellendi, yeni ara\u00e7lar eklendi: {assistant.tools}\")\n<\/pre>\n<p><\/code><\/p>\n<h3>Ad\u0131m 3: Ajan\u0131n Bu Ara\u00e7lar\u0131 Kullanmas\u0131n\u0131 Sa\u011flama ve \u0130\u015f Ak\u0131\u015f\u0131n\u0131 Y\u00f6netme<\/h3>\n<p>Bir kullan\u0131c\u0131 bir istekte bulundu\u011funda, ajan\u0131n bu iste\u011fi i\u015fleyip uygun arac\u0131 se\u00e7mesi ve \u00e7al\u0131\u015ft\u0131rmas\u0131 gerekir. Bu s\u00fcre\u00e7, \"Thread\" ve \"Run\" mekanizmalar\u0131yla y\u00f6netilir.<\/p>\n<pre><code>\n# Thread olu\u015fturma veya mevcut bir taneyi kullanma\nthread = client.beta.threads.create()\nprint(f\"Thread ID: {thread.id}\")\n\n# Kullan\u0131c\u0131n\u0131n mesaj\u0131n\u0131 ekleme\nmessage = client.beta.threads.messages.create(\n    thread_id=thread.id,\n    role=\"user\",\n    content=\"Ankara'da hava durumu nas\u0131l?\"\n)\n\n# Run ba\u015flatma\nrun = client.beta.threads.runs.create(\n    thread_id=thread.id,\n    assistant_id=assistant.id\n)\n\n# Run'\u0131n durumunu izleme\nwhile run.status == \"queued\" or run.status == \"in_progress\":\n    run = client.beta.threads.runs.retrieve(\n        thread_id=thread.id,\n        run_id=run.id\n    )\n    # print(f\"Run durumu: {run.status}\")\n    # time.sleep(1) # K\u0131sa bir bekleme\n\nif run.status == \"requires_action\":\n    print(\"Ajan bir ara\u00e7 \u00e7a\u011f\u0131rmas\u0131 gerekiyor.\")\n    tool_outputs = []\n    for tool_call in run.required_action.submit_tool_outputs.tool_calls:\n        function_name = tool_call.function.name\n        arguments = json.loads(tool_call.function.arguments)\n        print(f\"Ajan {function_name} arac\u0131n\u0131 \u015fu arg\u00fcmanlarla \u00e7a\u011f\u0131r\u0131yor: {arguments}\")\n\n        # Arac\u0131 yerel olarak \u00e7al\u0131\u015ft\u0131r\n        if function_name in available_tools:\n            output = available_tools[function_name](**arguments)\n            tool_outputs.append({\n                \"tool_call_id\": tool_call.id,\n                \"output\": output,\n            })\n            print(f\"Ara\u00e7 \u00e7\u0131kt\u0131s\u0131: {output}\")\n        else:\n            print(f\"Hata: {function_name} arac\u0131 bulunamad\u0131.\")\n            tool_outputs.append({\n                \"tool_call_id\": tool_call.id,\n                \"output\": \"Hata: Ara\u00e7 bulunamad\u0131.\",\n            })\n    \n    # Ara\u00e7 \u00e7\u0131kt\u0131lar\u0131n\u0131 ajana geri g\u00f6nder\n    run = client.beta.threads.runs.submit_tool_outputs(\n        thread_id=thread.id,\n        run_id=run.id,\n        tool_outputs=tool_outputs\n    )\n\n    # \u00c7\u0131kt\u0131lar g\u00f6nderildikten sonra run'\u0131n tamamlanmas\u0131n\u0131 bekle\n    while run.status == \"queued\" or run.status == \"in_progress\":\n        run = client.beta.threads.runs.retrieve(\n            thread_id=thread.id,\n            run_id=run.id\n        )\n        # print(f\"Run durumu (tool output sonras\u0131): {run.status}\")\n        # time.sleep(1)\n\nif run.status == \"completed\":\n    messages = client.beta.threads.messages.list(\n        thread_id=thread.id\n    )\n    for msg in reversed(messages.data): # En son mesaj en altta\n        if msg.role == \"assistant\":\n            print(f\"Ajan: {msg.content[0].text.value}\")\n            break\nelse:\n    print(f\"Run beklenmedik bir durumla sonu\u00e7land\u0131: {run.status}\")\n<\/pre>\n<p><\/code><\/p>\n<p>Bu \u00f6rnekte, ajan bir hava durumu sorusu ald\u0131\u011f\u0131nda, otomatik olarak <code>get_current_weather<\/code> arac\u0131n\u0131 \u00e7a\u011f\u0131rmas\u0131 gerekti\u011fini anlar. Bu arac\u0131 \u00e7al\u0131\u015ft\u0131rd\u0131ktan sonra elde etti\u011fi \u00e7\u0131kt\u0131y\u0131 tekrar ajana g\u00f6nderir ve ajan bu \u00e7\u0131kt\u0131ya g\u00f6re kullan\u0131c\u0131ya nihai yan\u0131t\u0131 verir. Bu ak\u0131\u015f, ajan\u0131n karma\u015f\u0131k g\u00f6revleri otonom bir \u015fekilde yerine getirmesini sa\u011flar.<\/p>\n<h2>FastAPI ile Ajan Entegrasyonu ve API Tasar\u0131m\u0131 Nas\u0131l Yap\u0131l\u0131r?<\/h2>\n<p>\u015eimdi s\u0131ra, olu\u015fturdu\u011fumuz OpenAI ajan\u0131yla etkile\u015fim kuracak g\u00fcvenilir bir FastAPI servisi olu\u015fturmaya geldi. Bu servis, kullan\u0131c\u0131 isteklerini alacak, ajan\u0131 tetikleyecek, ara\u00e7lar\u0131 y\u00f6netecek ve ajandan gelen yan\u0131tlar\u0131 kullan\u0131c\u0131ya geri d\u00f6nd\u00fcrecektir.<\/p>\n<h3>Ad\u0131m 1: FastAPI Projesi Ba\u015flatma ve Temel Kurulum<\/h3>\n<p>\u00d6ncelikle, FastAPI'yi ve OpenAI k\u00fct\u00fcphanesini kurman\u0131z gerekiyor:<\/p>\n<pre><code>\npip install fastapi uvicorn openai python-dotenv\n<\/pre>\n<p><\/code><\/p>\n<p>Proje yap\u0131s\u0131 i\u00e7in bir <code>main.py<\/code> dosyas\u0131 olu\u015ftural\u0131m ve gerekli ortam de\u011fi\u015fkenlerini (.env dosyas\u0131 ile) y\u00fckleyelim.<\/p>\n<pre><code>\nfrom fastapi import FastAPI, HTTPException\nfrom pydantic import BaseModel\nfrom openai import OpenAI\nimport os\nimport time\nimport json\nfrom dotenv import load_dotenv\n\nload_dotenv() # .env dosyas\u0131ndaki de\u011fi\u015fkenleri y\u00fckle\n\napp = FastAPI(title=\"AI Ajan Servisi\",\n              description=\"OpenAI Agents SDK ve FastAPI ile geli\u015ftirilmi\u015f \u00fcretim seviyesi AI ajan servisi.\")\n\nclient = OpenAI(api_key=os.environ.get(\"OPENAI_API_KEY\"))\n\n# Asistan ID'sini ortam de\u011fi\u015fkeninden veya do\u011frudan tan\u0131mlay\u0131n\nASSISTANT_ID = os.environ.get(\"OPENAI_ASSISTANT_ID\")\nif not ASSISTANT_ID:\n    raise ValueError(\"OPENAI_ASSISTANT_ID ortam de\u011fi\u015fkeni ayarlanmad\u0131.\")\n\n# \u00d6nceki b\u00f6l\u00fcmde tan\u0131mlad\u0131\u011f\u0131m\u0131z ara\u00e7 fonksiyonlar\u0131\ndef get_current_weather(location: str, unit: str = \"celsius\"):\n    # ... (\u00f6nceki koddan kopyala) ...\n    if \"ankara\" in location.lower():\n        return f\"{location} konumunda hava a\u00e7\u0131k, 25 derece {unit}.\"\n    elif \"istanbul\" in location.lower():\n        return f\"{location} konumunda hava bulutlu, 22 derece {unit}.\"\n    else:\n        return f\"{location} i\u00e7in hava durumu bilgisi bulunamad\u0131.\"\n\navailable_tools = {\n    \"get_current_weather\": get_current_weather,\n}\n\nclass ChatRequest(BaseModel):\n    thread_id: str | None = None\n    message: str\n\nclass ThreadResponse(BaseModel):\n    thread_id: str\n\nclass ChatResponse(BaseModel):\n    thread_id: str\n    response: str\n<\/pre>\n<p><\/code><\/p>\n<h3>Ad\u0131m 2: Endpoint'ler Olu\u015fturma ve Thread Y\u00f6netimi<\/h3>\n<p>Kullan\u0131c\u0131lar\u0131n yeni bir sohbet ba\u015flatmas\u0131 veya mevcut bir sohbete devam etmesi i\u00e7in endpoint'ler tan\u0131mlayal\u0131m. \u0130lk olarak, bir sohbet \"thread\"i olu\u015fturacak bir endpoint:<\/p>\n<pre><code>\n@app.post(\"\/threads\", response_model=ThreadResponse, summary=\"Yeni bir sohbet thread'i olu\u015fturur.\")\nasync def create_new_thread():\n    try:\n        thread = client.beta.threads.create()\n        return ThreadResponse(thread_id=thread.id)\n    except Exception as e:\n        raise HTTPException(status_code=500, detail=f\"Thread olu\u015fturulurken hata olu\u015ftu: {e}\")\n\n@app.post(\"\/chat\", response_model=ChatResponse, summary=\"Belirtilen thread'e mesaj g\u00f6nderir ve ajan yan\u0131t\u0131n\u0131 al\u0131r.\")\nasync def chat_with_agent(request: ChatRequest):\n    if not request.thread_id:\n        raise HTTPException(status_code=400, detail=\"Thread ID bo\u015f b\u0131rak\u0131lamaz.\")\n\n    try:\n        # Mesaj\u0131 thread'e ekle\n        client.beta.threads.messages.create(\n            thread_id=request.thread_id,\n            role=\"user\",\n            content=request.message,\n        )\n\n        # Run'\u0131 ba\u015flat\n        run = client.beta.threads.runs.create(\n            thread_id=request.thread_id,\n            assistant_id=ASSISTANT_ID,\n        )\n\n        # Run durumunu izle ve ara\u00e7lar\u0131 y\u00f6net\n        while run.status == \"queued\" or run.status == \"in_progress\" or run.status == \"requires_action\":\n            run = client.beta.threads.runs.retrieve(\n                thread_id=request.thread_id,\n                run_id=run.id\n            )\n\n            if run.status == \"requires_action\":\n                tool_outputs = []\n                for tool_call in run.required_action.submit_tool_outputs.tool_calls:\n                    function_name = tool_call.function.name\n                    arguments = json.loads(tool_call.function.arguments)\n                    \n                    if function_name in available_tools:\n                        print(f\"DEBUG: Calling tool '{function_name}' with args {arguments}\")\n                        output = available_tools[function_name](**arguments)\n                        tool_outputs.append({\n                            \"tool_call_id\": tool_call.id,\n                            \"output\": output,\n                        })\n                    else:\n                        print(f\"ERROR: Tool '{function_name}' not found.\")\n                        tool_outputs.append({\n                            \"tool_call_id\": tool_call.id,\n                            \"output\": \"Error: Tool not found.\",\n                        })\n                \n                # Ara\u00e7 \u00e7\u0131kt\u0131lar\u0131n\u0131 ajana geri g\u00f6nder\n                client.beta.threads.runs.submit_tool_outputs(\n                    thread_id=request.thread_id,\n                    run_id=run.id,\n                    tool_outputs=tool_outputs\n                )\n                # Durumu tekrar kontrol etmeye devam et\n                time.sleep(1) # K\u0131sa bir bekleme\n                continue # Run'\u0131n yeni durumunu almak i\u00e7in d\u00f6ng\u00fcy\u00fc yeniden ba\u015flat\n\n            time.sleep(1) # K\u0131sa bir bekleme\n\n        if run.status == \"completed\":\n            messages = client.beta.threads.messages.list(\n                thread_id=request.thread_id\n            )\n            assistant_response = \"Yan\u0131t al\u0131namad\u0131.\"\n            for msg in messages.data:\n                if msg.thread_id == request.thread_id and msg.role == \"assistant\":\n                    # Genellikle son mesaj\u0131 almak isteriz\n                    assistant_response = msg.content[0].text.value\n                    break\n            return ChatResponse(thread_id=request.thread_id, response=assistant_response)\n        else:\n            raise HTTPException(status_code=500, detail=f\"Ajan \u00e7al\u0131\u015fmas\u0131 beklenmedik bir durumla sonu\u00e7land\u0131: {run.status}\")\n\n    except Exception as e:\n        raise HTTPException(status_code=500, detail=f\"Sohbet s\u0131ras\u0131nda hata olu\u015ftu: {e}\")\n\n# Uygulamay\u0131 ba\u015flatmak i\u00e7in terminalde: uvicorn main:app --reload\n<\/pre>\n<p><\/code><\/p>\n<h3>Ad\u0131m 3: G\u00fcvenlik ve Kimlik Do\u011frulama<\/h3>\n<p>\u00dcretim ortam\u0131nda API'nizi g\u00fcvenli hale getirmek esast\u0131r. FastAPI, ba\u011f\u0131ml\u0131l\u0131k enjeksiyonu (dependency injection) sayesinde JWT (JSON Web Tokens) veya API anahtarlar\u0131 gibi kimlik do\u011frulama mekanizmalar\u0131n\u0131 kolayca entegre etmenize olanak tan\u0131r. \u00d6rne\u011fin, bir API anahtar\u0131 ile koruma:<\/p>\n<pre><code>\nfrom fastapi import Security, Depends, HTTPException, status\nfrom fastapi.security import APIKeyHeader\n\napi_key_header = APIKeyHeader(name=\"X-API-Key\")\n\nasync def get_api_key(api_key: str = Security(api_key_header)):\n    if api_key == os.environ.get(\"API_KEY\"): # Ortam de\u011fi\u015fkeninizden gelen anahtarla kar\u015f\u0131la\u015ft\u0131r\u0131n\n        return api_key\n    raise HTTPException(\n        status_code=status.HTTP_401_UNAUTHORIZED,\n        detail=\"Ge\u00e7ersiz API Anahtar\u0131\",\n    )\n\n@app.post(\"\/chat\", response_model=ChatResponse, summary=\"Belirtilen thread'e mesaj g\u00f6nderir ve ajan yan\u0131t\u0131n\u0131 al\u0131r.\", dependencies=[Depends(get_api_key)])\nasync def chat_with_agent(request: ChatRequest):\n    # ... (\u00f6nceki kod) ...\n    pass\n<\/pre>\n<p><\/code><\/p>\n<div class=\"expert-tip\">\n  Uzman \u0130pucu: Ger\u00e7ek d\u00fcnya uygulamalar\u0131nda, OpenAI API anahtar\u0131n\u0131z\u0131 sunucu taraf\u0131nda g\u00fcvenli bir \u015fekilde saklay\u0131n ve asla istemci taraf\u0131na if\u015fa etmeyin. Ayr\u0131ca, kullan\u0131c\u0131lar\u0131n\u0131z i\u00e7in farkl\u0131 API anahtarlar\u0131 y\u00f6netmek ve bunlar\u0131 ayr\u0131 ayr\u0131 denetlemek i\u00e7in bir mekanizma kurun.\n<\/div>\n<p>Bu yap\u0131land\u0131rma ile, FastAPI uygulaman\u0131z bir yandan y\u00fcksek performans sunarken, di\u011fer yandan ajanlar\u0131n\u0131z\u0131n g\u00fc\u00e7l\u00fc yeteneklerini kullan\u0131c\u0131lar\u0131n\u0131za g\u00fcvenli bir \u015fekilde ula\u015ft\u0131rabilir. Ajanlar\u0131n ara\u00e7 \u00e7a\u011fr\u0131s\u0131 a\u015famas\u0131, FastAPI'nin asenkron yap\u0131s\u0131 sayesinde bloklanmadan \u00e7al\u0131\u015f\u0131r, bu da di\u011fer gelen isteklerin etkilenmemesini sa\u011flar.<\/p>\n<h2>\u00d6l\u00e7eklenebilirlik ve Hata Y\u00f6netimi \u0130\u00e7in \u0130pu\u00e7lar\u0131 Nelerdir?<\/h2>\n<p>\u00dcretim ortam\u0131nda \u00e7al\u0131\u015fan herhangi bir sistemde \u00f6l\u00e7eklenebilirlik ve sa\u011flam hata y\u00f6netimi olmazsa olmazd\u0131r. AI ajanlar\u0131, \u00f6zellikle LLM \u00e7a\u011fr\u0131lar\u0131n\u0131n gecikmeli olabilmesi ve d\u0131\u015f servis ba\u011f\u0131ml\u0131l\u0131klar\u0131 nedeniyle \u00f6zel dikkat gerektirir.<\/p>\n<h3>Asenkron G\u00f6revler ve Arka Plan \u0130\u015flemleri<\/h3>\n<p>AI ajanlar\u0131, \u00f6zellikle karma\u015f\u0131k g\u00f6revlerde veya birden fazla arac\u0131 kullan\u0131rken uzun s\u00fcrebilir. Kullan\u0131c\u0131n\u0131n bir yan\u0131ta bu kadar uzun s\u00fcre beklemesi kullan\u0131c\u0131 deneyimini olumsuz etkiler. Bu durumu \u00e7\u00f6zmek i\u00e7in asenkron g\u00f6rev kuyruklar\u0131 kullanabiliriz:<\/p>\n<ul>\n<li><strong>Celery ile Arka Plan \u0130\u015fleme:<\/strong> FastAPI iste\u011fini hemen yan\u0131tlay\u0131p, ajan\u0131n as\u0131l i\u015fini Celery gibi bir g\u00f6rev kuyru\u011funa delege edebilirsiniz. Kullan\u0131c\u0131ya bir i\u015flem ID'si d\u00f6nebilir ve kullan\u0131c\u0131 daha sonra bu ID ile ajan\u0131n yan\u0131t\u0131n\u0131 sorgulayabilir. Bu, API sunucunuzun serbest kalmas\u0131n\u0131 ve di\u011fer isteklere hizmet vermeye devam etmesini sa\u011flar.<\/li>\n<li><strong>Webhook'lar:<\/strong> Ajan i\u015flemi tamamland\u0131\u011f\u0131nda, sonucu belirli bir URL'ye (webhook) g\u00f6ndererek kullan\u0131c\u0131y\u0131 veya ba\u015fka bir servisi bilgilendirebilirsiniz.<\/li>\n<\/ul>\n<h3>Da\u011f\u0131t\u0131m ve \u00d6l\u00e7ekleme<\/h3>\n<ul>\n<li><strong>Docker ve Kubernetes:<\/strong> Uygulaman\u0131z\u0131 Docker container'lar\u0131na paketleyerek farkl\u0131 ortamlarda tutarl\u0131 bir \u015fekilde \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flay\u0131n. Kubernetes gibi container orkestrasyon ara\u00e7lar\u0131, FastAPI uygulaman\u0131z\u0131 otomatik olarak \u00f6l\u00e7eklendirmenize, y\u00fcksek eri\u015filebilirlik sa\u011flaman\u0131za ve kaynaklar\u0131 verimli kullanman\u0131za olanak tan\u0131r.<\/li>\n<li><strong>Y\u00fck Dengeleyiciler:<\/strong> Birden fazla FastAPI \u00f6rne\u011fini bir y\u00fck dengeleyici arkas\u0131na yerle\u015ftirerek gelen trafi\u011fi da\u011f\u0131tabilir ve tek bir hata noktas\u0131n\u0131 ortadan kald\u0131rabilirsiniz.<\/li>\n<\/ul>\n<h3>Hata Yakalama ve Yeniden Denemeler<\/h3>\n<p>Harici API'lar veya servisler bazen ge\u00e7ici hatalar verebilir. Bu durumlarda, iyi tasarlanm\u0131\u015f bir hata y\u00f6netimi stratejisi kritik \u00f6nem ta\u015f\u0131r:<\/p>\n<ul>\n<li><strong>Try-Except Bloklar\u0131:<\/strong> Kritik kod bloklar\u0131n\u0131 (\u00f6zellikle harici \u00e7a\u011fr\u0131lar yapanlar\u0131) <code>try-except<\/code> bloklar\u0131 ile sararak beklenmedik hatalar\u0131 yakalay\u0131n ve loglay\u0131n.<\/li>\n<li><strong>Geri Sarma (Exponential Backoff) ile Yeniden Denemeler:<\/strong> API \u00e7a\u011fr\u0131lar\u0131nda veya d\u0131\u015f servis etkile\u015fimlerinde hata oldu\u011funda, hemen tekrar denemek yerine, artan s\u00fcrelerle (\u00f6rne\u011fin 1 sn, 2 sn, 4 sn) yeniden deneme yap\u0131n. Bu, servis \u00fczerindeki y\u00fck\u00fc azalt\u0131r ve ge\u00e7ici sorunlar\u0131n kendi kendine \u00e7\u00f6z\u00fclmesine olanak tan\u0131r. Python'da <code>tenacity<\/code> k\u00fct\u00fcphanesi bu konuda yard\u0131mc\u0131 olabilir.<\/li>\n<\/ul>\n<h3>G\u00fcnl\u00fckleme (Logging) ve \u0130zleme (Monitoring)<\/h3>\n<p>Ajanlar\u0131n\u0131z\u0131n ne yapt\u0131\u011f\u0131n\u0131, nas\u0131l performans g\u00f6sterdi\u011fini ve nerede sorun ya\u015fad\u0131\u011f\u0131n\u0131 anlamak i\u00e7in g\u00fc\u00e7l\u00fc g\u00fcnl\u00fckleme ve izleme sistemleri \u015fartt\u0131r:<\/p>\n<ul>\n<li><strong>Yap\u0131land\u0131r\u0131lm\u0131\u015f G\u00fcnl\u00fckleme:<\/strong> Uygulama, FastAPI istekleri ve ajan etkile\u015fimleri i\u00e7in yap\u0131land\u0131r\u0131lm\u0131\u015f (JSON format\u0131nda) g\u00fcnl\u00fckler kullan\u0131n. Bu g\u00fcnl\u00fckler, ELK Stack (Elasticsearch, Logstash, Kibana) veya Loki gibi ara\u00e7larla kolayca analiz edilebilir.<\/li>\n<li><strong>Metrik Toplama:<\/strong> Prometheus gibi bir metrik toplama arac\u0131 kullanarak API yan\u0131t s\u00fcreleri, hata oranlar\u0131, ajan \u00e7a\u011fr\u0131 say\u0131lar\u0131 gibi metrikleri izleyin. Grafana ile bu metrikleri g\u00f6rselle\u015ftirerek sisteminizin sa\u011fl\u0131\u011f\u0131n\u0131 anl\u0131k olarak takip edebilirsiniz.<\/li>\n<li><strong>U\u00e7tan Uca \u0130zleme (Tracing):<\/strong> OpenTelemetry gibi ara\u00e7larla bir iste\u011fin t\u00fcm bile\u015fenler aras\u0131ndaki yolculu\u011funu izleyerek performans darbo\u011fazlar\u0131n\u0131 veya hatalar\u0131 daha kolay tespit edebilirsiniz.<\/li>\n<\/ul>\n<div class=\"expert-tip\">\n  Uzman \u0130pucu: Haf\u0131za y\u00f6netimi, \u00f6zellikle LLM'lerle \u00e7al\u0131\u015f\u0131rken kritik \u00f6neme sahiptir. Ajan\u0131n\u0131z\u0131n ge\u00e7mi\u015f konu\u015fmalar\u0131 (thread history) \u00e7ok b\u00fcy\u00fcd\u00fc\u011f\u00fcnde maliyetleri ve gecikmeleri art\u0131rabilir. \u00d6nemli bilgileri \u00f6zetleyen veya belirli bir e\u015fi\u011fin \u00fczerindeki eski mesajlar\u0131 silen stratejiler uygulay\u0131n.\n<\/div>\n<h2>Ger\u00e7ek D\u00fcnya Uygulamalar\u0131 ve Vaka Analizi: Ak\u0131ll\u0131 \u0130\u00e7erik \u00dcretim Ajan\u0131<\/h2>\n<p>\u015eimdiye kadar \u00f6\u011frendiklerimizi somutla\u015ft\u0131rmak i\u00e7in, bir pazarlama ekibinin i\u00e7erik \u00fcretim s\u00fcre\u00e7lerini otomatikle\u015ftiren bir \"Ak\u0131ll\u0131 \u0130\u00e7erik \u00dcretim Ajan\u0131\" \u00f6rne\u011fi \u00fczerinde duraca\u011f\u0131z. Bu ajan, pazarlama uzmanlar\u0131n\u0131n blog yaz\u0131lar\u0131, sosyal medya g\u00f6nderileri veya \u00fcr\u00fcn a\u00e7\u0131klamalar\u0131 gibi i\u00e7erikleri daha h\u0131zl\u0131 ve etkili bir \u015fekilde olu\u015fturmas\u0131na yard\u0131mc\u0131 olacak.<\/p>\n<h3>Senaryo: Otomatik Blog Yaz\u0131s\u0131 Tasla\u011f\u0131 Olu\u015fturma<\/h3>\n<p>Bir pazarlama ekibi, belirli bir konu hakk\u0131nda blog yaz\u0131s\u0131 tasla\u011f\u0131na ihtiya\u00e7 duyuyor. Ajan\u0131n g\u00f6revi, verilen konuya dayanarak bir taslak olu\u015fturmak, ilgili anahtar kelimeleri belirlemek ve hatta g\u00f6rsel \u00f6nerileri sunmakt\u0131r.<\/p>\n<h3>Ajan\u0131n G\u00f6revleri ve Ak\u0131\u015f<\/h3>\n<ol>\n<li><strong>Konu Analizi ve Anahtar Kelime Ara\u015ft\u0131rmas\u0131:<\/strong> Kullan\u0131c\u0131n\u0131n verdi\u011fi ana konuyu al\u0131r ve internette ara\u015ft\u0131rma yaparak ilgili alt ba\u015fl\u0131klar ile SEO dostu anahtar kelimeleri belirler.<\/li>\n<li><strong>Taslak Olu\u015fturma:<\/strong> Belirlenen anahtar kelimeler ve alt ba\u015fl\u0131klarla tutarl\u0131, bilgilendirici bir blog yaz\u0131s\u0131 tasla\u011f\u0131 (giri\u015f, ana g\u00f6vde, sonu\u00e7) olu\u015fturur.<\/li>\n<li><strong>G\u00f6rsel \u00d6nerileri:<\/strong> Yaz\u0131n\u0131n i\u00e7eri\u011fine uygun, lisansl\u0131 g\u00f6rsel kaynaklardan (\u00f6rne\u011fin, Unsplash API) g\u00f6rsel \u00f6nerileri sunar.<\/li>\n<\/ol>\n<h3>Kullan\u0131lan Ara\u00e7lar (Tools)<\/h3>\n<p>Bu ak\u0131\u015f\u0131 ger\u00e7ekle\u015ftirmek i\u00e7in ajan\u0131m\u0131z\u0131n a\u015fa\u011f\u0131daki \u00f6zel ara\u00e7lara ihtiyac\u0131 olacakt\u0131r:<\/p>\n<ul>\n<li><code>web_research_tool(query: str) -> str<\/code>: Verilen sorguya g\u00f6re internetten bilgi toplayan bir ara\u00e7 (\u00f6rne\u011fin, SerpAPI veya \u00f6zel bir web kaz\u0131y\u0131c\u0131).<\/li>\n<li><code>keyword_analyzer_tool(text: str) -> List[str]<\/code>: Verilen bir metin veya konu i\u00e7in pop\u00fcler anahtar kelimeleri ve SEO metriklerini bulan bir ara\u00e7 (\u00f6rne\u011fin, Google Keyword Planner API veya \u00f6zel bir algoritma).<\/li>\n<li><code>image_suggestion_tool(topic: str) -> List[Dict]<\/code>: Verilen konuya g\u00f6re uygun g\u00f6rselleri arayan ve URL'lerini d\u00f6nen bir ara\u00e7 (\u00f6rne\u011fin, Unsplash API).<\/li>\n<\/ul>\n<p>Bu ara\u00e7lar, t\u0131pk\u0131 hava durumu \u00f6rne\u011finde oldu\u011fu gibi, Python fonksiyonlar\u0131 olarak tan\u0131mlan\u0131r ve OpenAI Agents SDK'ya sunulur.<\/p>\n<h3>FastAPI Entegrasyonu<\/h3>\n<p>Kullan\u0131c\u0131 (pazarlama uzman\u0131), FastAPI \u00fczerinden ajana bir istek g\u00f6nderir. \u00d6rne\u011fin:<\/p>\n<pre><code>\nPOST \/generate_blog_post\nHeaders: X-API-Key: YOUR_API_KEY\nBody:\n{\n  \"thread_id\": \"optional_existing_thread_id\",\n  \"topic\": \"Yapay Zeka Destekli \u0130\u00e7erik Pazarlamas\u0131n\u0131n Gelece\u011fi\"\n}\n<\/pre>\n<p><\/code><\/p>\n<p>FastAPI endpoint'i bu iste\u011fi al\u0131r, ajan\u0131 tetikler ve ajan\u0131n yukar\u0131daki ara\u00e7lar\u0131 kullanarak bir blog tasla\u011f\u0131 ve g\u00f6rsel \u00f6nerileri olu\u015fturmas\u0131n\u0131 bekler. Ajan\u0131n i\u015fi bitti\u011finde, FastAPI bu \u00e7\u0131kt\u0131y\u0131 toplayarak kullan\u0131c\u0131ya JSON format\u0131nda bir yan\u0131t d\u00f6ner.<\/p>\n<pre><code>\n{\n  \"thread_id\": \"thread_abc123\",\n  \"title\": \"Yapay Zeka Destekli \u0130\u00e7erik Pazarlamas\u0131n\u0131n Gelece\u011fi\",\n  \"outline\": [\n    {\"heading\": \"Giri\u015f: \u0130\u00e7erik Pazarlamas\u0131nda D\u00f6n\u00fc\u015f\u00fcm\", \"content\": \"...\"},\n    {\"heading\": \"AI Ajanlar\u0131 Nelerdir ve Neden \u00d6nemlidir?\", \"content\": \"...\"},\n    {\"heading\": \"Ak\u0131ll\u0131 \u0130\u00e7erik \u00dcretim S\u00fcreci\", \"content\": \"...\"},\n    {\"heading\": \"Gelecek Perspektifleri ve Zorluklar\", \"content\": \"...\"},\n    {\"heading\": \"Sonu\u00e7: \u0130nsan ve AI \u0130\u015fbirli\u011fi\", \"content\": \"...\"}\n  ],\n  \"keywords\": [\"AI \u0130\u00e7erik Pazarlamas\u0131\", \"Yapay Zeka Blog Yazar\u0131\", \"Otomatik \u0130\u00e7erik \u00dcretimi\"],\n  \"image_suggestions\": [\n    {\"url\": \"https:\/\/images.unsplash.com\/photo-...\", \"description\": \"Robot el yaz\u0131yor\"},\n    {\"url\": \"https:\/\/images.unsplash.com\/photo-...\", \"description\": \"\u0130\u015fbirli\u011fi yapan insanlar ve AI\"}\n  ]\n}\n<\/pre>\n<p><\/code><\/p>\n<h3>Faydalar\u0131 ve Elde Edilen Sonu\u00e7lar<\/h3>\n<p>Bu Ak\u0131ll\u0131 \u0130\u00e7erik \u00dcretim Ajan\u0131 sayesinde, pazarlama ekibi:<\/p>\n<ul>\n<li><strong>Verimlilik Art\u0131\u015f\u0131:<\/strong> Blog tasla\u011f\u0131 olu\u015fturma ve anahtar kelime ara\u015ft\u0131rmas\u0131 gibi zaman al\u0131c\u0131 g\u00f6revlerde \u00f6nemli bir zaman tasarrufu sa\u011flar.<\/li>\n<li><strong>Tutarl\u0131l\u0131k:<\/strong> Ajan\u0131n belirli kurallara ve verilere dayanarak i\u00e7erik olu\u015fturmas\u0131, marka sesinde ve kalitesinde tutarl\u0131l\u0131k sa\u011flar.<\/li>\n<li><strong>Yarat\u0131c\u0131l\u0131k Deste\u011fi:<\/strong> Ajan, farkl\u0131 bak\u0131\u015f a\u00e7\u0131lar\u0131 veya anahtar kelime kombinasyonlar\u0131 \u00f6nererek insan yarat\u0131c\u0131l\u0131\u011f\u0131n\u0131 destekler.<\/li>\n<li><strong>\u00d6l\u00e7eklenebilirlik:<\/strong> Onlarca farkl\u0131 konu i\u00e7in ayn\u0131 anda taslak olu\u015fturabilir, bu da b\u00fcy\u00fck i\u00e7erik kampanyalar\u0131 i\u00e7in idealdir.<\/li>\n<\/ul>\n<p>Bu vaka analizi, OpenAI Agents SDK ve FastAPI kombinasyonunun sadece teorik bir yakla\u015f\u0131m olmad\u0131\u011f\u0131n\u0131, ayn\u0131 zamanda ger\u00e7ek i\u015f problemlerini \u00e7\u00f6zmek i\u00e7in pratik ve g\u00fc\u00e7l\u00fc bir \u00e7\u00f6z\u00fcm sundu\u011funu a\u00e7\u0131k\u00e7a g\u00f6stermektedir.<\/p>\n<h2>Sonu\u00e7 ve Gelecek Perspektifleri<\/h2>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn h\u0131zla de\u011fi\u015fen dijital d\u00fcnyas\u0131nda, yapay zeka ajanlar\u0131, i\u015fletmelerin ve geli\u015ftiricilerin karma\u015f\u0131k sorunlar\u0131 \u00e7\u00f6zmek ve verimlili\u011fi art\u0131rmak i\u00e7in kulland\u0131\u011f\u0131 temel ara\u00e7lardan biri haline gelmi\u015ftir. Bu makale boyunca, OpenAI Agents SDK'n\u0131n sundu\u011fu g\u00fcc\u00fc FastAPI'nin performans ve \u00f6l\u00e7eklenebilirlik yetenekleriyle birle\u015ftirerek \u00fcretim ortam\u0131na haz\u0131r, ak\u0131ll\u0131 ajanlar geli\u015ftirmenin inceliklerini detayl\u0131 bir \u015fekilde ele ald\u0131k.<\/p>\n<p>\u00d6zellikle, Agents SDK'n\u0131n ara\u00e7 entegrasyonu ve i\u015f ak\u0131\u015f\u0131 y\u00f6netimi becerileri ile FastAPI'nin asenkron yap\u0131s\u0131, otomatik dok\u00fcmantasyonu ve sa\u011flam g\u00fcvenlik \u00f6zelliklerinin birle\u015fimi, geli\u015ftiricilere sadece fonksiyonel de\u011fil, ayn\u0131 zamanda bak\u0131m\u0131 kolay ve \u00f6l\u00e7eklenebilir \u00e7\u00f6z\u00fcmler olu\u015fturma imkan\u0131 tan\u0131r. Bir ak\u0131ll\u0131 i\u00e7erik \u00fcretim ajan\u0131 gibi ger\u00e7ek d\u00fcnya senaryolar\u0131, bu teknolojilerin potansiyelini a\u00e7\u0131k\u00e7a ortaya koymu\u015ftur.<\/p>\n<p>Gelecekte, yapay zeka ajanlar\u0131n\u0131n daha otonom, daha karma\u015f\u0131k g\u00f6revleri yerine getirebilen ve farkl\u0131 alanlarda daha derinlemesine uzmanla\u015fabilen sistemler haline gelmesi beklenmektedir. Makine \u00f6\u011frenimi teknikleriyle ajanlar\u0131n s\u00fcrekli \u00f6\u011frenme yeteneklerinin art\u0131r\u0131lmas\u0131, daha rafine karar verme s\u00fcre\u00e7leri ve adaptif davran\u0131\u015flar, bu alandaki ilerlemelerin temelini olu\u015fturacakt\u0131r. OpenAI Agents SDK ve FastAPI gibi modern ara\u00e7larla donanm\u0131\u015f geli\u015ftiriciler, bu heyecan verici gelece\u011fin mimarlar\u0131 olacaklard\u0131r. Bu teknolojileri benimseyerek, manuel s\u00fcre\u00e7leri otomatikle\u015ftirecek, m\u00fc\u015fteri deneyimini d\u00f6n\u00fc\u015ft\u00fcrecek ve i\u015f d\u00fcnyas\u0131nda \u00e7\u0131\u011f\u0131r a\u00e7acak yenilik\u00e7i uygulamalar geli\u015ftirebiliriz.<\/p>\n<div class=\"faq-section\">\n<h3>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<div class=\"faq-question\">\n        1. OpenAI Agents SDK'y\u0131 kullanmak maliyetli mi?\n    <\/div>\n<div class=\"faq-answer\">\n<p>OpenAI Agents SDK's\u0131 \u00fccretsizdir ancak altta yatan B\u00fcy\u00fck Dil Modeli (LLM) API \u00e7a\u011fr\u0131lar\u0131 (\u00f6rne\u011fin GPT-4o, GPT-3.5 Turbo) ve depolama (dosyalar, asistanlar, thread'ler) i\u00e7in \u00fccretlendirilirsiniz. Maliyetler, kullan\u0131lan modelin t\u00fcr\u00fcne, belirte\u00e7 (token) say\u0131s\u0131na ve API \u00e7a\u011fr\u0131lar\u0131n\u0131z\u0131n hacmine g\u00f6re de\u011fi\u015fir. \u00dcretim ortam\u0131nda maliyetleri optimize etmek i\u00e7in \u00f6nbellekleme, prompt m\u00fchendisli\u011fi ve daha k\u00fc\u00e7\u00fck, daha ucuz modelleri kullanmak gibi stratejiler uygulayabilirsiniz.<\/p>\n<\/p><\/div>\n<div class=\"faq-question\">\n        2. FastAPI yerine ba\u015fka bir framework kullan\u0131labilir mi?\n    <\/div>\n<div class=\"faq-answer\">\n<p>Evet, elbette kullan\u0131labilir. Django, Flask veya Node.js (Express.js), Go (Gin) gibi di\u011fer web framework'leri de OpenAI Agents SDK ile entegre edilebilir. Ancak FastAPI, \u00f6zellikle asenkron i\u015flemleri do\u011fal olarak desteklemesi, y\u00fcksek performans sunmas\u0131 ve otomatik API dok\u00fcmantasyonu sa\u011flamas\u0131 nedeniyle ger\u00e7ek zamanl\u0131 ve I\/O yo\u011fun ajan uygulamalar\u0131 i\u00e7in olduk\u00e7a pop\u00fcler ve uygun bir se\u00e7imdir.<\/p>\n<\/p><\/div>\n<div class=\"faq-question\">\n        3. Ajanlar\u0131n karars\u0131z davran\u0131\u015flar\u0131n\u0131 nas\u0131l y\u00f6netebilirim?\n    <\/div>\n<div class=\"faq-answer\">\n<p>Ajanlar\u0131n \"hal\u00fcsinasyon\" gibi karars\u0131z davran\u0131\u015flar\u0131n\u0131 y\u00f6netmek i\u00e7in birka\u00e7 y\u00f6ntem bulunur. Bunlar aras\u0131nda daha iyi ve daha spesifik sistem talimatlar\u0131 (instructions) sa\u011flamak, ajana sunulan ara\u00e7lar\u0131 do\u011fru ve a\u00e7\u0131klay\u0131c\u0131 bir \u015fekilde tan\u0131mlamak, \u00e7\u0131kt\u0131lar\u0131 do\u011frulamak i\u00e7in harici kontroller (validation layers) eklemek ve gerekti\u011finde insan m\u00fcdahalesine olanak tan\u0131yan bir geri bildirim d\u00f6ng\u00fcs\u00fc olu\u015fturmak yer al\u0131r. Ayr\u0131ca, daha yeni ve daha yetenekli LLM modellerini kullanmak da davran\u0131\u015f tutarl\u0131l\u0131\u011f\u0131n\u0131 art\u0131rabilir.<\/p>\n<\/p><\/div>\n<div class=\"faq-question\">\n        4. Veri g\u00fcvenli\u011fi ve gizlili\u011fi konusunda nelere dikkat etmeliyim?\n    <\/div>\n<div class=\"faq-answer\">\n<p>Veri g\u00fcvenli\u011fi ve gizlili\u011fi, AI ajanlar\u0131 geli\u015ftirirken en \u00f6nemli konulardan biridir. Hassas verileri OpenAI API'sine g\u00f6ndermeden \u00f6nce anonimle\u015ftirmeyi veya \u015fifrelemeyi d\u00fc\u015f\u00fcnmelisiniz. API anahtarlar\u0131n\u0131z\u0131 g\u00fcvenli bir \u015fekilde saklay\u0131n ve asla istemci taraf\u0131na if\u015fa etmeyin. Ayr\u0131ca, OpenAI'nin veri kullan\u0131m politikalar\u0131n\u0131 dikkatlice inceleyin ve uygulaman\u0131z\u0131n GDPR, KVKK gibi ilgili veri koruma d\u00fczenlemelerine uygun oldu\u011fundan emin olun. \u00d6zellikle m\u00fc\u015fteri verileriyle \u00e7al\u0131\u015f\u0131rken, veri saklama politikalar\u0131n\u0131z\u0131 ve eri\u015fim kontrollerinizi titizlikle uygulay\u0131n.<\/p>\n<\/p><\/div>\n<div class=\"faq-question\">\n        5. \u00d6zel LLM'ler ile OpenAI Agents SDK kullan\u0131labilir mi?\n    <\/div>\n<div class=\"faq-answer\">\n<p>OpenAI Agents SDK, do\u011fas\u0131 gere\u011fi OpenAI'nin kendi Assistant API'si ve dolay\u0131s\u0131yla kendi LLM'leriyle \u00e7al\u0131\u015fmak \u00fczere tasarlanm\u0131\u015ft\u0131r. Ancak, kendi \u00f6zel LLM'inizi kullanmak istiyorsan\u0131z, Agents SDK'n\u0131n \"Tool\" mekanizmas\u0131n\u0131 kullanarak kendi LLM'inize API \u00e7a\u011fr\u0131lar\u0131 yapacak \u00f6zel bir ara\u00e7 olu\u015fturabilir ve bu arac\u0131 Agent'a sunabilirsiniz. Bu, bir k\u00f6pr\u00fc g\u00f6revi g\u00f6rerek \u00f6zel LLM'inizin g\u00fcc\u00fcn\u00fc Agents SDK'n\u0131n orkestrasyon yetenekleriyle birle\u015ftirmenize olanak tan\u0131r. Ancak, do\u011frudan entegrasyon yerine bir ara katman gerektirir.<\/p>\n<\/p><\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"Yapay zeka teknolojileri g\u00fcnl\u00fck hayat\u0131m\u0131za entegre olmaya devam ederken, karma\u015f\u0131k g\u00f6revleri otonom olarak yerine getirebilen ak\u0131ll\u0131 ajanlar geli\u015ftirmek&hellip;","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":[1342],"tags":[],"class_list":{"0":"post-32303","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ai","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>\u00dcretim Ortam\u0131na Haz\u0131r Yapay Zeka Ajanlar\u0131: OpenAI Agents SDK ve FastAPI ile Geli\u015ftirme<\/title>\n<meta name=\"description\" content=\"Yapay zeka teknolojileri g\u00fcnl\u00fck hayat\u0131m\u0131za entegre olmaya devam ederken, karma\u015f\u0131k g\u00f6revleri otonom olarak yerine getirebilen ak\u0131ll\u0131 ajanlar geli\u015ftirmek kritik \u00f6nem ta\u015f\u0131yor. Bu makalede, OpenAI Agents SDK ve FastAPI kullanarak \u00fcretim ortam\u0131na haz\u0131r, \u00f6l\u00e7eklenebilir ve g\u00fcvenli yapay zeka ajanlar\u0131 nas\u0131l in\u015fa edece\u011finizi ad\u0131m ad\u0131m ke\u015ffedece\u011fiz.\" \/>\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\/uretim-ortamina-hazir-yapay-zeka-ajanlari-openai-agents-sdk-ve-fastapi-ile-gelistirme\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u00dcretim Ortam\u0131na Haz\u0131r Yapay Zeka Ajanlar\u0131: OpenAI Agents SDK ve FastAPI ile Geli\u015ftirme\" \/>\n<meta property=\"og:description\" content=\"Yapay zeka teknolojileri g\u00fcnl\u00fck hayat\u0131m\u0131za entegre olmaya devam ederken, karma\u015f\u0131k g\u00f6revleri otonom olarak yerine getirebilen ak\u0131ll\u0131 ajanlar geli\u015ftirmek kritik \u00f6nem ta\u015f\u0131yor. Bu makalede, OpenAI Agents SDK ve FastAPI kullanarak \u00fcretim ortam\u0131na haz\u0131r, \u00f6l\u00e7eklenebilir ve g\u00fcvenli yapay zeka ajanlar\u0131 nas\u0131l in\u015fa edece\u011finizi ad\u0131m ad\u0131m ke\u015ffedece\u011fiz.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/uretim-ortamina-hazir-yapay-zeka-ajanlari-openai-agents-sdk-ve-fastapi-ile-gelistirme\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-20T03:01:26+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=\"26 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/uretim-ortamina-hazir-yapay-zeka-ajanlari-openai-agents-sdk-ve-fastapi-ile-gelistirme\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/uretim-ortamina-hazir-yapay-zeka-ajanlari-openai-agents-sdk-ve-fastapi-ile-gelistirme\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"\u00dcretim Ortam\u0131na Haz\u0131r Yapay Zeka Ajanlar\u0131: OpenAI Agents SDK ve FastAPI ile Geli\u015ftirme\",\"datePublished\":\"2025-10-20T03:01:26+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/uretim-ortamina-hazir-yapay-zeka-ajanlari-openai-agents-sdk-ve-fastapi-ile-gelistirme\/\"},\"wordCount\":3798,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"AI\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/uretim-ortamina-hazir-yapay-zeka-ajanlari-openai-agents-sdk-ve-fastapi-ile-gelistirme\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/uretim-ortamina-hazir-yapay-zeka-ajanlari-openai-agents-sdk-ve-fastapi-ile-gelistirme\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/uretim-ortamina-hazir-yapay-zeka-ajanlari-openai-agents-sdk-ve-fastapi-ile-gelistirme\/\",\"name\":\"\u00dcretim Ortam\u0131na Haz\u0131r Yapay Zeka Ajanlar\u0131: OpenAI Agents SDK ve FastAPI ile Geli\u015ftirme\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-20T03:01:26+00:00\",\"description\":\"Yapay zeka teknolojileri g\u00fcnl\u00fck hayat\u0131m\u0131za entegre olmaya devam ederken, karma\u015f\u0131k g\u00f6revleri otonom olarak yerine getirebilen ak\u0131ll\u0131 ajanlar geli\u015ftirmek kritik \u00f6nem ta\u015f\u0131yor. Bu makalede, OpenAI Agents SDK ve FastAPI kullanarak \u00fcretim ortam\u0131na haz\u0131r, \u00f6l\u00e7eklenebilir ve g\u00fcvenli yapay zeka ajanlar\u0131 nas\u0131l in\u015fa edece\u011finizi ad\u0131m ad\u0131m ke\u015ffedece\u011fiz.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/uretim-ortamina-hazir-yapay-zeka-ajanlari-openai-agents-sdk-ve-fastapi-ile-gelistirme\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/uretim-ortamina-hazir-yapay-zeka-ajanlari-openai-agents-sdk-ve-fastapi-ile-gelistirme\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/uretim-ortamina-hazir-yapay-zeka-ajanlari-openai-agents-sdk-ve-fastapi-ile-gelistirme\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u00dcretim Ortam\u0131na Haz\u0131r Yapay Zeka Ajanlar\u0131: OpenAI Agents SDK ve FastAPI ile Geli\u015ftirme\"}]},{\"@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":"\u00dcretim Ortam\u0131na Haz\u0131r Yapay Zeka Ajanlar\u0131: OpenAI Agents SDK ve FastAPI ile Geli\u015ftirme","description":"Yapay zeka teknolojileri g\u00fcnl\u00fck hayat\u0131m\u0131za entegre olmaya devam ederken, karma\u015f\u0131k g\u00f6revleri otonom olarak yerine getirebilen ak\u0131ll\u0131 ajanlar geli\u015ftirmek kritik \u00f6nem ta\u015f\u0131yor. Bu makalede, OpenAI Agents SDK ve FastAPI kullanarak \u00fcretim ortam\u0131na haz\u0131r, \u00f6l\u00e7eklenebilir ve g\u00fcvenli yapay zeka ajanlar\u0131 nas\u0131l in\u015fa edece\u011finizi ad\u0131m ad\u0131m ke\u015ffedece\u011fiz.","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\/uretim-ortamina-hazir-yapay-zeka-ajanlari-openai-agents-sdk-ve-fastapi-ile-gelistirme\/","og_locale":"tr_TR","og_type":"article","og_title":"\u00dcretim Ortam\u0131na Haz\u0131r Yapay Zeka Ajanlar\u0131: OpenAI Agents SDK ve FastAPI ile Geli\u015ftirme","og_description":"Yapay zeka teknolojileri g\u00fcnl\u00fck hayat\u0131m\u0131za entegre olmaya devam ederken, karma\u015f\u0131k g\u00f6revleri otonom olarak yerine getirebilen ak\u0131ll\u0131 ajanlar geli\u015ftirmek kritik \u00f6nem ta\u015f\u0131yor. Bu makalede, OpenAI Agents SDK ve FastAPI kullanarak \u00fcretim ortam\u0131na haz\u0131r, \u00f6l\u00e7eklenebilir ve g\u00fcvenli yapay zeka ajanlar\u0131 nas\u0131l in\u015fa edece\u011finizi ad\u0131m ad\u0131m ke\u015ffedece\u011fiz.","og_url":"https:\/\/fatihsoysal.com\/blog\/uretim-ortamina-hazir-yapay-zeka-ajanlari-openai-agents-sdk-ve-fastapi-ile-gelistirme\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-20T03:01:26+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"26 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/uretim-ortamina-hazir-yapay-zeka-ajanlari-openai-agents-sdk-ve-fastapi-ile-gelistirme\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/uretim-ortamina-hazir-yapay-zeka-ajanlari-openai-agents-sdk-ve-fastapi-ile-gelistirme\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"\u00dcretim Ortam\u0131na Haz\u0131r Yapay Zeka Ajanlar\u0131: OpenAI Agents SDK ve FastAPI ile Geli\u015ftirme","datePublished":"2025-10-20T03:01:26+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/uretim-ortamina-hazir-yapay-zeka-ajanlari-openai-agents-sdk-ve-fastapi-ile-gelistirme\/"},"wordCount":3798,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["AI"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/uretim-ortamina-hazir-yapay-zeka-ajanlari-openai-agents-sdk-ve-fastapi-ile-gelistirme\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/uretim-ortamina-hazir-yapay-zeka-ajanlari-openai-agents-sdk-ve-fastapi-ile-gelistirme\/","url":"https:\/\/fatihsoysal.com\/blog\/uretim-ortamina-hazir-yapay-zeka-ajanlari-openai-agents-sdk-ve-fastapi-ile-gelistirme\/","name":"\u00dcretim Ortam\u0131na Haz\u0131r Yapay Zeka Ajanlar\u0131: OpenAI Agents SDK ve FastAPI ile Geli\u015ftirme","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-20T03:01:26+00:00","description":"Yapay zeka teknolojileri g\u00fcnl\u00fck hayat\u0131m\u0131za entegre olmaya devam ederken, karma\u015f\u0131k g\u00f6revleri otonom olarak yerine getirebilen ak\u0131ll\u0131 ajanlar geli\u015ftirmek kritik \u00f6nem ta\u015f\u0131yor. Bu makalede, OpenAI Agents SDK ve FastAPI kullanarak \u00fcretim ortam\u0131na haz\u0131r, \u00f6l\u00e7eklenebilir ve g\u00fcvenli yapay zeka ajanlar\u0131 nas\u0131l in\u015fa edece\u011finizi ad\u0131m ad\u0131m ke\u015ffedece\u011fiz.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/uretim-ortamina-hazir-yapay-zeka-ajanlari-openai-agents-sdk-ve-fastapi-ile-gelistirme\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/uretim-ortamina-hazir-yapay-zeka-ajanlari-openai-agents-sdk-ve-fastapi-ile-gelistirme\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/uretim-ortamina-hazir-yapay-zeka-ajanlari-openai-agents-sdk-ve-fastapi-ile-gelistirme\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"\u00dcretim Ortam\u0131na Haz\u0131r Yapay Zeka Ajanlar\u0131: OpenAI Agents SDK ve FastAPI ile Geli\u015ftirme"}]},{"@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\/32303","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=32303"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32303\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=32303"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=32303"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=32303"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}