Model sənin şirkətinin sənədlərini bilmir. Onları hər dəfə tam göndərmək baha və yavaşdır. RAG (Retrieval-Augmented Generation) başqa yol təklif edir: əvvəl sualla bağlı hissələri tapırıq, sonra yalnız onları modelə veririk.
Addım 1: sənədləri hissələrə böl
Sənəd kiçik hissələrə (chunk) bölünür. Hissə çox böyük olsa, axtarış dəqiqliyini itirir; çox kiçik olsa, kontekst itir. Hər hissəyə mənbəni də yaz: sənədin adı və səhifəsi sonra cavabda istinad üçün lazım olacaq.
Addım 2: embeddings
Embedding mətni rəqəmlərdən ibarət vektora çevirir: mənaca yaxın mətnlərin vektorları da yaxın olur. Vektorları pgvector kimi bazada saxlayırıq.
Addım 3: axtarış və cavab
// Sualı vektora çeviririk const vector = await embed(question); // Bazadan ən yaxın 5 hissəni tapırıq const chunks = await db.query( "SELECT text, source FROM chunks ORDER BY embedding <=> $1 LIMIT 5", [toSql(vector)], ); // Modelə sualı kontekstlə birlikdə veririk const answer = await ask(question, chunks);
Keyfiyyəti necə ölçmək olar
- Real suallardan test dəsti hazırla
- Lazımi hissənin tapılıb-tapılmadığını yoxla
- Cavabın mənbəyə uyğunluğunu ölç
- Hər dəyişiklikdən sonra testləri yenidən işə sal
AI Software Developer proqramında RAG ayrıca moduldur: Azərbaycan və rus dilində mənbə istinadları ilə sənədlər üzrə chat-bot qurursan.
