{"id":408,"title":" Apache APISIX - AISIX AI Gateway","content":"<div id=\"model-response-message-contentr_bc5f551856da52a0\" class=\"markdown markdown-main-panel enable-luminous-fast-follows enable-updated-hr-color stronger\" dir=\"ltr\" aria-busy=\"false\" aria-live=\"off\">\n<p data-path-to-node=\"0\"><strong data-path-to-node=\"0\" data-index-in-node=\"0\">AISIX<\/strong>, Apache APISIX projesinin arkas\u0131ndaki ekip olan <strong data-path-to-node=\"0\" data-index-in-node=\"54\">API7.ai<\/strong> taraf\u0131ndan geli\u015ftirilen, B&uuml;y&uuml;k Dil Modelleri (LLM) ve yapay zek&acirc; ajanlar\u0131 (AI Agents) i&ccedil;in &ouml;zel olarak tasarlanm\u0131\u015f <strong data-path-to-node=\"0\" data-index-in-node=\"177\">a&ccedil;\u0131k kaynakl\u0131 bir yapay zek&acirc; a\u011f ge&ccedil;ididir (AI Gateway)<\/strong>.<\/p>\n<p data-path-to-node=\"1\"><strong data-path-to-node=\"1\" data-index-in-node=\"0\">Rust dili ile s\u0131f\u0131rdan in\u015fa edilen<\/strong> bu proje, geleneksel API a\u011f ge&ccedil;itlerinin (API Gateway) yapay zek&acirc; trafik bi&ccedil;imlerine (&ouml;rne\u011fin ak\u0131\u015f\/streaming verileri, y&uuml;ksek kaynak t&uuml;ketimi, token bazl\u0131 &uuml;cretlendirmeler vb.) tam uyum sa\u011flayamamas\u0131 sorununu &ccedil;&ouml;zmek amac\u0131yla &uuml;retilmi\u015ftir.<\/p>\n<p data-path-to-node=\"2\">Projenin &ouml;ne &ccedil;\u0131kan temel &ouml;zellikleri ve sa\u011flad\u0131\u011f\u0131 avantajlar \u015funlard\u0131r:<\/p>\n<h3 data-path-to-node=\"3\">1. Tek API ile T&uuml;m Modellere Eri\u015fim (Unified API)<\/h3>\n<p data-path-to-node=\"4\">AISIX, arkadaki model sa\u011flay\u0131c\u0131s\u0131 ne olursa olsun (OpenAI, Anthropic, Google Gemini, AWS Bedrock, DeepSeek vb.) d\u0131\u015far\u0131ya <strong data-path-to-node=\"4\" data-index-in-node=\"121\">OpenAI ile uyumlu tek bir API<\/strong> sunar. Bu sayede kodunuzda kulland\u0131\u011f\u0131n\u0131z SDK'yi veya <code data-path-to-node=\"4\" data-index-in-node=\"204\">base_url<\/code> bilgisini de\u011fi\u015ftirmeden, sadece model ad\u0131n\u0131 de\u011fi\u015ftirerek farkl\u0131 LLM sa\u011flay\u0131c\u0131lar\u0131 aras\u0131nda ge&ccedil;i\u015f yapabilirsiniz. A\u011f ge&ccedil;idi, gelen istekleri ilgili servis sa\u011flay\u0131c\u0131s\u0131n\u0131n format\u0131na otomatik olarak d&ouml;n&uuml;\u015ft&uuml;r&uuml;r.<\/p>\n<h3 data-path-to-node=\"5\">2. Rust ile Y&uuml;ksek Performans<\/h3>\n<p data-path-to-node=\"6\">Geleneksel a\u011f ge&ccedil;itlerinin aksine AISIX, Rust dilinde yaz\u0131lm\u0131\u015f tek bir statik ikili dosya (static binary) olarak &ccedil;al\u0131\u015f\u0131r.<\/p>\n<ul data-path-to-node=\"7\">\n<li>\n<p data-path-to-node=\"7,0,0\"><strong data-path-to-node=\"7,0,0\" data-index-in-node=\"0\">D&uuml;\u015f&uuml;k Gecikme:<\/strong> Yan\u0131tlar\u0131n anl\u0131k &uuml;retildi\u011fi yapay zek&acirc; uygulamalar\u0131nda (SSE - Server-Sent Events ak\u0131\u015flar\u0131nda) gecikmeyi en aza indirir.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"7,1,0\"><strong data-path-to-node=\"7,1,0\" data-index-in-node=\"0\">Kilitlenmesiz Yap\u0131 (Lock-free Config):<\/strong> Sistem istekleri i\u015flerken konfig&uuml;rasyon de\u011fi\u015fikliklerini duraklama olmadan, an\u0131nda y&uuml;kleyebilir.<\/p>\n<\/li>\n<\/ul>\n<h3 data-path-to-node=\"8\">3. Geli\u015fmi\u015f Trafik Kontrol&uuml; ve G&uuml;venlik (Guardrails)<\/h3>\n<p data-path-to-node=\"9\">Yapay zek&acirc; modellerinin \u015firket i&ccedil;i kullan\u0131m\u0131nda veya d\u0131\u015far\u0131ya sunulmas\u0131nda ihtiya&ccedil; duyulan kurumsal kontroller yerle\u015fik olarak gelir:<\/p>\n<ul data-path-to-node=\"10\">\n<li>\n<p data-path-to-node=\"10,0,0\"><strong data-path-to-node=\"10,0,0\" data-index-in-node=\"0\">G&uuml;venlik Duvarlar\u0131 (Guardrails):<\/strong> Modele girdi (input) g&ouml;nderilmeden &ouml;nce veya modelden &ccedil;\u0131kt\u0131 (output) al\u0131nd\u0131ktan sonra g&uuml;venlik politikalar\u0131n\u0131 &ccedil;al\u0131\u015ft\u0131r\u0131r. \u0130stem d\u0131\u015f\u0131 veya zararl\u0131 i&ccedil;erikleri, veri s\u0131z\u0131nt\u0131lar\u0131n\u0131 (PII) engelleyebilir.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"10,1,0\"><strong data-path-to-node=\"10,1,0\" data-index-in-node=\"0\">B&uuml;t&ccedil;e ve H\u0131z S\u0131n\u0131rlar\u0131 (Rate Limiting &amp; Budgets):<\/strong> Token bazl\u0131 maliyet kontrol&uuml; yapman\u0131z\u0131 sa\u011flar. Belirlenen harcama limitlerine ula\u015f\u0131ld\u0131\u011f\u0131nda uyar\u0131 verebilir veya trafi\u011fi durdurabilir.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"10,2,0\"><strong data-path-to-node=\"10,2,0\" data-index-in-node=\"0\">&Ouml;nbelle\u011fe Alma (Caching):<\/strong> Benzer yapay zek&acirc; isteklerini &ouml;nbelle\u011fe alarak hem yan\u0131t s&uuml;resini d&uuml;\u015f&uuml;r&uuml;r hem de API maliyetlerini ciddi oranda azalt\u0131r.<\/p>\n<\/li>\n<\/ul>\n<h3 data-path-to-node=\"11\">4. G&ouml;zlemlenebilirlik (Observability)<\/h3>\n<p data-path-to-node=\"12\">Yapay zek&acirc; trafi\u011finin ne kadar token harcad\u0131\u011f\u0131n\u0131, yan\u0131t s&uuml;relerini, hata oranlar\u0131n\u0131 ve harcanan b&uuml;t&ccedil;eyi anl\u0131k olarak izlemenizi sa\u011flar. OpenTelemetry (OTLP), Datadog veya nesne depolama (Object Storage) sistemlerine log ve izleme (trace) verilerini aktarabilir.<\/p>\n<h3 data-path-to-node=\"13\">5. Mimarisi (Data Plane &amp; Control Plane)<\/h3>\n<p data-path-to-node=\"14\">AISIX, mimari olarak iki ba\u011f\u0131ms\u0131z par&ccedil;adan olu\u015fur:<\/p>\n<ul data-path-to-node=\"15\">\n<li>\n<p data-path-to-node=\"15,0,0\"><strong data-path-to-node=\"15,0,0\" data-index-in-node=\"0\">Veri D&uuml;zlemi (Data Plane):<\/strong> \u0130stekleri i\u015fleyen, Rust ile yaz\u0131lm\u0131\u015f, durumsuz (stateless) ve yatayda kolayca &ouml;l&ccedil;eklenebilen hafif proxy katman\u0131d\u0131r.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"15,1,0\"><strong data-path-to-node=\"15,1,0\" data-index-in-node=\"0\">Kontrol D&uuml;zlemi (Control Plane):<\/strong> Dinamik konfig&uuml;rasyonu y&ouml;netmek i&ccedil;in <strong data-path-to-node=\"15,1,0\" data-index-in-node=\"70\">etcd<\/strong> altyap\u0131s\u0131n\u0131 kullan\u0131r. Y&ouml;netici API'si (Admin API) arac\u0131l\u0131\u011f\u0131yla modeller, API anahtarlar\u0131 ve kurallar a\u011f ge&ccedil;idi yeniden ba\u015flat\u0131lmadan ger&ccedil;ek zamanl\u0131 olarak g&uuml;ncellenebilir. \u0130&ccedil;erisinde React tabanl\u0131 bir y&ouml;netim paneli ve modelleri test etmek i&ccedil;in bir <em data-path-to-node=\"15,1,0\" data-index-in-node=\"324\">Chat Playground<\/em> bar\u0131nd\u0131r\u0131r.<\/p>\n<\/li>\n<\/ul>\n<h3 data-path-to-node=\"16\">Lisans ve Bulut Entegrasyonu<\/h3>\n<ul data-path-to-node=\"17\">\n<li>\n<p data-path-to-node=\"17,0,0\"><strong data-path-to-node=\"17,0,0\" data-index-in-node=\"0\">Apache-2.0 Lisans\u0131:<\/strong> Projenin &ccedil;ekirdek kodlar\u0131 (Data Plane) tamamen a&ccedil;\u0131k kaynakl\u0131d\u0131r, &uuml;cretsiz olarak kendi sunucular\u0131n\u0131zda (Self-hosted) veya Kubernetes &uuml;zerinde &ccedil;al\u0131\u015ft\u0131rabilirsiniz.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"17,1,0\"><strong data-path-to-node=\"17,1,0\" data-index-in-node=\"0\">AISIX Cloud:<\/strong> Geli\u015fmi\u015f ekip y&ouml;netimi, merkezi b&uuml;t&ccedil;elendirme, denetim g&uuml;nl&uuml;kleri (audit logs) ve haz\u0131r bir kontrol paneli aray&uuml;z&uuml; isteyen i\u015fletmeler i&ccedil;in API7, \"AISIX Cloud\" ad\u0131nda y&ouml;netilen bir SaaS (bulut) s&uuml;r&uuml;m&uuml; de sunmaktad\u0131r.<\/p>\n<\/li>\n<\/ul>\n<p data-path-to-node=\"18\"><strong data-path-to-node=\"18\" data-index-in-node=\"0\">GitHub Sayfas\u0131:<\/strong> <!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><a class=\"ng-star-inserted\" href=\"https:\/\/github.com\/api7\/aisix\" target=\"_blank\" rel=\"noopener\" data-hveid=\"0\" data-ved=\"0CAAQ_4QMahgKEwjK-LDRu82VAxUAAAAAHQAAAAAQhgE\">github.com\/api7\/aisix<\/a><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><\/p>\n<p data-path-to-node=\"18\">&nbsp;<\/p>\n<div id=\"model-response-message-contentr_23853f93a4640822\" class=\"markdown markdown-main-panel enable-luminous-fast-follows enable-updated-hr-color stronger\" dir=\"ltr\" aria-busy=\"false\" aria-live=\"polite\">\n<p data-path-to-node=\"0\">AISIX a\u011f ge&ccedil;idinin ger&ccedil;ek hayatta nas\u0131l kullan\u0131laca\u011f\u0131n\u0131 anlamak i&ccedil;in basit bir <strong data-path-to-node=\"0\" data-index-in-node=\"79\">Senaryo<\/strong> ve bu senaryoya ait <strong data-path-to-node=\"0\" data-index-in-node=\"107\">\u0130stek\/Yan\u0131t<\/strong> &ouml;rne\u011fine g&ouml;z atal\u0131m.<\/p>\n<h3 data-path-to-node=\"1\">&Ouml;rnek Senaryo: &Ccedil;oklu Yapay Zek&acirc; Sa\u011flay\u0131c\u0131s\u0131 Kullan\u0131m\u0131 (Model Ge&ccedil;i\u015fi)<\/h3>\n<p data-path-to-node=\"2\">\u015eirketiniz b&uuml;nyesinde bir chatbot geli\u015ftirdi\u011finizi ve uygulaman\u0131z\u0131n normalde <strong data-path-to-node=\"2\" data-index-in-node=\"77\">OpenAI (GPT-4o)<\/strong> kulland\u0131\u011f\u0131n\u0131 d&uuml;\u015f&uuml;nelim. Ancak maliyetleri d&uuml;\u015f&uuml;rmek veya alternatifleri test etmek i&ccedil;in baz\u0131 istekleri <strong data-path-to-node=\"2\" data-index-in-node=\"195\">Google Gemini<\/strong> veya <strong data-path-to-node=\"2\" data-index-in-node=\"214\">DeepSeek<\/strong> modeline y&ouml;nlendirmek istiyorsunuz.<\/p>\n<p data-path-to-node=\"3\">AISIX olmadan, kodunuza her iki sa\u011flay\u0131c\u0131n\u0131n da SDK'sini eklemeniz ve gelen iste\u011fe g&ouml;re farkl\u0131 kod bloklar\u0131 &ccedil;al\u0131\u015ft\u0131rman\u0131z gerekir. <strong data-path-to-node=\"3\" data-index-in-node=\"131\">AISIX ile ise kodunuzu hi&ccedil; de\u011fi\u015ftirmeden<\/strong> sadece a\u011f ge&ccedil;idine g&ouml;nderdi\u011finiz <code data-path-to-node=\"3\" data-index-in-node=\"205\">model<\/code> parametresini de\u011fi\u015ftirmeniz yeterlidir.<\/p>\n<h3 data-path-to-node=\"5\">1. AISIX Yap\u0131land\u0131rmas\u0131 (Control Plane \/ Admin API)<\/h3>\n<p data-path-to-node=\"6\">\u0130lk olarak AISIX'e arkadaki yapay zek&acirc; sa\u011flay\u0131c\u0131lar\u0131n\u0131 (Upstreams) ve API anahtarlar\u0131n\u0131 bir kez tan\u0131mlars\u0131n\u0131z. (Bu i\u015flem genellikle AISIX aray&uuml;z&uuml;nden veya API ile yap\u0131l\u0131r):<\/p>\n<ul data-path-to-node=\"7\">\n<li>\n<p data-path-to-node=\"7,0,0\"><code data-path-to-node=\"7,0,0\" data-index-in-node=\"0\">openai-backend<\/code> -&gt; OpenAI API anahtar\u0131n\u0131z ile ba\u011fl\u0131.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"7,1,0\"><code data-path-to-node=\"7,1,0\" data-index-in-node=\"0\">gemini-backend<\/code> -&gt; Google AI Studio anahtar\u0131n\u0131z ile ba\u011fl\u0131.<\/p>\n<\/li>\n<\/ul>\n<h3 data-path-to-node=\"9\">2. Uygulaman\u0131zdan \u0130stek G&ouml;nderme (Client Request)<\/h3>\n<p data-path-to-node=\"10\">Uygulaman\u0131z (kodunuz), OpenAI SDK'sini kullanmaya devam eder ancak istekleri direkt OpenAI'a de\u011fil, kendi sunucunuzda &ccedil;al\u0131\u015fan <strong data-path-to-node=\"10\" data-index-in-node=\"126\">AISIX<\/strong> a\u011f ge&ccedil;idine y&ouml;nlendirir (<code data-path-to-node=\"10\" data-index-in-node=\"157\">base_url<\/code> de\u011fi\u015ftirilir).<\/p>\n<h4 data-path-to-node=\"11\">&Ouml;rnek \u0130stek (cURL ile):<\/h4>\n<p data-path-to-node=\"12\">A\u015fa\u011f\u0131daki istekte dikkat ederseniz <code data-path-to-node=\"12\" data-index-in-node=\"35\">model<\/code> olarak <code data-path-to-node=\"12\" data-index-in-node=\"48\">gemini-2.5-flash<\/code> talep ediliyor ancak istek format\u0131 tamamen OpenAI standartlar\u0131ndad\u0131r (Chat Completions API).<\/p>\n<!----><!----><!----><!----><!----><!----><!----><!---->\n<div class=\"code-block ng-tns-c4069305417-22 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation\" data-hveid=\"0\" data-ved=\"0CAAQhtANahgKEwjK-LDRu82VAxUAAAAAHQAAAAAQlQE\"><!---->\n<div class=\"formatted-code-block-internal-container ng-tns-c4069305417-22\">\n<div class=\"animated-opacity ng-tns-c4069305417-22\">\n<div class=\"code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c4069305417-22 ng-star-inserted\"><span class=\"ng-tns-c4069305417-22\">Bash<\/span>\n<div class=\"buttons ng-tns-c4069305417-22 ng-star-inserted\"><!----><!----><button class=\"mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted\" aria-label=\"Kodu indir\"><!----><!----><!----><!----><\/button><!----><!----><!----><!----><!----><!----><!----><!----><!----><button class=\"mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted\" aria-label=\"Kodu kopyala\"><!----><!----><!----><!----><\/button><!----><!----><!----><!----><!----><!----><\/div>\n<!----><!----><\/div>\n<!---->\n<pre class=\"ng-tns-c4069305417-22\"><code class=\"code-container formatted ng-tns-c4069305417-22\" role=\"text\" data-test-id=\"code-content\">curl http:\/\/localhost:9080\/v1\/chat\/completions \\\n  -H <span class=\"hljs-string\">\"Content-Type: application\/json\"<\/span> \\\n  -H <span class=\"hljs-string\">\"Authorization: Bearer aisix-ornek-api-anahtari\"<\/span> \\\n  -d <span class=\"hljs-string\">'{\n    \"model\": \"gemini-2.5-flash\",\n    \"messages\": [\n      {\n        \"role\": \"user\",\n        \"content\": \"Rust programlama dili neden bu kadar pop&uuml;ler?\"\n      }\n    ],\n    \"stream\": false\n  }'<\/span>\n<\/code><\/pre>\n<!----><\/div>\n<\/div>\n<\/div>\n<!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!---->\n<h3 data-path-to-node=\"15\">3. Arka Planda Ne Oluyor? (AISIX'in G&ouml;revi)<\/h3>\n<ol start=\"1\" data-path-to-node=\"16\">\n<li>\n<p data-path-to-node=\"16,0,0\"><strong data-path-to-node=\"16,0,0\" data-index-in-node=\"0\">\u0130ste\u011fi Kar\u015f\u0131lama ve Do\u011frulama:<\/strong> AISIX iste\u011fi <code data-path-to-node=\"16,0,0\" data-index-in-node=\"44\">9080<\/code> portundan al\u0131r. <code data-path-to-node=\"16,0,0\" data-index-in-node=\"65\">aisix-ornek-api-anahtari<\/code> bilgisini kontrol eder. E\u011fer bu kullan\u0131c\u0131n\u0131n (veya uygulaman\u0131n) token b&uuml;t&ccedil;esi dolduysa iste\u011fi an\u0131nda reddeder (Maliyet Kontrol&uuml;).<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"16,1,0\"><strong data-path-to-node=\"16,1,0\" data-index-in-node=\"0\">&Ouml;nbellek Kontrol&uuml; (Caching):<\/strong> Ayn\u0131 soru daha &ouml;nce sorulduysa, arkadaki yapay zek&acirc; modeline hi&ccedil; gitmeden kay\u0131tl\u0131 yan\u0131t\u0131 d&ouml;ner (H\u0131z ve Tasarruf).<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"16,2,0\"><strong data-path-to-node=\"16,2,0\" data-index-in-node=\"0\">Protokol D&ouml;n&uuml;\u015ft&uuml;rme (Translation):<\/strong> \u0130stek &ouml;nbellekte yoksa, AISIX <code data-path-to-node=\"16,2,0\" data-index-in-node=\"65\">gemini-2.5-flash<\/code> modelinin Google Gemini'a ait oldu\u011funu anlar. OpenAI format\u0131ndaki bu JSON verisini otomatik olarak Google Gemini API'sinin bekledi\u011fi formata d&ouml;n&uuml;\u015ft&uuml;r&uuml;r.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"16,3,0\"><strong data-path-to-node=\"16,3,0\" data-index-in-node=\"0\">G&uuml;venlik Kontrol&uuml; (Guardrails):<\/strong> Kullan\u0131c\u0131n\u0131n sordu\u011fu soruda \u015firket d\u0131\u015f\u0131na s\u0131zmamas\u0131 gereken bir veri (kredi kart\u0131, TCKN vb.) olup olmad\u0131\u011f\u0131n\u0131 kontrol eder.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"16,4,0\"><strong data-path-to-node=\"16,4,0\" data-index-in-node=\"0\">\u0130ste\u011fi \u0130letme:<\/strong> \u0130ste\u011fi ger&ccedil;ek Google Gemini sunucular\u0131na iletir.<\/p>\n<\/li>\n<\/ol>\n<h3 data-path-to-node=\"18\">4. Yan\u0131t\u0131n \u0130letilmesi (Response)<\/h3>\n<p data-path-to-node=\"19\">Google Gemini'dan gelen yan\u0131t\u0131 alan AISIX, bu yan\u0131t\u0131 tekrar <strong data-path-to-node=\"19\" data-index-in-node=\"60\">OpenAI format\u0131na d&ouml;n&uuml;\u015ft&uuml;rerek<\/strong> uygulaman\u0131za kusursuz bir \u015fekilde teslim eder:<\/p>\n<!----><!----><!----><!----><!----><!----><!----><!---->\n<div class=\"code-block ng-tns-c4069305417-23 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation\" data-hveid=\"0\" data-ved=\"0CAAQhtANahgKEwjK-LDRu82VAxUAAAAAHQAAAAAQlgE\"><!---->\n<div class=\"formatted-code-block-internal-container ng-tns-c4069305417-23\">\n<div class=\"animated-opacity ng-tns-c4069305417-23\">\n<div class=\"code-block-decoration header-formatted gds-emphasized-body-m ng-tns-c4069305417-23 ng-star-inserted\"><span class=\"ng-tns-c4069305417-23\">JSON<\/span>\n<div class=\"buttons ng-tns-c4069305417-23 ng-star-inserted\"><!----><!----><button class=\"mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted\" aria-label=\"Kodu indir\"><!----><!----><!----><!----><\/button><!----><!----><!----><!----><!----><!----><!----><!----><!----><button class=\"mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-badge mat-unthemed mat-badge-overlap mat-badge-above mat-badge-after mat-badge-small mat-badge-hidden ng-star-inserted\" aria-label=\"Kodu kopyala\"><!----><!----><!----><!----><\/button><!----><!----><!----><!----><!----><!----><\/div>\n<!----><!----><\/div>\n<!---->\n<pre class=\"ng-tns-c4069305417-23\"><code class=\"code-container formatted ng-tns-c4069305417-23\" role=\"text\" data-test-id=\"code-content\">{\n  <span class=\"hljs-attr\">\"id\"<\/span>: <span class=\"hljs-string\">\"chatcmpl-aisix-unique-id\"<\/span>,\n  <span class=\"hljs-attr\">\"object\"<\/span>: <span class=\"hljs-string\">\"chat.completion\"<\/span>,\n  <span class=\"hljs-attr\">\"created\"<\/span>: <span class=\"hljs-number\">1717113600<\/span>,\n  <span class=\"hljs-attr\">\"model\"<\/span>: <span class=\"hljs-string\">\"gemini-2.5-flash\"<\/span>,\n  <span class=\"hljs-attr\">\"choices\"<\/span>: [\n    {\n      <span class=\"hljs-attr\">\"index\"<\/span>: <span class=\"hljs-number\">0<\/span>,\n      <span class=\"hljs-attr\">\"message\"<\/span>: {\n        <span class=\"hljs-attr\">\"role\"<\/span>: <span class=\"hljs-string\">\"assistant\"<\/span>,\n        <span class=\"hljs-attr\">\"content\"<\/span>: <span class=\"hljs-string\">\"Rust, bellek g&uuml;venli\u011fini (memory safety) &ccedil;al\u0131\u015fma zaman\u0131 (runtime) yerine derleme zaman\u0131nda (compile-time) garantiledi\u011fi ve y&uuml;ksek performans sundu\u011fu i&ccedil;in pop&uuml;lerdir...\"<\/span>\n      },\n      <span class=\"hljs-attr\">\"finish_reason\"<\/span>: <span class=\"hljs-string\">\"stop\"<\/span>\n    }\n  ],\n  <span class=\"hljs-attr\">\"usage\"<\/span>: {\n    <span class=\"hljs-attr\">\"prompt_tokens\"<\/span>: <span class=\"hljs-number\">12<\/span>,\n    <span class=\"hljs-attr\">\"completion_tokens\"<\/span>: <span class=\"hljs-number\">35<\/span>,\n    <span class=\"hljs-attr\">\"total_tokens\"<\/span>: <span class=\"hljs-number\">47<\/span>\n  }\n}\n<\/code><\/pre>\n<!----><\/div>\n<\/div>\n<\/div>\n<!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!---->\n<h3 data-path-to-node=\"21\">&Ouml;zetle Bu &Ouml;rnek Ne Sa\u011flad\u0131?<\/h3>\n<p data-path-to-node=\"22\">Yaz\u0131l\u0131m ekibiniz kod taban\u0131nda tek bir sat\u0131r de\u011fi\u015fiklik yapmadan, sadece a\u011f ge&ccedil;idine g&ouml;nderilen istek parametresini de\u011fi\u015ftirerek OpenAI'dan Gemini'a (veya desteklenen di\u011fer onlarca modele) an\u0131nda ge&ccedil;i\u015f yapabildi. Bu esnada harcanan token'lar (<code data-path-to-node=\"22\" data-index-in-node=\"243\">usage<\/code> objesi) AISIX taraf\u0131ndan panelde raporlanmak &uuml;zere arka planda kaydedildi.<\/p>\n<\/div>\n<\/div>","excerpt":"AISIX, Apache APISIX projesinin arkas\u0131ndaki ekip olan API7.ai taraf\u0131ndan geli\u015ftirilen, B\u00fcy\u00fck Dil Modelleri (LLM) ve yapay zek\u00e2 ajanlar\u0131 (AI Agents) i\u00e7in \u00f6zel olarak tasarlanm\u0131\u015f a\u00e7\u0131k kaynakl\u0131 bir yapay zek\u00e2 a\u011f ge\u00e7ididir (AI Gateway).","created_at":"2026-07-12 18:43:40","updated_at":"2026-09-23 19:26:27","category_id":9,"view_count":324,"reading_time":7,"status":"published","editor_choice":0,"is_editor_choice":0,"published_at":"2026-07-12 15:43:40","featured_image":"\/uploads\/images\/2026\/07\/6a53b61a3bcbf_1783871002.jpg","slug":"apache-apisix-aisix-ai-gateway","category_name":"Yaz\u0131l\u0131m","category_slug":"yazilim","category_color":"#ef4444"}