Çoğu WordPress “AI chatbot” eklentisi sadece güzelleştirilmiş SSS arama çubuklarıdır. Gerçekten faydalı bir chatbot, özel ürünlerinizi, politikalarınızı ve iş bağlamınızı anlamalıdır. Bu da RAG (Retrieval-Augmented Generation) gerektirir — yanıt üretmeden önce AI’ı gerçek içeriğinizle temellendirir.
Mimari Genel Bakış
Customer Message
→ Embed query (vector)
→ Search knowledge base (similarity)
→ Retrieve relevant context (products, policies, FAQ)
→ Send to Claude with context
→ Return answer
→ Log conversation
Temel anlayış: AI ürün kataloğunuzu ezberlemiyor. Her müşteri sorusu için içeriğinizi arar, ilgili parçaları bulur ve bulduğu şeylere dayanarak bir yanıt üretir.
Adım 1: Bilgi Tabanınızı Oluşturun
Chatbotunuz yalnızca arayabildiği içerik kadar iyidir. Şunları çıkarın ve yapılandırın:
Ürün verileri (WooCommerce’ten):
async function extractProductKnowledge() {
const products = await wooApi.get('products', { per_page: 100 });
return products.data.map(p => ({
type: 'product',
title: p.name,
content: ${p.name}. ${stripHtml(p.description)}. Price: $${p.price}. ${p.stock_status === 'instock' ? 'In stock' : 'Out of stock'}. Categories: ${p.categories.map(c => c.name).join(', ')}.,
metadata: { id: p.id, sku: p.sku, url: p.permalink }
}));
}
Politikalar (kargo, iadeler, SSS sayfaları):
async function extractPolicyPages() {
const pageIds = [123, 456, 789]; // Shipping, Returns, FAQ page IDs
const pages = await Promise.all(
pageIds.map(id => wpApi.get(pages/${id}))
);
return pages.map(p => ({
type: 'policy',
title: p.data.title.rendered,
content: stripHtml(p.data.content.rendered),
metadata: { id: p.data.id, url: p.data.link }
}));
}
Adım 2: Vektör Gömmeleri Oluşturun
Semantik arama için bilgi tabanınızı vektör gömmelere dönüştürün:
const { PineconeClient } = require('@pinecone-database/pinecone');
async function indexKnowledge(documents) {
const pinecone = new PineconeClient();
await pinecone.init({ apiKey: process.env.PINECONE_API_KEY });
const index = pinecone.Index('wordpress-chatbot');
for (const doc of documents) {
// Generate embedding via OpenAI or Voyage AI
const embedding = await generateEmbedding(doc.content);
await index.upsert([{
id: ${doc.type}-${doc.metadata.id},
values: embedding,
metadata: {
type: doc.type,
title: doc.title,
content: doc.content.substring(0, 1000),
url: doc.metadata.url
}
}]);
}
}
Adım 3: Chat Endpoint’i
app.post('/api/chat', async (req, res) => {,const { message, session_id } = req.body;
// 1. Search knowledge base
const queryEmbedding = await generateEmbedding(message);
const searchResults = await pineconeIndex.query({
vector: queryEmbedding,
topK: 5,
includeMetadata: true
});
// 2. Build context from results
const context = searchResults.matches
.map(m =>
[${m.metadata.type}] ${m.metadata.title}: ${m.metadata.content}).join('\n\n');
// 3. Get conversation history
const history = await getConversationHistory(session_id);
// 4. Generate response with Claude
const response = await anthropic.messages.create({
model: 'claude-sonnet-4-20250514',
max_tokens: 500,
system:
You are a helpful customer service agent for [Store Name].Answer questions using ONLY the provided context. If the context doesn't contain
the answer, say you'll connect them with a human agent.
Never make up product details, prices, or policies.
Be concise and friendly.
Context:
${context}
messages: [
...history,
{ role: 'user', content: message }
]
});
const answer = response.content[0].text;
// 5. Save to conversation history
await saveMessage(session_id, 'user', message);
await saveMessage(session_id, 'assistant', answer);
res.json({ answer, session_id });
});
Adım 4: Frontend Widget’ı
WordPress shortcode veya eklentisi aracılığıyla gömülen basit chat widget’ı:
class ChatWidget {
constructor(container, apiUrl) {
this.container = container;
this.apiUrl = apiUrl;
this.sessionId = this.getSessionId();
this.render();
}
getSessionId() {
let id = sessionStorage.getItem('chat_session');
if (!id) {
id = crypto.randomUUID();
sessionStorage.setItem('chat_session', id);
}
return id;
}
async sendMessage(message) {
this.addMessage('user', message);
this.showTyping();
const response = await fetch(this.apiUrl, {
method: 'POST',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({
message,
session_id: this.sessionId
})
});
const data = await response.json();
this.hideTyping();
this.addMessage('assistant', data.answer);
}
}
Özel Durumların Ele Alınması
Ürün kullanılabilirliği soruları:
Chatbot, önbelleğe alınmış bilgi tabanı verilerine güvenmek yerine WooCommerce API’si aracılığıyla gerçek zamanlı stok kontrol eder.
Fiyat sorguları:
Her zaman WooCommerce’ten güncel fiyatları çekin. Vektör veritabanındaki önbelleğe alınmış fiyatlar güncel olmayabilir.
Sipariş durumu:
Sipariş ayrıntılarını göstermeden önce kimlik doğrulama gerektir. Yalnızca e-postaya dayalı sipariş bilgilerini asla ifşa etmeyin.
İnsan devri:
AI yardım edemediğinde veya müşteri sinirlendiğinde, durumu yükseltin:
const HANDOFF_TRIGGERS = [
'speak to a human', 'real person', 'manager',
'this is not helpful', 'complaint'
];
if (HANDOFF_TRIGGERS.some(t => message.toLowerCase().includes(t))) {
return { answer: "I'll connect you with our team right away.", handoff: true };
}
Başarıyı Ölçme
Bu metrikleri takip edin:
| Metrik | Hedef |
|---|---|
| Çözüm oranı (insan gerekmez) | > %60 |
| Ortalama yanıt süresi | < 3 saniye |
| Müşteri memnuniyeti (beğen/beğenme) | > %80 pozitif |
| Halüsinasyon oranı (yanlış bilgi) | < %2 |
| Devir oranı | < %30 |
Maliyet Değerlendirmeleri
| Bileşen | Aylık Maliyet (1.000 konuşma) |
|---|---|
| Claude API | $15-30 |
| Pinecone (Starter) | $0 (ücretsiz katman) |
| Embedding API | $2-5 |
| Hosting (API sunucusu) | $10-20 |
| Toplam | ~$30-55/ay |
Bunu 1.000 konuşmayı işleyen bir insan temsilciyle karşılaştırın: ayda $2.000-4.000.
Sonuç
Gerçek WordPress/WooCommerce içeriğinize dayalı RAG destekli bir chatbot gerçek değer sunar — gerçek politikalara dayalı gerçek ürünler hakkında gerçek yanıtlar. Teknik yığın (vektör arama + Claude) olgun ve uygun fiyatlı. Anahtar veri kalitesidir: chatbotunuz yalnızca ona verdiğiniz içerik kadar iyidir. Ürünler ve SSS ile başlayın, çözüm oranlarını ölçün ve yanıtlayamadığı sorulara dayanarak kapsamı genişletin.
Last modified: Mart 6, 2026
United States / English
Slovensko / Slovenčina
Canada / Français
Türkiye / Türkçe