Programlama

JavaScript: RAG, belgeden cevap almak

Soruya uyan paragrafı bul ve AI'ya yalnız ondan cevap verdir.

Tüm dersler · JavaScript dersleri: sıfırdan öğren

RAG nedir

AI genel konuyu bilir, senin PDF'ini değil. Bütün kitabı bir sorguya koymak olmaz: limit dolar. Tanımadığı yerde ise uydurur. RAG önce soruya uyan paragrafı bulur, sonra AI'ya der: yalnız bu metinden cevap ver. Metin yoksa, "Bu bilgi belgede yok" yaz.

Dört adım ve kod

Belge küçük paragraflara bölünür. Her paragraf rakama, vektöre çevrilir ki, anlam tutulsun. Soru gelince en benzer paragraf bulunur. O paragraf ve soru birlikte gönderilir. Binlerce parça düz diziye sığmaz. Supabase'de pgvector ile saklanır ve SQL en yakın parçayı bulur. Arama yanlış paragraf seçerse cevap da yanlış olur.

const apiKey = process.env.GEMINI_API_KEY;
const url = `https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key=${apiKey}`;

async function seneddenCavabAl(istifadeciSuali, senedinParaqrafi) {
  const sorguMelumati = {
    systemInstruction: {
      parts: [{
        text: "Sən sənəd köməkçisisən. Yalnız verilən mətndən cavab ver. Mətndə yoxdursa yaz: Bu məlumat sənəddə yoxdur. Uydurma."
      }]
    },
    contents: [{
      parts: [{
        text: `Kontekst:\n${senedinParaqrafi}\n\nSual: ${istifadeciSuali}`
      }]
    }]
  };
  const cavab = await fetch(url, {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify(sorguMelumati)
  });
  const melumat = await cavab.json();
  console.log(melumat.candidates[0].content.parts[0].text);
}

const pdfdenTapilanHisse = "Nibras PDF aləti brauzerdə açılır. Fayl serverə yüklənmir.";
seneddenCavabAl("PDF aləti harada açılır?", pdfdenTapilanHisse);

Sorular

100 sayfayı bir contents'e koymak olur mu? Hayır. Token limiti dolar. Belge küçük paragraflara bölünür.

Neden uydurur? Talimatta yasak yok. "Yalnız bu metinden cevap ver, yoksa böyle yaz" cümlesi systemInstruction'da durmalıdır.

Cevap neden yanlış paragraftan gelir? Arama uyan parçayı seçmemiş. AI yalnız kendine verileni görür.

RAG iki sözde nedir? Bul ve yalnız bulunandan yaz. Kendinden ekleme.

Yazar: Nibras Code