2.7 KiB
2.7 KiB
راهنمای تنظیم n8n Workflow برای چت
گزینه 1: پاسخ ساده بدون GPT
Node 1: Webhook
- HTTP Method: POST
- Path:
/chat(یا هر مسیری که میخواهی) - Response Mode: Using 'Respond to Webhook' Node
Node 2: Code (JavaScript)
const inputData = $input.item.json;
const userMessage = inputData.message || '';
// یک پاسخ ساده برمیگردانیم
return {
json: {
response: `شما گفتید: "${userMessage}". این یک پاسخ تست از n8n است!`
}
};
Node 3: Respond to Webhook
- Response Body:
{{ $json.response }}
گزینه 2: با استفاده از GPT (Message a model)
Node 1: Webhook
- HTTP Method: POST
- Path:
/chat - Response Mode: Using 'Respond to Webhook' Node
Node 2: Code (JavaScript)
const inputData = $input.item.json;
const userMessage = inputData.message || '';
const conversationHistory = inputData.conversationHistory || [];
// ساخت messages array برای GPT
const messages = [
{
role: 'system',
content: 'شما یک دستیار هوشمند فارسیزبان هستید. پاسخهای کوتاه و مفید بدهید.'
}
];
// اضافه کردن تاریخچه
conversationHistory.forEach(msg => {
messages.push({
role: msg.role,
content: msg.content
});
});
// اضافه کردن پیام فعلی
messages.push({
role: 'user',
content: userMessage
});
return {
json: {
messages: messages,
model: 'gpt-4o-mini',
temperature: 0.7
}
};
Node 3: Message a model
- Model:
gpt-4o-mini - Messages:
{{ $json.messages }} - Temperature:
{{ $json.temperature }} - Credentials: باید OpenAI API Key را تنظیم کنی
Node 4: Code (برای فرمت کردن پاسخ)
const gptResponse = $input.item.json;
const responseText = gptResponse.choices?.[0]?.message?.content ||
gptResponse.response ||
'پاسخی دریافت نشد';
return {
json: {
response: responseText
}
};
Node 5: Respond to Webhook
- Response Body:
{{ $json.response }}
نکات مهم:
-
URL Webhook: بعد از فعال کردن Webhook، URL را کپی کن و در
.envبذار:VITE_N8N_WEBHOOK_URL=https://your-n8n.com/webhook/chat -
فعال کردن Workflow: حتماً Workflow را فعال (Activate) کن
-
تست: میتوانی با Postman یا curl تست کنی:
curl -X POST https://your-n8n.com/webhook/chat \ -H "Content-Type: application/json" \ -d '{"message":"سلام","userId":"test-user"}'