
تست A/B پرامپتهای هوش مصنوعی با Supabase و GPT-4o
14 دقیقه مطالعه · منتشر شده ۱۴۰۵/۴/۱۹
دانلود workflow
فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.
- فایل JSON را دانلود کنید.
- در n8n: Workflows → Import from File.
- Credentialهای هر node را متصل کنید.
- workflow را فعال کنید.
شناسه workflow: 8790 · منبع: کاتالوگ Axeto
تست A/B پرامپتهای هوش مصنوعی با Supabase، Langchain Agent و OpenAI GPT-4o
https://axeto.ai/n8n
تست A/B پرامپتهای هوش مصنوعی با Supabase، Langchain Agent و OpenAI GPT-4o
۱. نمای کلی Workflow
این workflow مکانیزم تست A/B برای پرامپتهای هوش مصنوعی را با استفاده از ادغامهای n8n با Supabase، Langchain Agent و مدل GPT-4o شرکت OpenAI پیادهسازی میکند. این workflow برای تخصیص تصادفی جلسات چت به یکی از دو نوع پرامپت متمایز (پایه یا جایگزین) و حفظ ثبات در طول جلسه برای استفاده از پرامپت طراحی شده است. این workflow با ردیابی تخصیصها و پاسخهای جلسه، ارزیابی عملکرد پرامپتهای مختلف را در یک محیط شبیه به تولید تسهیل میکند.
بلوکهای منطقی شامل:
- ۱.۱ دریافت ورودی: دریافت پیامهای چت ورودی و استخراج شناسههای جلسه.
- ۱.۲ مدیریت جلسه: بررسی اینکه آیا جلسه چت از قبل در Supabase وجود دارد و در صورت جدید بودن، مسیر پرامپت را اختصاص میدهد.
- ۱.۳ تعریف پرامپت: تعریف مقادیر پرامپت پایه و جایگزین و تعیین اینکه کدام یک برای هر جلسه استفاده شود.
- ۱.۴ پردازش هوش مصنوعی: استفاده از Langchain AI Agent پیکربندی شده با پرامپت انتخاب شده و OpenAI GPT-4o برای تولید پاسخ.
- ۱.۵ مدیریت حافظه: ذخیره و بازیابی تاریخچه چت در PostgreSQL برای حفظ زمینه مکالمه.
- ۱.۶ راهاندازی و مستندات: یادداشتهای چسبنده که راهنمایی، دستورالعملها و نکات پیکربندی را ارائه میدهند.
---
۲. تجزیه و تحلیل بلوک به بلوک
#### ۱.۱ دریافت ورودی
- مرور کلی:
پیامهای چت ورودی را از طریق گره تریگر چت Langchain دریافت میکند و ورودی کاربر و اطلاعات جلسه را برای شروع پردازش workflow استخراج میکند.
- گرههای درگیر:
- When chat message received (هنگام دریافت پیام چت)
- جزئیات گره:
- نوع: @n8n/n8n-nodes-langchain.chatTrigger
- نقش: شنونده Webhook برای پیامهای چت، راهاندازی workflow در ورودی جدید.
- پیکربندی: گزینههای پیشفرض؛ پارامترهای اضافی ندارد.
- ورودیها: فراخوانیهای HTTP Webhook خارجی.
- خروجیها: JSON حاوی chatInput (پیام کاربر) و sessionId (شناسه جلسه چت).
- موارد لبهای: sessionId گم شده یا بدشکل، خرابی Webhook، یا payloadهای غیرمنتظره.
- الزامات نسخه: نسخه ۱.۱ یا بالاتر برای پایداری توصیه میشود.
#### ۱.۲ مدیریت جلسه
- مرور کلی:
بررسی میکند که آیا جلسه چت از قبل در Supabase وجود دارد یا خیر. اگر وجود نداشته باشد، جلسه را به طور تصادفی به یکی از دو مسیر پرامپت اختصاص میدهد و این تخصیص را برای ثبات ذخیره میکند.
- گرههای درگیر:
- Define Path Values (تعریف مقادیر مسیر)
- Check If Session Exists (بررسی وجود جلسه)
- If Session Does Exist (اگر جلسه وجود دارد)
- Assign Path To Session (اختصاص مسیر به جلسه)
- جزئیات گره:
- Define Path Values
- نوع: گره Set
- نقش: رشتههای پرامپت ثابت را برای پرامپتهای پایه و جایگزین تعریف میکند.
- پیکربندی: baseline_value را روی "The dog's name is Ben" و alternative_value را روی "The dog's name is Tom" تنظیم میکند.
- ورودیها: از تریگر چت.
- خروجیها: JSON با انواع پرامپت.
- موارد لبهای: هیچ مورد قابل توجهی وجود ندارد مگر اینکه مقادیر خالی یا نامعتبر باشند.
- نسخه: ۳.۴
- Check If Session Exists
- نوع: گره Supabase
- نقش: جدول split_test_sessions را در Supabase برای رکوردی که با sessionId ورودی مطابقت دارد، کوئری میکند.
- پیکربندی: فیلتر بر اساس session_id برابر با sessionId ورودی.
- اعتبارنامهها: API Supabase متصل به پروژه bsde.ai.
- ورودیها: خروجی Define Path Values.
- خروجیها: در صورت یافتن، رکورد جلسه موجود را برمیگرداند.
- موارد لبهای: خطاهای اتصال Supabase، عدم یافتن جلسه مطابق، نتایج خالی.
- نسخه: ۱
- If Session Does Exist
- نوع: گره If
- نقش: انشعاب شرطی بر اساس اینکه آیا رکورد جلسه وجود دارد (بررسی میکند که آیا فیلد id وجود دارد).
- پیکربندی: وجود فیلد id را در نتیجه کوئری Supabase بررسی میکند.
- ورودیها: خروجی Check If Session Exists.
- خروجیها: شاخه True اگر جلسه وجود دارد، False اگر وجود ندارد.
- موارد لبهای: مثبت کاذب اگر ساختار داده تغییر کند، خطاهای عبارت.
- نسخه: ۲.۲
- Assign Path To Session
- نوع: گره Supabase
- نقش: رکورد جلسه جدید را با یک مقدار بولی تصادفی show_alternative (true/false) که نشان میدهد کدام پرامپت باید نمایش داده شود، درج میکند.
- پیکربندی: فیلدهای تنظیم شده: session_id با sessionId فعلی، show_alternative با مقدار بولی تصادفی (شانس ۵۰٪).
- اعتبارنامهها: همان اعتبارنامههای Supabase.
- ورودیها: شاخه False از If Session Does Exist (یعنی جلسه جدید).
- خروجیها: تأیید درج.
- موارد لبهای: خرابیهای نوشتن Supabase، کلیدهای تکراری اگر session_id از قبل وجود داشته باشد.
- نسخه: ۱
#### ۱.۳ تعریف پرامپت
- مرور کلی:
بر اساس تخصیص ذخیره شده در Supabase، تعیین میکند که کدام پرامپت (پایه یا جایگزین) برای جلسه فعلی استفاده شود.
- گرههای درگیر:
- Get Correct Prompt (دریافت پرامپت صحیح)
- جزئیات گره:
- نوع: گره Set
- نقش: متن پرامپت را به صورت شرطی بر اساس مقدار بولی show_alternative از رکورد Supabase انتخاب میکند.
- پیکربندی: از عبارت برای انتخاب alternative_value در صورت true بودن show_alternative استفاده میکند؛ در غیر این صورت baseline_value.
- ورودیها: شاخه True از If Session Does Exist یا خروجی Assign Path To Session.
- خروجیها: JSON با پرامپت انتخاب شده تحت ویژگی prompt.
- موارد لبهای: فیلد show_alternative گم شده یا مقادیر null میتوانند باعث شکست عبارت شوند.
- نسخه: ۳.۴
#### ۱.۴ پردازش هوش مصنوعی
- مرور کلی:
از Langchain AI Agent پیکربندی شده با پرامپت انتخاب شده به عنوان پیام سیستم و OpenAI GPT-4o به عنوان مدل زبان زیرین برای تولید پاسخهای چت استفاده میکند.
- گرههای درگیر:
- AI Agent (عامل هوش مصنوعی)
- OpenAI Chat Model (مدل چت OpenAI)
- جزئیات گره:
- AI Agent
- نوع: @n8n/n8n-nodes-langchain.agent
- نقش: به عنوان عامل اصلی مکالمه هوش مصنوعی عمل میکند که پرامپت و ورودی کاربر را دریافت میکند.
- پیکربندی:
- text: ورودی چت کاربر از "When chat message received".
- systemMessage: روی پرامپت انتخاب شده در "Get Correct Prompt" تنظیم شده است.
- promptType: حالت "define" برای تعریف پرامپت.
- ورودیها: خروجی Get Correct Prompt برای پرامپت، ورودی چت از تریگر اولیه.
- خروجیها: پاسخ چت تولید شده توسط هوش مصنوعی.
- موارد لبهای: خطاهای مدل، خطرات تزریق پرامپت، محدودیتهای نرخ API، شکستهای احراز هویت.
- نسخه: ۱.۷
- OpenAI Chat Model
- نوع: @n8n/n8n-nodes-langchain.lmChatOpenAi
- نقش: مدل زیرین OpenAI GPT-4o که توسط AI Agent برای تولید متن استفاده میشود.
- پیکربندی: مدل روی gpt-4o-mini تنظیم شده است.
- اعتبارنامهها: کلید API OpenAI مورد نیاز است.
- ورودیها: به عنوان مدل زبان هوش مصنوعی به "AI Agent" متصل شده است.
- خروجیها: نتایج تولید متن به AI Agent.
- موارد لبهای: تایماوتهای API، محدودیتهای سهمیه، کلید API نامعتبر.
- نسخه: ۱.۲
#### ۱.۵ مدیریت حافظه
- مرور کلی:
تاریخچه مکالمات چت را در PostgreSQL ذخیره و بازیابی میکند تا حافظه زمینه را برای AI Agent فراهم کند.
- گرههای درگیر:
- Postgres Chat Memory (حافظه چت Postgres)
- جزئیات گره:
- نوع: @n8n/n8n-nodes-langchain.memoryPostgresChat
- نقش: پایداری حافظه چت را برای جلسات، با کلید جلسه سفارشی، مدیریت میکند.
- پیکربندی:
- جدول: n8n_split_test_chat_histories
- کلید جلسه: شناسه جلسه از گره "When chat message received".
- sessionIdType: کلید سفارشی برای تمایز جلسات.
- اعتبارنامهها: اتصال پایگاه داده PostgreSQL به پایگاه داده Supabase Session Pooler.
- ورودیها: به عنوان حافظه هوش مصنوعی به "AI Agent" متصل شده است.
- خروجیها: زمینه حافظه را برای ورودی AI Agent فراهم میکند.
- موارد لبهای: خرابیهای اتصال پایگاه داده، جدول تاریخچه چت گم شده، خطاهای کوئری.
- نسخه: ۱.۳
#### ۱.۶ راهاندازی و مستندات
- مرور کلی:
یادداشتهای چسبنده را در سراسر workflow با توضیحات، دستورالعملها، نکات راهاندازی و راهنمایی اصلاحات ارائه میدهد.
- گرههای درگیر:
- Sticky Note1 تا Sticky Note8
- جزئیات گره:
- نوع: n8n-nodes-base.stickyNote
- نقش: حاشیهنویسیهای بصری برای کاربران، توضیح بلوکها، ارائه دستورالعملها.
- پیکربندی: محتوا شامل دستورالعملهای راهاندازی، توضیحات مورد استفاده، نکات اصلاح و پیوند به منابع است.
- موقعیتیابی: به صورت استراتژیک در نزدیکی گرههای مرتبط برای راهنمایی قرار گرفته است.
- موارد لبهای: هیچ مورد قابل اعمالی وجود ندارد.
---
۳. جدول خلاصه
| نام گره | نوع گره | نقش عملکردی | گره(های) ورودی | گره(های) خروجی | یادداشت چسبنده |
|---|---|---|---|---|---|
| When chat message received | @n8n/n8n-nodes-langchain.chatTrigger | دریافت پیامهای چت ورودی | External webhook | Define Path Values | ## ۱. دریافت پیام |
| Define Path Values | Set | تعریف پرامپتهای پایه و جایگزین | When chat message received | Check If Session Exists | ### اصلاح - مقادیر پرامپتهای پایه و جایگزین را تنظیم کنید |
| Check If Session Exists | Supabase | بررسی وجود جلسه در Supabase | Define Path Values | If Session Does Exist | |
| If Session Does Exist | If | انشعاب بر اساس وجود جلسه | Check If Session Exists | Get Correct Prompt, Assign Path To Session | |
| Assign Path To Session | Supabase | اختصاص تصادفی مسیر پرامپت در صورت جلسه جدید | If Session Does Exist (false) | Get Correct Prompt | |
| Get Correct Prompt | Set | انتخاب پرامپت بر اساس تخصیص جلسه | If Session Does Exist (true), Assign Path To Session | AI Agent | |
| AI Agent | @n8n/n8n-nodes-langchain.agent | عامل اصلی مکالمه هوش مصنوعی | Get Correct Prompt, When chat message received | ## ۳. عامل هوش مصنوعی | |
| OpenAI Chat Model | @n8n/n8n-nodes-langchain.lmChatOpenAi | مدل زبان OpenAI GPT-4o | AI Agent (ai_languageModel) | AI Agent | ### اصلاح - این گره فرعی را برای استفاده از مدل زبان متفاوت جایگزین کنید |
| Postgres Chat Memory | @n8n/n8n-nodes-langchain.memoryPostgresChat | مدیریت حافظه جلسه چت | AI Agent (ai_memory) | AI Agent | |
| Sticky Note1 | Sticky Note | حاشیهنویسی بلوک Workflow | ## ۱. دریافت پیام | ||
| Sticky Note | Sticky Note | حاشیهنویسی بلوک Workflow | ## ۲. تعیین پرامپت برای LLM | ||
| Sticky Note2 | Sticky Note | حاشیهنویسی بلوک Workflow | ## ۳. عامل هوش مصنوعی | ||
| Sticky Note3 | Sticky Note | نمای کلی Workflow و نکات مورد استفاده | ## تست A/B پرامپتهای مختلف عامل با Supabase و OpenAI (توضیحات مفصل و مراحل بعدی) | ||
| Sticky Note5 | Sticky Note | دستورالعملهای راهاندازی | ۱. جدول Supabase split_test_sessions را با ستونهای session_id (text) و show_alternative (bool) ایجاد کنید ۲. اعتبارنامهها را اضافه کنید ۳. پرامپتها را اصلاح کنید ۴. فعال و تست کنید ۵. جلسات را آزمایش کنید | ||
| Sticky Note6 | Sticky Note | نکته اصلاح | ### اصلاح - مقادیر پرامپتهای پایه و جایگزین را تنظیم کنید | ||
| Sticky Note8 | Sticky Note | نکته اصلاح | ### اصلاح - این گره فرعی را برای استفاده از مدل زبان متفاوت جایگزین کنید |
---
۴. بازسازی Workflow از ابتدا
۱. ایجاد گره تریگر چت ورودی
- افزودن گره: @n8n/n8n-nodes-langchain.chatTrigger
- هدف: دریافت پیامهای چت از طریق webhook.
- پیکربندی: گزینههای پیشفرض را رها کنید.
- URL webhook را برای فراخوانیهای خارجی یادداشت کنید.
۲. تعریف مقادیر پرامپت پایه و جایگزین
- افزودن گره: Set
- نام: Define Path Values
- دو متغیر رشته اختصاص دهید:
- baseline_value = "The dog's name is Ben"
- alternative_value = "The dog's name is Tom"
- خروجی تریگر چت را به این گره متصل کنید.
۳. پیکربندی اعتبارنامههای Supabase
- اعتبارنامههای API Supabase را با پروژه Supabase خود (به عنوان مثال، bsde.ai) راهاندازی کنید.
- اطمینان حاصل کنید که جدولی به نام split_test_sessions با ستونهای زیر دارید:
- session_id (text)
- show_alternative (boolean)
۴. بررسی وجود جلسه در Supabase
- افزودن گره: Supabase
- نام: Check If Session Exists
- عملیات: Get
- جدول: split_test_sessions
- شرط فیلتر: session_id برابر با {{$node["When chat message received"].json["sessionId"]}}
- خروجی گره Define Path Values را به این گره متصل کنید.
۵. ایجاد انشعاب شرطی برای تشخیص جلسات موجود
- افزودن گره: If
- نام: If Session Does Exist
- شرط: بررسی کنید که آیا کوئری Supabase رکوردی را برگردانده است (فیلد id وجود دارد)
- خروجی گره Check If Session Exists را به این گره متصل کنید.
۶. اختصاص مسیر پرامپت برای جلسات جدید
- افزودن گره: Supabase
- نام: Assign Path To Session
- عملیات: Insert or Upsert در جدول split_test_sessions
- فیلدها:
- session_id = {{$node["When chat message received"].json["sessionId"]}}
- show_alternative = {{ Math.random() < 0.5 }} (مقدار بولی تصادفی)
- خروجی False (جلسه وجود ندارد) گره If را به این گره متصل کنید.
۷. تعیین اینکه کدام پرامپت استفاده شود
- افزودن گره: Set
- نام: Get Correct Prompt
- متغیر prompt را با عبارت اختصاص دهید:
```
{{$json.show_alternative ? $node["Define Path Values"].json.alternative_value : $node["Define Path Values"].json.baseline_value}}
```
- خروجی True (جلسه وجود دارد) گره If و خروجی Assign Path To Session را به این گره متصل کنید.
۸. پیکربندی گره OpenAI Chat Model
- افزودن گره: @n8n/n8n-nodes-langchain.lmChatOpenAi
- نام: OpenAI Chat Model
- مدل: gpt-4o-mini
- اعتبارنامهها: کلید API OpenAI را پیکربندی کنید.
- این گره را به عنوان مدل زبان هوش مصنوعی به گره AI Agent متصل کنید.
۹. افزودن گره AI Agent
- افزودن گره: @n8n/n8n-nodes-langchain.agent
- نام: AI Agent
- پارامترها:
- text: {{$node["When chat message received"].json.chatInput}}
- systemMessage: {{$json.prompt}} (از گره Get Correct Prompt)
- promptType: "define"
- خروجی گره Get Correct Prompt را به پارامترهای این گره متصل کنید و همچنین گره OpenAI Chat Model را به عنوان مدل زبان هوش مصنوعی متصل کنید.
- ورودی چت را از تریگر چت به عنوان ورودی کاربر متصل کنید.
۱۰. راهاندازی گره Postgres Chat Memory
- افزودن گره: @n8n/n8n-nodes-langchain.memoryPostgresChat
- نام: Postgres Chat Memory
- نام جدول: n8n_split_test_chat_histories (باید در نمونه PostgreSQL شما وجود داشته باشد)
- کلید جلسه: {{$node["When chat message received"].json.sessionId}}
- نوع شناسه جلسه: customKey
- اعتبارنامهها: اتصال پایگاه داده PostgreSQL (به عنوان مثال، Supabase Session Pooler)
- این گره را به عنوان حافظه هوش مصنوعی به گره AI Agent متصل کنید.
۱۱. اتصال گرهها برای جریان اجرا
- When chat message received → Define Path Values → Check If Session Exists → If Session Does Exist
- If true → Get Correct Prompt → AI Agent
- If false → Assign Path To Session → Get Correct Prompt → AI Agent
- AI Agent به OpenAI Chat Model (ai_languageModel) و Postgres Chat Memory (ai_memory) متصل میشود.
۱۲. افزودن یادداشتهای چسبنده (اختیاری اما توصیه میشود)
- یادداشتهای چسبنده را در نزدیکی بلوکهای منطقی برای مستندسازی هدف و دستورالعملها اضافه کنید.
۱۳. فعالسازی Workflow و تست
- Workflow را فعال کنید.
- پیامهای چت را با شناسههای جلسه منحصر به فرد برای تست تخصیص تقسیم و پاسخهای هوش مصنوعی ارسال کنید.
---
۵. نکات عمومی و منابع
| محتوای نکته | زمینه یا پیوند |
|---|---|
دستورالعملهای راهاندازی: جدول Supabase split_test_sessions را با ستونهای session_id (text) و show_alternative (bool) ایجاد کنید. اعتبارنامههای Supabase، OpenAI و PostgreSQL خود را قبل از فعالسازی اضافه کنید. | Sticky Note5 |
| Workflow تست A/B مؤثر انواع پرامپت را با تخصیص پرامپت در سطح جلسه پایدار برای تجربه کاربری سازگار نشان میدهد. | Sticky Note3 |
| برای تست مدلها یا پارامترهای زبان مختلف (به عنوان مثال، دما)، گره OpenAI Chat Model را به طور مناسب جایگزین یا اصلاح کنید. | Sticky Note8 |
| مقادیر پرامپت پایه و جایگزین را در گره 'Define Path Values' اصلاح کنید تا با محتوای پرامپتهای مختلف آزمایش کنید. | Sticky Note6 |
| برای بهبود بیشتر، جمعآوری معیارهایی برای اندازهگیری اثربخشی پرامپت و گسترش قابلیتهای تست را در نظر بگیرید. | Sticky Note3 (بخش مراحل بعدی) |
---
سلب مسئولیت: متن ارائه شده منحصراً از یک workflow خودکار ایجاد شده با n8n، ابزاری برای ادغام و اتوماسیون، نشأت میگیرد. این پردازش به شدت از سیاستهای محتوا پیروی میکند و حاوی هیچ گونه محتوای غیرقانونی، توهینآمیز یا محافظت شده نیست. تمام دادههای دستکاری شده قانونی و عمومی هستند.
Nodeهای استفادهشده
سوالات متداول
این workflow چگونه تست A/B پرامپتهای هوش مصنوعی را انجام میدهد؟▾
این workflow با تخصیص تصادفی هر جلسه چت به یکی از دو پرامپت (پایه یا جایگزین) تست A/B را انجام میدهد. سپس پاسخها و تخصیصها را برای تحلیل عملکرد هر پرامپت ذخیره میکند.
چه ابزارهایی در این workflow استفاده شدهاند؟▾
این workflow از n8n برای اتوماسیون، Supabase برای ذخیرهسازی دادهها، Langchain Agent برای مدیریت منطق هوش مصنوعی و OpenAI GPT-4o برای پردازش زبان طبیعی استفاده میکند.
چگونه workflow ثبات پرامپت در طول یک جلسه را تضمین میکند؟▾
پس از تخصیص اولیه یک پرامپت به یک جلسه چت، workflow آن تخصیص را در Supabase ذخیره میکند و در طول همان جلسه از همان پرامپت استفاده میکند تا از نتایج ثابت اطمینان حاصل شود.
هدف اصلی از پیادهسازی این workflow چیست؟▾
هدف اصلی، فراهم کردن یک مکانیزم خودکار برای ارزیابی و مقایسه عملکرد پرامپتهای مختلف هوش مصنوعی در یک محیط شبیه به تولید است تا بتوان بهترین پرامپت را برای وظایف خاص شناسایی کرد.
workflowهای مرتبط
- برنامهریز محتوای پینترست ۷ روزه با Notion و ایمیلSocial Media
- تولید خودکار پست وبلاگ Shopify با هوش مصنوعی GeminiMiscellaneous
- تولیدکننده پست وبلاگ وردپرس با هوش مصنوعی: محتوای خودکار و …Content Creation
- ابزار هوشمند جاسوسی تبلیغات فیسبوک با Apify و OpenAIMarket Research
- تولید خودکار پست مهمان با هوش مصنوعی و Google SheetsContent Creation
- تولیدکننده پیشنمایش مدل مو با هوش مصنوعی و اشتراکگذاری LINEContent Creation
