---
title: "n8n ile Kendi Belgelerinizden RAG Soru-Cevap Botu"
description: "n8n ile PDF ve belgelerinizi parçalayıp gömerek kaynaklı yanıtlar veren bir RAG botu kurun. Adım adım rehber ve AgentRoost'ta hazır AI kredileri."
canonical: https://agentroost.app/tr/blog/n8n-rag-belge-soru-cevap-botu
date: 2026-05-07T04:00:00Z
---

[Canonical URL](https://agentroost.app/tr/blog/n8n-rag-belge-soru-cevap-botu)

Büyük dil modelleri bilgilerini eğitim kesim tarihine kadar bilirler; sizin iç belgelerinizi, teknik kılavuzlarınızı ya da şirket politikalarınızı bilmezler. Modele her seferinde belgeleri yapıştırmak ise hem pratik değil hem de bağlam penceresi hızla dolar.

Çözüm **RAG (Retrieval-Augmented Generation)**: belgelerinizi önce küçük parçalara böler, her parçanın anlamsal vektörünü hesaplayarak bir vektör deposuna yazarsınız. Kullanıcı soru sorduğunda sisteminiz ilgili parçaları çeker, bunları AI düğümüne bağlam olarak verir ve model **sadece belgelerinizde ne varsa** onu yanıtlar — uydurma olmaz, kaynak alıntılanabilir.

Bu rehberde bu akışı **n8n üzerinde** sıfırdan kuracaksınız.

---

## Mimariye Genel Bakış

Akış iki bölümden oluşur:

1. **Belge yükleme (Ingestion) akışı** — bir kez (veya belge değiştiğinde) çalışır.  
2. **Soru-cevap (Query) akışı** — her kullanıcı sorusunda tetiklenir.

```
[Ingestion]
Dosya → Extract Text → Text Splitter → Embeddings → Vektör Deposu

[Query]
Kullanıcı sorusu → Embeddings → Vektör Deposu (similarity search) → AI Chat → Yanıt
```

---

## 1. Ingestion Akışı: Belgelerinizi Parçalayın ve Gömün

### Adım 1 — Tetikleyici: Manual Trigger veya Webhook

Tek seferlik yükleme için **Manual Trigger** düğümü yeterli. Yeni belge geldiğinde otomatik çalışmasını istiyorsanız bir **Webhook** ya da **Schedule Trigger** ekleyebilirsiniz.

### Adım 2 — Belgeyi Okuyun: HTTP Request veya Read Binary File

PDF'iniz bir URL'deyse:

- Düğüm: `HTTP Request`  
- Method: `GET`  
- URL: `https://ornek.com/kilavuz.pdf`  
- Response Format: `File`

Yerel bir dosyaysa n8n'nin dosya sistemine koyup `Read Binary File` düğümüyle okuyun.

### Adım 3 — Metni Çıkarın: Extract From File

`Extract From File` düğümünü ekleyin:

- Input Binary Field: `data`  
- Operation: `PDF` (ya da `DOCX`, `Text` — n8n çoğu formatı destekler)

Çıktı: ham metin, `text` alanında.

### Adım 4 — Parçalayın: Recursive Character Text Splitter

`Recursive Character Text Splitter` düğümü metni anlamlı parçalara böler:

| Parametre | Önerilen Değer |
|---|---|
| Chunk Size | `800` |
| Chunk Overlap | `150` |
| Separator | `\n\n` önce, `\n`, sonra ` ` |

> **Neden overlap?** Bir cümlenin anlamı chunk sınırında ikiye bölünmesin diye. 150 karakterlik örtüşme bu kopuşu önler.

Çıktı: her biri bağımsız bir JSON nesnesi olan chunk listesi. Örnek:

```json
{ "text": "Ürün garantisi 2 yıldır. Hasar görmüş ürünlerde..." }
```

### Adım 5 — Gömün ve Saklayın: Embeddings + Vector Store

n8n'nin AI düğümleri panelinden sırasıyla ekleyin:

**Embeddings Modeli** (sub-node):
- Düğüm: `Embeddings OpenAI` (ya da desteklenen herhangi bir provider)  
- Model: `text-embedding-3-small`  
- Credential: AgentRoost'ta dahili — ayrıca API anahtarı girmeniz gerekmez

**Vektör Deposu** (ana düğüm):
- Düğüm: `Pinecone Vector Store` veya `Supabase Vector Store` veya `In-Memory Vector Store` (test için)  
- Operation: `Insert`  
- Index / Table: `belgelerim`  
- Metadata'ya kaynak bilgisi ekleyin: `{ "source": "kilavuz-v2.pdf", "page": 3 }`

Akışı çalıştırın. Birkaç saniyede tüm chunk'lar vektör deposuna yazılır.

---

## 2. Soru-Cevap Akışı: Soruları Yanıtlayın

### Adım 1 — Tetikleyici: Webhook

Kullanıcıdan gelen soruyu almak için bir **Webhook** düğümü:

- HTTP Method: `POST`  
- Path: `/rag-soru`  
- Response Mode: `Last Node`

Webhook URL'niz n8n instance'ınızda otomatik oluşur:  
`https://<id>.agentroost.app/webhook/rag-soru`

### Adım 2 — Soruyu Göm: Embeddings

Gelen `body.question` değerini yukarıdaki **aynı embedding modeliyle** vektörleştirin. Modeli tutarlı tutmak şart — farklı model farklı vektör uzayı üretir, aramalar anlamsızlaşır.

### Adım 3 — Benzer Parçaları Çekin: Vector Store Retrieve

- Düğüm: `Pinecone Vector Store` (Operation: `Query`)  
- Top K: `4` (en benzer 4 chunk genellikle yeterlidir)  
- Index: `belgelerim`

Çıktı: `score` ve `pageContent` içeren 4 nesne.

### Adım 4 — Bağlamı Birleştirin: Set veya Code Düğümü

Chunk'ları tek bir metin bloğuna dönüştürün:

```javascript
// Code düğümü (JavaScript)
const chunks = $input.all().map(i => i.json.pageContent);
const context = chunks.join('\n\n---\n\n');

return [{ json: { context, question: $('Webhook').item.json.body.question } }];
```

### Adım 5 — AI'ya Sorun: Basic LLM Chain

- Düğüm: `Basic LLM Chain`  
- Model (sub-node): `OpenAI Chat Model` — GPT-4o mini veya seçtiğiniz herhangi bir model  
- Prompt (System):

```
Sen bir belgeden bilgi aktaran asistansın.
Sana verilen BAĞLAM bölümündeki bilgileri kullanarak soruyu yanıtla.
Eğer cevap bağlamda yoksa "Bu bilgi belgelerimde yer almıyor." de.
Asla tahmin etme.

BAĞLAM:
{{ $json.context }}
```

- Prompt (Human / User Message): `{{ $json.question }}`

### Adım 6 — Kaynak Bilgisiyle Döndürün: Respond to Webhook

```json
{
  "answer": "{{ $json.text }}",
  "sources": ["kilavuz-v2.pdf, sayfa 3", "politika-2024.pdf, sayfa 7"]
}
```

Kaynak bilgisini metadata'dan çekmek için ingestion adımında her chunk'a `source` alanı yazdığınızdan emin olun.

---

## Dikkat Edilmesi Gereken Yaygın Hatalar

- **Chunk size çok büyükse** bağlam penceresi dolar ve model ilk birkaç chunk'tan sonrasını görmez.  
- **Chunk size çok küçükse** parçalar anlamsız hale gelir ("Madde 3.1:" gibi kopuk metinler).  
- **Embedding modeli değişirse** tüm vektör deposunu sıfırlayıp yeniden indekslemeniz gerekir.  
- **Top K çok yüksek seçilirse** alakasız chunk'lar modeli yanıltır. 4–6 arası çoğu kullanım için idealdir.  
- Webhook'u herkese açtıysanız basit bir **API key kontrolü** için `IF` düğümü ve `Header Auth` eklemeyi unutmayın.

---

## AgentRoost'ta Bu Akışı Çalıştırmak

Yukarıdaki akışın çalışması için iki kritik şey gerekir: n8n instance'ınız ve AI/embedding modellerine erişim. Normalde bunlar ayrı ayrı düzenlemeniz gereken şeylerdir — n8n'yi bir sunucuya kurmak, OpenAI API anahtarı almak, fatura ödemek, sunucuyu izlemek.

AgentRoost'ta bu ikisi tek abonelikte gelir:

1. [agentroost.app](https://agentroost.app) adresinden kayıt olun (e-posta, Google, Microsoft veya Discord ile).  
2. n8n framework'ünü seçin ve instance'ınıza bir isim verin.  
3. Yaklaşık 2 dakika içinde `https://<id>.agentroost.app` adresinde **kendi n8n editörünüz** açılır — veriler, iş akışları, erişim tamamen size ait.  
4. Embeddings ve LLM düğümlerini oluşturduğunuzda credential girmeniz istenmez — AI kredileri aboneliğe dahildir.

Akışı oluşturun, webhook URL'nizi paylaşın, bitti. 7/24 çalışır, SSL hazırdır, siz sadece iş mantığına odaklanırsınız.

Fiyat $19.99/ay'dan başlar. Karşılaştırmak için: bir VPS + n8n kurulumu + LLM API kredileri + SSL sertifikası topladığınızda hem daha pahalıya gelir hem de saatlerinizi alır. 14 gün para iade garantisi var, iptal etmek bir tık.

[Planları karşılaştır](/tr/pricing) — [n8n instance'ı başlat](/tr/agents/n8n)

---

## Özet

RAG, LLM'i gerçek bilgi kaynağına bağlamanın en güvenilir yoludur. n8n bu akışı görsel olarak kurmanıza izin verir: belgeyi oku, parçala, göm, depola, sorgula, yanıtla — her adım ayrı bir düğüm, her düğüm görünür ve değiştirilebilir. Kendi belgelerinizden kaynaklı yanıtlar veren bir bot için bu mimari, bir hafta içinde üretime alınabilecek sağlam bir standarttır.
