[{"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 15:09:58","category_id":9,"view_count":320,"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"},{"id":404,"title":"llm-checker ile Do\u011fru LLM'i An\u0131nda Bul","content":"<p class=\"lead\">Her ge&ccedil;en g&uuml;n onlarca yeni LLM piyasaya &ccedil;\u0131k\u0131yor. GPT-4o mu, Claude mu, Llama m\u0131, Gemini mi? Bu soruya cevap bulmak art\u0131k tam bir u\u011fra\u015f haline geldi.&nbsp;<strong>llm-checker<\/strong>, terminal &uuml;zerinden &ccedil;al\u0131\u015fan hafif bir CLI arac\u0131d\u0131r ve sana do\u011fru modeli tavsiye etmek i&ccedil;in tasarlanm\u0131\u015ft\u0131r.<\/p>\n<h2>1. Kurulum: Global Y&uuml;kleme<\/h2>\n<p>\u0130lk ad\u0131m, paketi npm arac\u0131l\u0131\u011f\u0131yla global olarak y&uuml;klemek. B&ouml;ylece sisteminizde herhangi bir dizinden do\u011frudan &ccedil;a\u011f\u0131rabilirsiniz:<\/p>\n<pre class=\"language-markup\"><code>C:\\Users\\OnderL&gt;npm install -g llm-checker<\/code><\/pre>\n<p>Buradaki&nbsp;<code>-g<\/code>&nbsp;bayra\u011f\u0131 (global flag), paketi yaln\u0131zca mevcut proje klas&ouml;r&uuml;ne de\u011fil, t&uuml;m sisteme y&uuml;kler. Bu sayede&nbsp;<code>llm-checker<\/code> komutunu istedi\u011fin her yerden &ccedil;al\u0131\u015ft\u0131rabilirsin.<\/p>\n<p><em><strong>\u0130pucu:<\/strong>&nbsp;Windows'ta kurulum s\u0131ras\u0131nda&nbsp;\"permission denied\"&nbsp;hatas\u0131 al\u0131yorsan, terminali Y&ouml;netici olarak &ccedil;al\u0131\u015ft\u0131r (Run as Administrator). macOS\/Linux'ta ise komutun ba\u015f\u0131na&nbsp;<code>sudo<\/code> ekle.<\/em><\/p>\n<p>&Ouml;rnek &Ccedil;\u0131kt\u0131&nbsp;<\/p>\n<p><em><img src=\"..\/..\/..\/uploads\/images\/2026\/03\/69c0f685176c3_1774253701.png\"><\/em><\/p>\n<p><em><img src=\"..\/..\/..\/uploads\/images\/2026\/03\/69c0f6a6564a1_1774253734.png\"><\/em><\/p>\n<h2>2. Tavsiye Modu: recommend<\/h2>\n<p>Kurulum tamamland\u0131ktan sonra as\u0131l sihir ba\u015fl\u0131yor.&nbsp;<code>recommend<\/code> alt komutu, kullan\u0131m senaryona g&ouml;re hangi LLM'in sana en uygun oldu\u011funu analiz eder:<\/p>\n<p>&nbsp;<\/p>\n<p>Ara&ccedil; sana birka&ccedil; soru sorar; b&uuml;t&ccedil;en, gecikme hassasiyetin, ba\u011flam penceresi ihtiyac\u0131n ve birincil kullan\u0131m senaryonu gibi fakt&ouml;rler &uuml;zerinden bir skor hesaplar ve en uygun modeli s\u0131ralar.<\/p>\n<p>&nbsp;<\/p>\n<h2>Ad\u0131m Ad\u0131m Kullan\u0131m Ak\u0131\u015f\u0131<\/h2>\n<ol class=\"step-list\">\n<li>\n<div class=\"step-num\">Node.js &amp; npm'nin Kurulu Oldu\u011fundan Emin Ol<\/div>\n<div class=\"step-content\">\n<p>Terminalde&nbsp;<code>node -v<\/code>&nbsp;ve&nbsp;<code>npm -v<\/code>&nbsp;&ccedil;al\u0131\u015ft\u0131r. Her ikisi de s&uuml;r&uuml;m numaras\u0131 d&ouml;nd&uuml;r&uuml;yorsa haz\u0131rs\u0131n.<\/p>\n<\/div>\n<\/li>\n<li>\n<div class=\"step-content\">\n<h4>Global Kurulum Yap<\/h4>\n<p><code>npm install -g llm-checker<\/code>&nbsp;komutunu &ccedil;al\u0131\u015ft\u0131r; kurulum birka&ccedil; saniye s&uuml;rer.<\/p>\n<\/div>\n<\/li>\n<li>\n<div class=\"step-content\">\n<h4>recommend Komutunu &Ccedil;al\u0131\u015ft\u0131r<\/h4>\n<p><code>llm-checker recommend<\/code>&nbsp;yaz\u0131p Enter'a bas. Kar\u015f\u0131na &ccedil;\u0131kan sorulara d&uuml;r&uuml;st&ccedil;e cevap ver.<\/p>\n<\/div>\n<\/li>\n<li>\n<div class=\"step-content\">\n<h4>Sonu&ccedil;lar\u0131 De\u011ferlendir<\/h4>\n<p>Ara&ccedil; sana s\u0131ral\u0131 bir model listesi ve her model i&ccedil;in skor, fiyat ve notlar sunar.<\/p>\n<\/div>\n<\/li>\n<li>\n<div class=\"step-content\">\n<h4>Modeli Entegre Et<\/h4>\n<p>Tavsiye edilen modelin API'sini projenize ekleyerek geli\u015ftirmeye ba\u015flayabilirsin.<\/p>\n<p>&nbsp;<\/p>\n<h2>Ekstra Komutlar<\/h2>\n<p>Sadece&nbsp;<code>recommend<\/code> ile s\u0131n\u0131rl\u0131 de\u011fil. Paketin sundu\u011fu di\u011fer faydal\u0131 komutlar:<\/p>\n<pre class=\"language-markup\"><code>llm-checker list\n&rarr; Desteklenen t&uuml;m modelleri listeler\nllm-checker compare gpt-4o claude-sonnet\n&rarr; \u0130ki modeli yan yana kar\u015f\u0131la\u015ft\u0131r\u0131r\nllm-checker --help\n&rarr; T&uuml;m se&ccedil;enekleri ve bayraklar\u0131 g&ouml;sterir<\/code><\/pre>\n<p>&nbsp;<\/p>\n<h3>&Ouml;zet Olarak<\/h3>\n<p>\u0130ki komutla &mdash;&nbsp;<code>npm install -g llm-checker<\/code>&nbsp;ve&nbsp;<code>llm-checker recommend<\/code> &mdash; y&uuml;zlerce LLM aras\u0131ndaki kaostan kurtulabilirsin. Bir sonraki projen i&ccedil;in hangi modeli se&ccedil;ece\u011fini art\u0131k terminal sana s&ouml;yl&uuml;yor.<\/p>\n<p><code class=\"bg-text-200\/5 border border-0.5 border-border-300 text-danger-000 whitespace-pre-wrap rounded-[0.4rem] px-1 py-px text-[0.9rem]\">llm-checker<\/code> fikir olarak g&uuml;zel, ama bu &ccedil;\u0131kt\u0131 <strong>g&uuml;venilir de\u011fil<\/strong>. Model veritaban\u0131 hatal\u0131, embedding\/generative ayr\u0131m\u0131 yapam\u0131yor. arac\u0131n potansiyeli var ama \u015fu an <strong>kritik do\u011fruluk sorunlar\u0131<\/strong> mevcut. &ouml;nerileri k&ouml;r&uuml; k&ouml;r&uuml;ne uygulamadan &ouml;nce Ollama Hub'dan do\u011frulamalar\u0131n\u0131 &ouml;neriyorum.<\/p>\n<p>Do\u011frudan \"hardware scan &rarr; model &ouml;ner\" format\u0131nda llm-checker'a alternatif &ccedil;ok az. Ama i\u015flevsel alternatifler var:<\/p>\n<hr>\n<h2>En \u0130yi Alternatifler<\/h2>\n<h3>1. LM Studio (GUI &mdash; En G&uuml;&ccedil;l&uuml; Alternatif)<\/h3>\n<p>Donan\u0131m\u0131 otomatik tespit edip optimize eden, Hugging Face'den model arama\/indirme ve g&ouml;rsel performans g&ouml;stergeleri sunan bir aray&uuml;ze sahip. llm-checker'\u0131n yapt\u0131\u011f\u0131n\u0131 GUI &uuml;zerinden &ccedil;ok daha g&uuml;venilir yap\u0131yor. Windows'ta Intel Arc GPU'lar\u0131 da Vulkan offloading ile destekliyor &mdash; senin sistemin i&ccedil;in &ouml;nemli bir art\u0131.<\/p>\n<pre><code>lmstudio.ai &rarr; indir &rarr; Hardware-aware model browser\n<\/code><\/pre>\n<hr>\n<h3>2. Ollama (CLI &mdash; Ama Farkl\u0131 Bir Ama&ccedil;)<\/h3>\n<p>Docker'\u0131 and\u0131ran tasar\u0131m\u0131yla, modeli ismiyle &ccedil;ekip tek komutla &ccedil;al\u0131\u015ft\u0131rabiliyorsun; OpenAI uyumlu yerel API sunuyor. Model &ouml;nermez ama &ouml;nerdikten sonra &ccedil;al\u0131\u015ft\u0131rmak i&ccedil;in standart.<\/p>\n<hr>\n<h3>3. GPT4All<\/h3>\n<p>Terminal veya GUI &uuml;zerinden &ccedil;al\u0131\u015fan, donan\u0131m\u0131 okuyup uyumlu modelleri filtreleyen hafif bir ara&ccedil;. llm-checker'a en yak\u0131n ruh hali bu.<\/p>\n<hr>\n<h2>D&uuml;r&uuml;st Kar\u015f\u0131la\u015ft\u0131rma<\/h2>\n<table>\n<thead>\n<tr>\n<th>Ara&ccedil;<\/th>\n<th>Model &Ouml;neri<\/th>\n<th>Donan\u0131m Okuma<\/th>\n<th>G&uuml;venilirlik<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>llm-checker<\/td>\n<td>\u2705 Var<\/td>\n<td>\u2705 Var<\/td>\n<td>\u26a0\ufe0f Hatal\u0131 sonu&ccedil;lar<\/td>\n<\/tr>\n<tr>\n<td>LM Studio<\/td>\n<td>\u2705 Var<\/td>\n<td>\u2705 Var<\/td>\n<td>\u2705 G&uuml;venilir<\/td>\n<\/tr>\n<tr>\n<td>GPT4All<\/td>\n<td>K\u0131smi<\/td>\n<td>\u2705 Var<\/td>\n<td>\u2705 G&uuml;venilir<\/td>\n<\/tr>\n<tr>\n<td>Ollama<\/td>\n<td>\u274c Yok<\/td>\n<td>K\u0131smi<\/td>\n<td>\u2705 G&uuml;venilir<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<hr>\n<p>&nbsp;<\/p>\n<\/div>\n<\/li>\n<\/ol>","excerpt":"iki basit terminal komutuyla y\u00fczlerce dil modelini kar\u015f\u0131la\u015ft\u0131r, ihtiyac\u0131na en uygun olan\u0131 bul.","created_at":"2026-03-23 11:09:15","updated_at":"2026-09-23 15:46:19","category_id":9,"view_count":676,"reading_time":4,"status":"published","editor_choice":0,"is_editor_choice":0,"published_at":"2026-03-23 08:09:36","featured_image":"\/uploads\/images\/2026\/03\/69c0f6e3ee119_1774253795.png","slug":"llm-checker-ile-dogru-llm-i-aninda-bul","category_name":"Yaz\u0131l\u0131m","category_slug":"yazilim","category_color":"#ef4444"},{"id":384,"title":"Firefox'ta Split Tab \u00d6zelli\u011fi ve Dikey Sekmeler ve Kenar \u00c7ubu\u011fu\u00a0","content":"<div id=\"model-response-message-contentr_eca09a5fa1ffcf37\" class=\"markdown markdown-main-panel stronger enable-updated-hr-color\" dir=\"ltr\" aria-live=\"polite\" aria-busy=\"false\"><br>Firefox'ta Verimlilik Devrimi: Split Tab &Ouml;zelli\u011fi Nas\u0131l Aktif Edilir?\n<p data-path-to-node=\"4\">&Ccedil;oklu g&ouml;rev (multitasking) denildi\u011finde akla gelen en b&uuml;y&uuml;k sorunlardan biri, iki farkl\u0131 sekmeyi ayn\u0131 anda g&ouml;rmek i&ccedil;in pencereleri manuel olarak boyutland\u0131rmakt\u0131r. Firefox 146.0 s&uuml;r&uuml;m&uuml;yle birlikte gelen <strong data-path-to-node=\"4\" data-index-in-node=\"203\">Split Tab<\/strong>, taray\u0131c\u0131 penceresini ikiye b&ouml;lerek bu zahmeti ortadan kald\u0131r\u0131yor.<\/p>\n<h3 data-path-to-node=\"5\">Neden Split Tab Kullanmal\u0131s\u0131n\u0131z?<\/h3>\n<ul data-path-to-node=\"6\">\n<li>\n<p data-path-to-node=\"6,0,0\"><strong data-path-to-node=\"6,0,0\" data-index-in-node=\"0\">Dok&uuml;man Takibi:<\/strong> Bir tarafta teknik d&ouml;k&uuml;man\u0131 okurken di\u011fer tarafta kod yazabilir veya uygulama yapabilirsiniz.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"6,1,0\"><strong data-path-to-node=\"6,1,0\" data-index-in-node=\"0\">Fiyat Kar\u015f\u0131la\u015ft\u0131rma:<\/strong> \u0130ki farkl\u0131 e-ticaret sitesini yan yana a&ccedil;arak en iyi teklifi an\u0131nda g&ouml;rebilirsiniz.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"6,2,0\"><strong data-path-to-node=\"6,2,0\" data-index-in-node=\"0\">Video ve Not Alma:<\/strong> Bir sekmede e\u011fitim videosu izlerken di\u011ferinde notlar\u0131n\u0131z\u0131 tutabilirsiniz.<\/p>\n<\/li>\n<\/ul>\n<hr data-path-to-node=\"7\">\n<h2 data-path-to-node=\"8\">\ud83d\ude80 Ad\u0131m Ad\u0131m Split Tab Aktivasyonu<\/h2>\n<p data-path-to-node=\"9\">Bu &ouml;zellik \u015fu an i&ccedil;in varsay\u0131lan olarak kapal\u0131 geliyor. Etkinle\u015ftirmek i&ccedil;in Firefox'un \"kalbine\", yani <code data-path-to-node=\"9\" data-index-in-node=\"103\">about:config<\/code> sayfas\u0131na girmemiz gerekiyor.<\/p>\n<h3 data-path-to-node=\"10\">1. S&uuml;r&uuml;m Kontrol&uuml;<\/h3>\n<p data-path-to-node=\"11\">&Ouml;zelli\u011fin g&ouml;r&uuml;nmesi i&ccedil;in <strong data-path-to-node=\"11\" data-index-in-node=\"25\">Firefox 146.0<\/strong> veya daha yeni bir s&uuml;r&uuml;me sahip olman\u0131z \u015fart. Sa\u011f &uuml;stteki men&uuml;den <em data-path-to-node=\"11\" data-index-in-node=\"105\">Yard\u0131m &gt; Firefox Hakk\u0131nda<\/em> k\u0131sm\u0131na giderek s&uuml;r&uuml;m&uuml;n&uuml;z&uuml; kontrol edin.<\/p>\n<h3 data-path-to-node=\"12\">2. Geli\u015fmi\u015f Ayarlara Giri\u015f<\/h3>\n<p>Adres &ccedil;ubu\u011funa \u015fu komutu yaz\u0131n ve Enter'a bas\u0131n:<\/p>\n<p>about:config<\/p>\n<p>\"Riski kabul ederek devam et\" butonuna t\u0131klayarak geli\u015fmi\u015f ayarlar panelini a&ccedil;\u0131n.<\/p>\n<h3 data-path-to-node=\"14\">3. &Ouml;zelli\u011fi Bulun ve Etkinle\u015ftirin<\/h3>\n<p>Arama &ccedil;ubu\u011funa a\u015fa\u011f\u0131daki kodu kopyalay\u0131n:<\/p>\n<p>browser.tabs.splitView.enabled<\/p>\n<p data-path-to-node=\"16\">&Ccedil;\u0131kan sonucun yan\u0131ndaki de\u011fi\u015ftirme butonuna t\u0131klayarak de\u011feri <strong data-path-to-node=\"16\" data-index-in-node=\"62\">false<\/strong> konumundan <strong data-path-to-node=\"16\" data-index-in-node=\"79\">true<\/strong> konumuna getirin.<\/p>\n<h3 data-path-to-node=\"17\">4. Taray\u0131c\u0131y\u0131 Yeniden Ba\u015flat\u0131n<\/h3>\n<p data-path-to-node=\"18\">De\u011fi\u015fikli\u011fin tam olarak i\u015flenmesi i&ccedil;in Firefox'u kapat\u0131p tekrar a&ccedil;man\u0131z &ouml;nerilir.<\/p>\n<hr data-path-to-node=\"19\">\n<h2 data-path-to-node=\"20\">\ud83d\udca1 Split Tab Nas\u0131l Kullan\u0131l\u0131r?<\/h2>\n<p data-path-to-node=\"21\">&Ouml;zelli\u011fi aktif ettikten sonra kullan\u0131m\u0131 olduk&ccedil;a sezgiseldir:<\/p>\n<ol start=\"1\" data-path-to-node=\"22\">\n<li>\n<p data-path-to-node=\"22,0,0\">B&ouml;lmek istedi\u011finiz sekmelerden birine <strong data-path-to-node=\"22,0,0\" data-index-in-node=\"38\">sa\u011f t\u0131klay\u0131n<\/strong>.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"22,1,0\">Men&uuml;den <strong data-path-to-node=\"22,1,0\" data-index-in-node=\"8\">\"Split Tab\"<\/strong> (veya Sekmeyi B&ouml;l) se&ccedil;ene\u011fini bulun.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"22,2,0\">Yan yana gelen pencerelerde &ccedil;al\u0131\u015fman\u0131n keyfini &ccedil;\u0131kar\u0131n!<\/p>\n<\/li>\n<\/ol>\n<blockquote data-path-to-node=\"23\">\n<p data-path-to-node=\"23,0\"><strong data-path-to-node=\"23,0\" data-index-in-node=\"0\">\u0130pucu:<\/strong> Sekmeleri ay\u0131rmak veya b&ouml;lme oran\u0131n\u0131 de\u011fi\u015ftirmek i&ccedil;in iki sekme aras\u0131ndaki s\u0131n\u0131r &ccedil;izgisini s&uuml;r&uuml;kleyerek alan\u0131n\u0131z\u0131 &ouml;zelle\u015ftirebilirsiniz.<\/p>\n<\/blockquote>\n<hr data-path-to-node=\"24\">\n<p data-path-to-node=\"26\">Firefox, Chromium tabanl\u0131 olmayan tek b&uuml;y&uuml;k taray\u0131c\u0131 olarak &ouml;zg&uuml;n &ouml;zellikler geli\u015ftirmeye devam ediyor. Split Tab &ouml;zelli\u011fi, &ouml;zellikle tek monit&ouml;rl&uuml; kurulumlarda &uuml;retkenli\u011fi %50'ye kadar art\u0131rabilen bir ara&ccedil;. Hen&uuml;z \"Nightly\" veya test a\u015famas\u0131nda oldu\u011fu i&ccedil;in baz\u0131 ufak hatalarla kar\u015f\u0131la\u015fabilirsiniz ancak genel performans\u0131 olduk&ccedil;a tatmin edici.<\/p>\n<div id=\"model-response-message-contentr_fcba003a46eae515\" class=\"markdown markdown-main-panel stronger enable-updated-hr-color\" dir=\"ltr\" aria-live=\"polite\" aria-busy=\"false\">\n<p data-path-to-node=\"0\">Harika bir se&ccedil;im! Firefox&rsquo;un son d&ouml;nemde ge&ccedil;irdi\u011fi en b&uuml;y&uuml;k yap\u0131sal de\u011fi\u015fimlerden biri olan <strong data-path-to-node=\"0\" data-index-in-node=\"92\">\"Vertical Tabs\" (Dikey Sekmeler)<\/strong> ve beraberindeki <strong data-path-to-node=\"0\" data-index-in-node=\"142\">\"Tab Sidebar\"<\/strong> (Sekme Kenar &Ccedil;ubu\u011fu) &ouml;zelliklerine dal\u0131yoruz. &Ouml;zellikle ultra geni\u015f (ultrawide) monit&ouml;r kullananlar i&ccedil;in bu &ouml;zellik ger&ccedil;ek bir kurtar\u0131c\u0131.<\/p>\n<p data-path-to-node=\"1\">\u0130\u015fte bu yeni nesil gezinme deneyimini aktif etmek ve optimize etmek i&ccedil;in haz\u0131rlad\u0131\u011f\u0131m detayl\u0131 rehber:<\/p>\n<hr data-path-to-node=\"2\">\n<h1 data-path-to-node=\"3\">Firefox'un Yeni Y&uuml;z&uuml;: Dikey Sekmeler ve Kenar &Ccedil;ubu\u011fu&nbsp;<\/h1>\n<p data-path-to-node=\"4\">Geleneksel taray\u0131c\u0131 mimarisinde sekmeler &uuml;stte yatay olarak dizilir. Ancak 20'den fazla sekme a&ccedil;t\u0131\u011f\u0131n\u0131zda, bu sekmelerin ba\u015fl\u0131klar\u0131 kaybolur ve sadece ikonlar kal\u0131r. Firefox'un yeni <strong data-path-to-node=\"4\" data-index-in-node=\"182\">Dikey Sekme<\/strong> &ouml;zelli\u011fi, sekmeleri sol tarafa bir liste halinde dizerek hem ba\u015fl\u0131klar\u0131n okunabilir kalmas\u0131n\u0131 sa\u011flar hem de dikey ekran alan\u0131n\u0131 daha verimli kullan\u0131r.<\/p>\n<h2 data-path-to-node=\"5\">\ud83d\udee0\ufe0f Dikey Sekmeleri Nas\u0131l Aktif Edersiniz?<\/h2>\n<p data-path-to-node=\"6\">Bu &ouml;zellik \u015fu an i&ccedil;in Firefox'un kararl\u0131 (Stable) s&uuml;r&uuml;m&uuml;nde gizli bir \"deney\" olarak yer al\u0131yor. Etkinle\u015ftirmek i&ccedil;in \u015fu ad\u0131mlar\u0131 izleyin:<\/p>\n<ol start=\"1\" 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\">Geli\u015fmi\u015f Ayarlar:<\/strong> Adres &ccedil;ubu\u011funa <code data-path-to-node=\"7,0,0\" data-index-in-node=\"33\">about:config<\/code> yaz\u0131n.<\/p>\n<\/li>\n<li>\n<p>Arama Yap\u0131n: Arama &ccedil;ubu\u011funa \u015fu sat\u0131r\u0131 kopyalay\u0131n:<\/p>\n<p>sidebar.verticalTabs<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"7,2,0\"><strong data-path-to-node=\"7,2,0\" data-index-in-node=\"0\">Aktif Edin:<\/strong> De\u011feri &uuml;zerine &ccedil;ift t\u0131klayarak <strong data-path-to-node=\"7,2,0\" data-index-in-node=\"43\">true<\/strong> yap\u0131n.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"7,3,0\"><strong data-path-to-node=\"7,3,0\" data-index-in-node=\"0\">Ekstra &Ouml;zellik (Sidebar):<\/strong> E\u011fer sekmelerin yan\u0131nda tam te\u015fekk&uuml;ll&uuml; bir kenar &ccedil;ubu\u011fu da istiyorsan\u0131z, <code data-path-to-node=\"7,3,0\" data-index-in-node=\"99\">browser.sidebar.init.enabled<\/code> ayar\u0131n\u0131 da <strong data-path-to-node=\"7,3,0\" data-index-in-node=\"139\">true<\/strong> yap\u0131n.<\/p>\n<\/li>\n<\/ol>\n<hr data-path-to-node=\"8\">\n<h2 data-path-to-node=\"9\">\ud83d\ude80 Dikey Sekmelerin Sundu\u011fu 3 B&uuml;y&uuml;k Avantaj<\/h2>\n<h3 data-path-to-node=\"10\">1. S\u0131n\u0131rs\u0131z Okunabilirlik<\/h3>\n<p data-path-to-node=\"11\">&Uuml;stteki sekmeler s\u0131k\u0131\u015ft\u0131\u011f\u0131nda sadece ikonlar\u0131 g&ouml;r&uuml;rs&uuml;n&uuml;z. Dikey d&uuml;zende ise sekmeler bir liste format\u0131nda oldu\u011fu i&ccedil;in sayfa ba\u015fl\u0131klar\u0131 her zaman okunabilir kal\u0131r. Grupland\u0131rma yapmak ve arad\u0131\u011f\u0131n\u0131z sekmeyi bulmak &ccedil;ok daha h\u0131zl\u0131d\u0131r.<\/p>\n<h3 data-path-to-node=\"12\">2. Ak\u0131ll\u0131 Daraltma (Compact Mode)<\/h3>\n<p data-path-to-node=\"13\">Dikey kenar &ccedil;ubu\u011fu, &uuml;zerine gelmedi\u011finiz s&uuml;rece sadece ikonlar\u0131 g&ouml;sterecek \u015fekilde daralt\u0131labilir. Fareyi sol kenara yakla\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda panel geni\u015fleyerek ba\u015fl\u0131klar\u0131 g&ouml;sterir. Bu, ekran alan\u0131ndan maksimum tasarruf sa\u011flar.<\/p>\n<h3 data-path-to-node=\"14\">3. Sekme Gruplar\u0131 ile Entegrasyon<\/h3>\n<p data-path-to-node=\"15\">Firefox dikey sekmeleri, yeni \"Sekme Gruplar\u0131\" (Tab Grouping) &ouml;zelli\u011fiyle m&uuml;kemmel &ccedil;al\u0131\u015f\u0131r. Projelerinizi klas&ouml;r mant\u0131\u011f\u0131yla dikeyde toplamak, i\u015f ak\u0131\u015f\u0131n\u0131z\u0131 bir klas&ouml;r hiyerar\u015fisi gibi y&ouml;netmenizi sa\u011flar.<\/p>\n<hr data-path-to-node=\"16\">\n<h2 data-path-to-node=\"17\">\u2699\ufe0f Daha \u0130leri Seviye: G&ouml;r&uuml;n&uuml;m&uuml; &Ouml;zelle\u015ftirme<\/h2>\n<p data-path-to-node=\"18\">Dikey sekmeleri aktif ettikten sonra &uuml;stteki eski yatay sekme &ccedil;ubu\u011funun hala orada durdu\u011funu fark edeceksiniz. \u0130ki tarafta da sekme g&ouml;rmek istemiyorsan\u0131z, bunu <strong data-path-to-node=\"18\" data-index-in-node=\"160\">userChrome.css<\/strong> kullanarak tamamen gizleyebilirsiniz:<\/p>\n<blockquote data-path-to-node=\"19\">\n<p data-path-to-node=\"19,0\"><strong data-path-to-node=\"19,0\" data-index-in-node=\"0\">Not:<\/strong> Bu i\u015flem ileri seviye bir &ouml;zelle\u015ftirmedir.<\/p>\n<\/blockquote>\n<ol start=\"1\" data-path-to-node=\"20\">\n<li>\n<p data-path-to-node=\"20,0,0\"><code data-path-to-node=\"20,0,0\" data-index-in-node=\"0\">about:support<\/code> sayfas\u0131n\u0131 a&ccedil;\u0131n.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"20,1,0\">\"Profil Klas&ouml;r&uuml;\" yan\u0131ndaki \"Klas&ouml;r&uuml; A&ccedil;\" butonuna bas\u0131n.<\/p>\n<\/li>\n<li>\n<p data-path-to-node=\"20,2,0\">Burada <code data-path-to-node=\"20,2,0\" data-index-in-node=\"7\">chrome<\/code> isimli bir klas&ouml;r olu\u015fturun ve i&ccedil;ine <code data-path-to-node=\"20,2,0\" data-index-in-node=\"51\">userChrome.css<\/code> dosyas\u0131 a&ccedil;arak \u015fu kodu ekleyin:<\/p>\n<!----><!----><!----><!----><!----><!----><!---->\n<div class=\"code-block ng-tns-c2721585414-127 ng-animate-disabled ng-trigger ng-trigger-codeBlockRevealAnimation\" data-hveid=\"0\" data-ved=\"0CAAQhtANahgKEwiqgOqIqIuSAxUAAAAAHQAAAAAQ1AE\">\n<div class=\"code-block-decoration header-formatted gds-title-s ng-tns-c2721585414-127 ng-star-inserted\"><span class=\"ng-tns-c2721585414-127\">CSS<\/span>\n<div class=\"buttons ng-tns-c2721585414-127 ng-star-inserted\"><button class=\"mdc-icon-button mat-mdc-icon-button mat-mdc-button-base mat-mdc-tooltip-trigger copy-button ng-tns-c2721585414-127 mat-unthemed _mat-animation-noopable ng-star-inserted\" aria-label=\"Kodu kopyala\"><\/button><!----><!----><\/div>\n<!----><\/div>\n<!---->\n<div class=\"formatted-code-block-internal-container ng-tns-c2721585414-127\">\n<div class=\"animated-opacity ng-tns-c2721585414-127\">\n<pre class=\"ng-tns-c2721585414-127\"><code class=\"code-container formatted ng-tns-c2721585414-127\" role=\"text\" data-test-id=\"code-content\"><span class=\"hljs-selector-id\">#TabsToolbar<\/span> { <span class=\"hljs-attribute\">visibility<\/span>: collapse <span class=\"hljs-meta\">!important<\/span>; }\n<\/code><\/pre>\n<!----><\/div>\n<\/div>\n<\/div>\n<!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><\/li>\n<li>\n<p data-path-to-node=\"20,3,0\">Firefox'u yeniden ba\u015flatt\u0131\u011f\u0131n\u0131zda &uuml;stteki bar kaybolacak ve tamamen \"Edge benzeri\" modern bir dikey aray&uuml;ze kavu\u015facaks\u0131n\u0131z.<\/p>\n<\/li>\n<\/ol>\n<hr data-path-to-node=\"21\">\n<h2 data-path-to-node=\"22\">Firefox Art\u0131k Daha \"Pro\"<\/h2>\n<p data-path-to-node=\"23\">Firefox, <strong data-path-to-node=\"23\" data-index-in-node=\"9\">Split Tab<\/strong> ve <strong data-path-to-node=\"23\" data-index-in-node=\"22\">Vertical Tabs<\/strong> kombinasyonu ile art\u0131k sadece bir taray\u0131c\u0131 de\u011fil, g&uuml;&ccedil;l&uuml; bir &ccedil;al\u0131\u015fma istasyonu haline geliyor. &Ouml;zellikle <strong data-path-to-node=\"23\" data-index-in-node=\"140\">OnderL<\/strong> gibi sistem y&ouml;netimi ve yaz\u0131l\u0131mla u\u011fra\u015fan profesyoneller i&ccedil;in bu &ouml;zellikler, pencereler aras\u0131 ge&ccedil;i\u015f trafi\u011fini ciddi oranda azalt\u0131yor.<\/p>\n<p data-path-to-node=\"24\"><strong data-path-to-node=\"24\" data-index-in-node=\"0\">AstroCat NGFW panelini y&ouml;netirken sol tarafta dikey sekmeler, sa\u011f tarafta b&ouml;l&uuml;nm&uuml;\u015f ekranda log takibi yapt\u0131\u011f\u0131n\u0131z\u0131 hayal edin; tam bir verimlilik canavar\u0131!<\/strong><\/p>\n<p data-path-to-node=\"25\">Bu &ouml;zelliklerden sonra, Firefox'un <strong data-path-to-node=\"25\" data-index-in-node=\"35\">\"Container Tabs\" (Konteyner Sekmeler)<\/strong> ile sosyal medya ve i\u015f hesaplar\u0131n\u0131 nas\u0131l birbirinden tamamen izole etti\u011fini de merak eder misiniz?<\/p>\n<\/div>\n<p data-path-to-node=\"27\"><strong data-path-to-node=\"27\" data-index-in-node=\"0\">Siz Firefox'un yeni aray&uuml;z &ouml;zelliklerini nas\u0131l buluyorsunuz?<\/strong> Deneyimlerinizi ve tak\u0131ld\u0131\u011f\u0131n\u0131z noktalar\u0131 yorumlarda bizimle payla\u015fmay\u0131 unutmay\u0131n!<\/p>\n<hr data-path-to-node=\"28\">\n<p data-path-to-node=\"29\"><em data-path-to-node=\"29\" data-index-in-node=\"0\">Bu rehber, g&uuml;ncel teknoloji haberlerini yak\u0131ndan takip eden <!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><a class=\"ng-star-inserted\" href=\"..\/..\/\" target=\"_blank\" rel=\"noopener\" data-hveid=\"0\" data-ved=\"0CAAQ_4QMahgKEwiqgOqIqIuSAxUAAAAAHQAAAAAQwQE\">Ondernet.net<\/a><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----><!----> ekibi taraf\u0131ndan haz\u0131rlanm\u0131\u015ft\u0131r. Sunucu ve taray\u0131c\u0131 optimizasyonlar\u0131 hakk\u0131nda daha fazla bilgi i&ccedil;in blogumuzu takipte kal\u0131n.<\/em><\/p>\n<p data-path-to-node=\"30\">&nbsp;<\/p>\n<\/div>","excerpt":"Firefox kullan\u0131c\u0131lar\u0131n\u0131n y\u0131llard\u0131r bekledi\u011fi, Vivaldi ve Arc gibi taray\u0131c\u0131larda pop\u00fcler olan Split Tab (Sekme B\u00f6lme) \u00f6zelli\u011fi nihayet Windows s\u00fcr\u00fcm\u00fcnde g\u00fcn y\u00fcz\u00fcne \u00e7\u0131kt\u0131. Hen\u00fcz test a\u015famas\u0131nda olsa da, manuel olarak aktif edilebilen bu \u00f6zellik, geni\u015f ekran kullananlar ve \u00fcretkenlik odakl\u0131 \u00e7al\u0131\u015fanlar i\u00e7in oyunun kurallar\u0131n\u0131 de\u011fi\u015ftiriyor.","created_at":"2026-01-14 20:38:44","updated_at":"2026-09-08 04:14:19","category_id":9,"view_count":626,"reading_time":7,"status":"published","editor_choice":0,"is_editor_choice":0,"published_at":"2026-01-14 17:38:44","featured_image":"\/uploads\/images\/2026\/01\/6967d47d0c8fa_1768412285.jpg","slug":"firefox-ta-split-tab-ozelligi-ve-dikey-sekmeler-ve-kenar-cubugu","category_name":"Yaz\u0131l\u0131m","category_slug":"yazilim","category_color":"#ef4444"}]