Bugüne dair sorulara yanıt veren her ajanın, daha önce hiç görmediği sayfaları bulmanın bir yoluna ihtiyacı vardır. Çoğu uygulama için bu yol bir web arama API’sidir: bir sorgu gönderdiğiniz ve sonuçları insan gözü için tasarlanmış bir sayfa yerine veri olarak geri aldığınız bir hizmet. Terim birbirinden oldukça farklı ürünleri kapsar ve bu farklar uygulamanızın gerçekte neler yapabileceğini belirler. Bu yazıda terimi tanımlıyor, başlıca türleri ayırıyor, tipik bir yanıtı alan alan inceliyor ve yapay zekâ uygulamalarının kullandığı desenleri anlatıyoruz.
Tanım ve arkasında duranlar
Web arama API’si, bir arama motoruna programla erişmeyi sağlayan arayüzdür. Bir sorgu gönderirsiniz; çoğu zaman dil, bölge, güncellik ya da sonuç sayısı gibi seçeneklerle birlikte. API de dizinindeki belgelerden sıralanmış bir liste döner; her birinde bir adres ve içeriğe dair bir açıklama bulunur. Yanıt yapılandırılmıştır, genellikle JSON biçimindedir; böylece kod, bir sonuç sayfasını ayrıştırmaya gerek kalmadan onu kullanabilir.
Bu tek çağrının arkasında doğrudan görmediğiniz üç sistem durur. Bir tarayıcı (crawler) sayfaları keşfeder ve indirir. Bir dizin, bu sayfaların işlenmiş hâllerini hızlıca bulunabilecek biçimde saklar. Bir sıralama katmanı da dizindeki hangi belgelerin sorgunuzla eşleştiğine ve hangi sırayla gösterileceğine karar verir. Herhangi bir arama API’sinin kalitesi büyük ölçüde bu üçünün kalitesidir: web’in ne kadarının ve ne kadar yakın zamanda tarandığı, sayfaların nasıl işlendiği ve sıralamanın sizinki gibi sorgulara nasıl davrandığı.
Arama API’sinin ne olmadığını da netleştirmek işe yarar. Bir kazıyıcı değildir: istediğiniz herhangi bir sayfayı talep üzerine çekmez, ancak bazı ürünler ayrıca bir sayfa çekme uç noktası sunar. Açıkça yanıt sentezlediğini söylemiyorsa bir yanıt motoru da değildir; çoğu kanıtı döner, sonucu çıkarmayı size bırakır.
Başlıca türler
| Tür | Nasıl çalışır | Tipik çıktı | Dikkat edilecek nokta |
|---|---|---|---|
| Motorun kendi dizinine açılan API | Bir arama motoru kendi dizinini API üzerinden açar | Bağlantılar, başlıklar, kısa özetler; bazen haber ya da görsel sonuçları | Özetler kısadır; kullanım şartları sonuçları saklamayı ya da göstermeyi kısıtlayabilir |
| Sonuç sayfası kazıma API’si | Üçüncü bir taraf, tüketiciye yönelik bir arama motorunun sonuç sayfalarını yükleyip ayrıştırır | Bir insanın göreceği sayfanın yapılandırılmış kopyası; reklamlar ve zengin öğeler dâhil | Başka bir motorun şartlarına ve sayfa düzenine bağlıdır; sayfa değişince bozulabilir |
| Yapay zekâya yönelik arama API’si | Modellerin tüketmesi için kurulmuştur; anlamsal erişim kullanabilir, sayfadan çıkarılmış metin dönebilir | Daha uzun alıntılar ya da temizlenmiş tam metin, çoğu zaman ilgililik puanıyla | Alıntıların nasıl seçildiği; tam metnin önbellekten mi yoksa canlı sayfadan mı geldiği |
| Yanıt API’si | Arar, sonuçları okur ve üretilmiş bir yanıt döner | Bir paragraf ve atıf yaptığı kaynaklar | Yanıt bir iddiadır; atıf yapılan pasajları yine de okumanız gerekir |
| Dikey API | Tek bir alanı kapsar: haber, akademik makale, patent, ürün, iş ilanı | Yazar, yayın ya da fiyat gibi alana özgü alanlar | Alan dışındaki kapsam tasarım gereği sıfırdır |
| Kendi barındırdığınız üst arama (metasearch) | Birkaç motoru sorgulayıp sonuçlarını birleştiren, sizin çalıştırdığınız yazılım | Birleştirilmiş bağlantılar ve özetler | Bakımı sizdedir; üst kaynaktaki motorlar otomatik kullanımı yavaşlatabilir |
Kategoriler kenarlarda iç içe geçer. Pek çok sağlayıcı bunların birkaçını ayrı uç noktalar olarak sunar; yapay zekâ araması diye satılan bir ürün, üzerine bir çıkarma katmanı eklenmiş, motorun kendi dizinine açılan bir API olabilir. Önemli olan, uygulamanızın hangi davranışa dayandığını bilmektir.
Bir yanıt gerçekte ne içerir
Alan adları sağlayıcıdan sağlayıcıya değişir, ama tipik bir sonuç aşağıdaki varsayımsal yanıta benzer:
{
"query": "belediye tahvili kamuyu aydınlatma kuralları",
"results": [
{
"rank": 1,
"title": "İhraççılar için sürekli bilgilendirme yükümlülükleri",
"url": "https://example.org/rehber/surekli-bilgilendirme",
"snippet": "İhraççılar yıllık finansal bilgileri ve şu durumlara ilişkin bildirimleri...",
"published": "YYYY-MM-DD",
"crawled": "YYYY-MM-DD",
"content": "API sağlıyorsa sayfadan çıkarılmış tam ya da kısmi metin",
"score": 0.82
}
],
"next_page": "sonraki-sayfa-belirteci"
}
Her alanın, üzerine bir şey kurmadan önce bilinmesi gereken bir çekincesi vardır.
- Özet (snippet), sorgunuza uysun diye seçilmiş bir parçadır, sayfanın özeti değildir. Anlamını tersine çeviren çekince cümlesini dışarıda bırakabilir.
- Yayın tarihi çoğu zaman eksiktir ya da sayfadan tahmin edilmiştir. Tarama tarihi ise dizindeki kopyanın ne kadar eski olduğunu söyler; güncellik açısından asıl önemli olan budur.
- İçerik alanı varsa canlı sayfadan değil, önbellekteki bir kopyadan gelmiş olabilir. Özellikle sık değişen sayfalarda hangisi olduğunu öğrenin.
- Puan yalnızca aynı yanıttaki diğer sonuçlara göre anlamlıdır. Puanları sorgular ya da sağlayıcılar arasında karşılaştırmayın.
- Sonuç sayısı ve sayfalama, ilgili kaç sayfa bulunduğunu değil, API’nin kaç sonuç dönmeye razı olduğunu gösterir.
Yapay zekâ uygulamaları arama API’lerini nasıl kullanır
Kullanımların çoğunu beş desen karşılar.
- Dayandırma (grounding). Uygulama yanıt vermeden önce arar, ilk sonuçları okur ve yanıtını atıflarla bu sonuçlara dayandırır. Eskimiş eğitim verisine yaslanan kendinden emin yanıtlara karşı standart savunma budur; ayrıntısı dayandırma ile halüsinasyonları azaltmak yazısında.
- Ajan aracı. Ne zaman arama yapacağına model karar verir ve sorgularını kendisi yazar; çoğu zaman birkaç sorguyla, ilerledikçe daraltarak. Ajan destekli aramanın özü budur.
- RAG için erişim. Arama, erişim adımında vektör veritabanının yerini alır ya da onu tamamlar; yanıtı kendi dokümanlarınızda değil açık web’de duran sorulara uygundur.
- Araştırma ve keşif. Bir konu etrafında çok sayıda sorgu çalıştırılır; sonuçların tekrarları ayıklanıp okunur, bulgular bir tabloya ya da rapora derlenir.
- İzleme. Aynı sorgular bir takvime göre yeniden çalıştırılır; yeni ya da değişen sonuçlar incelenmek üzere işaretlenir.
Beşinin de ortak bir zayıf noktası var: “API bir URL döndü” ile “bu iddia destekleniyor” arasındaki adım. Model bir özeti okur, söylenenden fazlasını çıkarır ve sayfa o iddiayı hiç dile getirmemiş olsa bile atıf düzgün görünür. Atıf biçimine güvenmek yerine bu kontrolü uygulamanın içine yerleştirmek, asıl işin büyük kısmıdır.
Bir arama API’sinin söz veremeyeceği şeyler
Arama API’si, dizininin hangi sayfaları ilgili bulduğunu söyleyebilir. Bir sayfanın doğru, güncel ya da eksiksiz olduğunu söyleyemez; başka ilgili bir sayfanın bulunmadığını da söyleyemez. Bir sayfayı sonuçlarda bulmuş olmak, içeriğini yeniden yayımlama hakkı vermez; yanıttaki bir URL de oturum açma gerektiren içeriği çekme izni değildir. Sağlayıcılar zaman içinde şartlarını ve ürünlerini değiştirir; bu yüzden entegrasyonunuzu, uygulamayı yeniden yazmadan başka bir sağlayıcıya yönlendirebileceğiniz ince bir arayüzün arkasında tutmak akıllıcadır.
GoCux bu tablonun neresinde duruyor
GoCux bir web arama API’si değildir ve açık web’i okumaz. Bilgi arama, bir projenin kendi dokümanları üzerinde çalışır ve pasajları atıflarıyla birlikte döner. Web sayfaları bir projeye yetkilendirilmiş bir tarama ya da dışa aktarma adımıyla ulaşır; özgün sayfa adresi ve erişildikleri tarihle birlikte gelir. Böylece sonradan okuyan biri, bir ifadenin nerede ve ne zaman bulunduğunu görebilir. Bu da GoCux’ı bir arama API’sinin yerine geçen değil, onu tamamlayan bir parça yapar: API sayfa keşfetmenize yardım eder, çalışma alanı ise dayanmaya karar verdiğiniz içeriği kanıtına bağlı tutar ve sonuç doğuran sonraki adımlar bir insanın kararını bekler. Bu tarafı Bilgi arama ve web bilgisinden incelenebilir kanıta sayfaları anlatıyor.
Entegre etmeden önce
- Hangi türü alıyorsunuz: bağlantı ve özet mi, çıkarılmış metin mi, üretilmiş yanıt mı?
- Bir demoya güvenmek yerine kendi işinizden gerçek sorgular çalıştırıp sonuçları okudunuz mu? Nasıl yapılacağını web aramasını kendi sorgularınızla değerlendirmek yazısı gösteriyor.
- Yanıt, dizinin her sayfayı en son ne zaman gördüğünü söylüyor mu?
- Sayfa içeriği önbellekten mi geliyor, canlı mı çekiliyor; bu sizin kullanımınız için fark yaratıyor mu?
- Şartlar sonuçları saklama, kullanıcılara gösterme ve model girdisi olarak kullanma konusunda ne diyor?
- İyi bir yanıtı olmayan sorgularda API nasıl davranıyor: boş sonuç mu dönüyor, yoksa zayıf eşleşmeleri kendinden emin biçimde mi sunuyor?
- Uygulamayı yeniden yazmadan sağlayıcı değiştirebilir misiniz? Seçim konusunu web arama API’si nasıl seçilir yazısı derinleştiriyor.
Bu iş akışını çalışma alanınıza taşıyın.
Kapsamı belirleyin. Kanıtları inceleyin. Gereken adımları onaylayın.