Ç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.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Close Search Window