آموزش اتصال API درواره به Dify و Flowise؛ ساخت Workflow، Chatflow، Agent و چتبات هوش مصنوعی
با اتصال API درواره به Dify و Flowise میتوانید بدون توسعۀ زیرساخت مدل، چتبات، سیستم RAG، Workflow و AI Agent بسازید. در این راهنما، تعریف OpenAI-Compatible Provider، افزودن مدل، ساخت اولین جریان کاری، انتشار API و رفع خطاهای رایج را مرحلهبهمرحله آموزش میدهیم.
ساخت برنامههای هوش مصنوعی همیشه به برنامهنویسی از صفر نیاز ندارد. ابزارهایی مانند Dify و Flowise به شما اجازه میدهند با استفاده از یک محیط بصری، مدلهای هوش مصنوعی، پایگاه دانش، ابزارها، APIها، حافظه و منطقهای شرطی را به یکدیگر متصل کنید و محصولاتی مانند چتبات، دستیار سازمانی، سیستم RAG و AI Agent بسازید.
با اتصال Dify یا Flowise به API درواره، میتوانید مدلهای مختلف هوش مصنوعی را از طریق یک API سازگار با OpenAI در جریانهای کاری خود استفاده کنید. در این راهنما، اتصال API درواره به Dify و Flowise، ساخت اولین برنامۀ هوش مصنوعی، انتشار آن بهصورت API و رفع خطاهای متداول را مرحلهبهمرحله آموزش میدهیم.
Dify و Flowise چه هستند؟
Dify و Flowise دو پلتفرم متنباز برای ساخت برنامههای مبتنی بر مدلهای زبانی بزرگ هستند. هر دو ابزار محیطی بصری دارند که در آن میتوانید اجزای مختلف را به یکدیگر متصل کنید.
برای مثال، میتوانید جریان زیر را بدون ساخت تمام اجزا از ابتدا طراحی کنید:
پیام کاربر
↓
جستجو در پایگاه دانش
↓
ساخت Prompt
↓
ارسال درخواست به مدل از طریق API درواره
↓
پردازش پاسخ
↓
نمایش پاسخ به کاربر
Dify بیشتر شبیه یک پلتفرم کامل برای ساخت، مدیریت، ارزیابی و انتشار برنامههای هوش مصنوعی است. Flowise نیز یک محیط بصری انعطافپذیر برای ساخت Chatflow، Agentflow و جریانهای مبتنی بر LangChain ارائه میکند.
مستندات رسمی Flowise آن را یک پلتفرم متنباز برای ساخت AI Agent و LLM Workflow معرفی میکند. این پلتفرم علاوه بر Visual Builder، قابلیتهایی مانند API، ابزار ارزیابی، تحلیل اجرا، Human in the Loop و چتبات قابلجاسازی دارد. مستندات رسمی Flowise
API درواره در این معماری چه نقشی دارد؟
Dify و Flowise خودشان تولیدکنندۀ مدل هوش مصنوعی نیستند. این ابزارها جریان اجرای برنامه را مدیریت میکنند، اما برای تولید پاسخ به یک مدل نیاز دارند.
در این معماری:
- Dify یا Flowise منطق برنامه را اجرا میکند.
- درواره درخواست مدل را دریافت و مدیریت میکند.
- مدل انتخابشده پاسخ را تولید میکند.
- پاسخ دوباره به جریان کاری بازمیگردد.
- هزینۀ درخواست از کیف پول درواره کسر میشود.
اطلاعات اصلی اتصال عبارتاند از:
| تنظیم | مقدار |
|---|---|
| نام ارائهدهنده | Darvareh |
| نوع API | OpenAI-Compatible |
| Base URL | https://api.darvareh.ir/v1 |
| API Key | کلید ساختهشده در پنل درواره |
| Model ID | شناسه دقیق مدل در کاتالوگ درواره |
| Authentication | Bearer Token |
برای تغییر مدل لازم نیست Base URL یا API Key را تغییر دهید. کافی است Model ID دیگری انتخاب کنید.
با Dify و Flowise چه چیزهایی میتوان ساخت؟
پس از اتصال این ابزارها به درواره، میتوانید پروژههایی مانند موارد زیر بسازید:
- چتبات پشتیبانی مشتریان
- دستیار پاسخگویی بر اساس اسناد سازمان
- سیستم RAG و جستجوی معنایی
- دستیار تحلیل قرارداد
- خلاصهساز جلسات و اسناد
- سیستم دستهبندی تیکتها
- تحلیل بازخورد و احساسات مشتریان
- تولیدکنندۀ محتوای شبکههای اجتماعی
- دستیار فروش و پاسخگویی به سرنخها
- استخراج اطلاعات از متن
- تولید خروجی ساختاریافته JSON
- AI Agent متصل به ابزارها و APIها
- Workflow چندمرحلهای با چند مدل
- سیستم پرسش و پاسخ داخلی کارکنان
- چتبات قابلجاسازی در وبسایت
- API هوش مصنوعی برای اتصال به نرمافزارهای دیگر
پیشنیازهای اتصال به درواره
پیش از شروع، مراحل زیر را انجام دهید.
۱. ساخت حساب درواره
وارد وبسایت درواره شوید و حساب کاربری خود را ایجاد کنید. سپس وارد پنل کاربری شوید.
۲. شارژ کیف پول
مصرف API بر اساس مدل، تعداد توکنهای ورودی و خروجی و نوع درخواست محاسبه میشود. بنابراین باید کیف پول شما موجودی کافی داشته باشد.
۳. ساخت API Key
از بخش کلیدهای API یک کلید جدید بسازید. پیشنهاد میشود برای هر محیط یک کلید جداگانه ایجاد کنید:
Dify Production
Dify Development
Flowise Production
Flowise Test
این کار گزارشگیری، شناسایی مصرف غیرعادی و لغو دسترسی را آسانتر میکند.
۴. انتخاب مدل
در کاتالوگ مدلهای درواره، مدل موردنظر را پیدا و Model ID آن را دقیقاً کپی کنید.
برای مثال، شناسه مدل ممکن است ساختاری مشابه زیر داشته باشد:
provider/model-name
از نام نمایشی مدل بهجای Model ID استفاده نکنید. حروف، خط تیره، نقطه و اسلشهای شناسه باید بدون تغییر وارد شوند.
تفاوت دو نوع API Key در این آموزش
هنگام کار با Dify و Flowise ممکن است با دو کلید متفاوت مواجه شوید:
کلید API درواره
این کلید به Dify یا Flowise اجازه میدهد درخواست را به مدل انتخابشده ارسال کند:
Darvareh API Key
این کلید در تنظیمات Model Provider یا Credential ذخیره میشود.
کلید API اپلیکیشن
بعد از ساخت جریان، Dify یا Flowise میتواند آن را بهصورت API منتشر کند. برای فراخوانی این API ممکن است یک کلید جدا ساخته شود:
Dify App API Key
یا:
Flowise Chatflow API Key
این کلیدها با API Key درواره یکسان نیستند.
معماری صحیح به این شکل است:
نرمافزار شما
↓ App API Key
Dify یا Flowise
↓ Darvareh API Key
API درواره
↓
مدل هوش مصنوعی
نباید کلید API درواره را به کاربر نهایی یا Frontend تحویل دهید.
بخش اول: آموزش اتصال API درواره به Dify
Dify چیست؟
Dify یک پلتفرم متنباز برای ساخت برنامههای مبتنی بر هوش مصنوعی است. در Dify میتوانید با استفاده از یک Canvas بصری، مدل، Prompt، پایگاه دانش، ابزار، کد، شرط و خروجی را به یکدیگر متصل کنید.
مهمترین قابلیتهای Dify عبارتاند از:
- ساخت Chatflow و Workflow
- ساخت چتبات و Agent
- مدیریت Prompt
- اتصال به پایگاه دانش
- ساخت RAG
- تعریف متغیرهای ورودی و خروجی
- اتصال به ابزارها و APIها
- بررسی Log و مصرف توکن
- انتشار برنامه بهصورت Web App
- انتشار برنامه بهصورت REST API
- ارائۀ MCP Server در نسخههای سازگار
- مدیریت تیم و Workspace
در Dify، مدلهایی که به یک Workspace اضافه میشوند میتوانند در برنامههای همان Workspace استفاده شوند. طبق مستندات رسمی، فقط Owner و Admin میتوانند Model Providerهای Workspace را مدیریت کنند. راهنمای Model Providers در Dify
انتخاب Dify Cloud یا Self-hosted
دو روش اصلی برای استفاده از Dify وجود دارد:
Dify Cloud
در این روش از نسخۀ میزبانیشدۀ Dify استفاده میکنید. نگهداری سرور، بهروزرسانی و زیرساخت اصلی بر عهدۀ Dify است.
این گزینه برای شروع سریع مناسب است.
Dify Self-hosted
در این روش Dify را روی سرور خودتان نصب میکنید. این گزینه کنترل بیشتری بر دادهها، دسترسی کاربران و زیرساخت میدهد، اما نگهداری، امنیت، پشتیبانگیری و بهروزرسانی بر عهدۀ شما خواهد بود.
نحوۀ اتصال درواره در هر دو نسخه تقریباً یکسان است. تفاوت اصلی ممکن است در محل نمایش Marketplace و Model Providerها باشد.
مرحلۀ اول: نصب OpenAI-API-compatible Provider در Dify
در نسخههای جدید Dify، Model Providerها از طریق بخش Integrations یا Marketplace مدیریت میشوند.
برای اتصال درواره:
- وارد Workspace موردنظر شوید.
- بخش
Integrationsرا باز کنید. - وارد
Model Providerشوید. - روی
Install Model Providerیا ورود به Marketplace کلیک کنید. - عبارت زیر را جستجو کنید:
OpenAI-API-compatible
- افزونۀ رسمی یا سازگار با OpenAI-Compatible API را نصب کنید.
این Provider برای سرویسهایی طراحی شده است که ساختار درخواست و پاسخ آنها با API استاندارد OpenAI سازگار است.
درواره نیز Base URL سازگار با OpenAI ارائه میدهد:
https://api.darvareh.ir/v1
نکتۀ مهم: افزونۀ OpenAI Tools با Model Provider یکسان نیست. برای فراخوانی مدلهای درواره باید از Model Provider سازگار با OpenAI استفاده کنید، نه صرفاً افزونۀ Tools.
مرحلۀ دوم: افزودن مدل درواره
پس از نصب Provider:
- وارد
Integrations > Model Providerشوید. - کارت
OpenAI-API-compatibleرا پیدا کنید. - روی
Add ModelیاSetupکلیک کنید. - نوع مدل را انتخاب کنید.
برای مدلهای گفتوگویی معمولاً باید نوع زیر را انتخاب کنید:
LLM
سپس تنظیمات را تکمیل کنید.
مرحلۀ سوم: واردکردن تنظیمات مدل
فیلدها ممکن است با توجه به نسخۀ Plugin کمی متفاوت باشند، اما اطلاعات اصلی به شکل زیر است:
Model Name: YOUR_MODEL_ID
API Key: YOUR_DARVAREH_API_KEY
Endpoint URL: https://api.darvareh.ir/v1
Model Type: LLM
اگر فیلدی با عنوان Base URL، Endpoint URL یا API Endpoint نمایش داده شد، ابتدا مقدار کامل زیر را وارد کنید:
https://api.darvareh.ir/v1
اگر افزونه صراحتاً اعلام کرده باشد که خودش /v1 را اضافه میکند، مقدار زیر را وارد کنید:
https://api.darvareh.ir
اما در Providerهایی که Base URL کامل میخواهند، همان آدرس دارای /v1 صحیح است.
پس از ذخیره، Dify معمولاً یک درخواست آزمایشی ارسال میکند تا اعتبار کلید و دسترسی به مدل را بررسی کند.
تنظیم قابلیتهای مدل در Dify
هنگام افزودن مدل، ممکن است Dify از شما بخواهد قابلیتهای مدل را مشخص کنید. این موارد باید بر اساس مدل واقعی انتخاب شوند.
نمونه قابلیتها:
- Function Calling
- Tool Calling
- Vision
- Structured Output
- Streaming
- Reasoning
- Multi-turn Conversation
قابلیتی را که مدل انتخابشده پشتیبانی نمیکند فعال نکنید. برای مثال، اگر یک مدل صرفاً متنی است، فعالکردن Vision باعث نمیشود مدل بتواند تصویر را تحلیل کند.
در صورت وجود تنظیم Context Size، مقدار واقعی Context Window مدل را وارد کنید. واردکردن مقدار بزرگتر از ظرفیت واقعی مدل ممکن است باعث خطای درخواست شود.
مرحلۀ چهارم: تست مدل در Dify
بعد از افزودن مدل:
- وارد بخش
Studioشوید. - یک برنامۀ جدید بسازید.
Chatflowرا انتخاب کنید.- یک Node از نوع
LLMاضافه کنید. - Provider و مدل درواره را در Node انتخاب کنید.
- یک Prompt ساده وارد کنید.
- روی
RunیاPreviewکلیک کنید.
برای تست اولیه از این Prompt استفاده کنید:
به پیام کاربر به زبان فارسی و حداکثر در سه جمله پاسخ بده.
پیام کاربر:
{{#sys.query#}}
در نسخههای مختلف Dify ممکن است نام متغیر ورودی کمی متفاوت باشد. بهتر است متغیر ورودی را از Variable Selector خود محیط انتخاب کنید و آن را دستی تایپ نکنید.
ساخت اولین Chatflow در Dify
Chatflow برای برنامههایی مناسب است که مکالمۀ چندمرحلهای با کاربر دارند. تاریخچۀ گفتگو، ورودی کاربر و پاسخهای بعدی در این نوع برنامه اهمیت دارد.
یک Chatflow ساده میتواند از این Nodeها تشکیل شود:
User Input
↓
LLM
↓
Answer
مرحلۀ اول: ساخت برنامه
- وارد
Studioشوید. - روی
Create Appکلیک کنید. - گزینۀ
Chatflowرا انتخاب کنید. - نام برنامه را وارد کنید:
دستیار هوش مصنوعی درواره
- برنامۀ خالی را ایجاد کنید.
مرحلۀ دوم: تنظیم Node مدل
Node مربوط به LLM را باز کنید و مدل اضافهشده از طریق درواره را انتخاب کنید.
در بخش System Prompt میتوانید بنویسید:
شما یک دستیار فارسیزبان دقیق و حرفهای هستید.
قوانین:
- پاسخها را به زبان فارسی بنویس.
- از بیان اطلاعات ساختگی خودداری کن.
- اگر اطلاعات کافی وجود ندارد، شفاف اعلام کن.
- پاسخ را متناسب با پرسش کاربر تنظیم کن.
سپس ورودی کاربر را به بخش User Message متصل کنید.
مرحلۀ سوم: اتصال خروجی
خروجی متنی Node مدل را به Node پاسخ یا Answer متصل کنید.
مرحلۀ چهارم: Preview
در بخش Preview پیامی مانند زیر ارسال کنید:
برای یک فروشگاه اینترنتی، پنج کاربرد عملی هوش مصنوعی پیشنهاد بده.
اگر پاسخ دریافت شد، اتصال مدل و جریان اصلی درست است.
Workflow و Chatflow در Dify چه تفاوتی دارند؟
Dify هر دو نوع Workflow و Chatflow را روی یک Canvas بصری ارائه میدهد، اما روش تعامل آنها متفاوت است. مستندات Workflow و Chatflow در Dify
Chatflow
برای برنامههای مکالمهای مناسب است:
- چتبات
- دستیار پشتیبانی
- دستیار سازمانی
- پرسش و پاسخ
- RAG مکالمهای
- مکالمات چندمرحلهای
Workflow
برای پردازشهای یکباره و ساختاریافته مناسب است:
- خلاصهسازی سند
- استخراج اطلاعات
- دستهبندی متن
- تولید گزارش
- تحلیل قرارداد
- پردازش فرم
- تولید خروجی JSON
- اجرای زنجیرۀ خودکار پردازش
در Workflow، هر اجرا مستقل است و بهصورت پیشفرض حافظۀ مکالمۀ اجراهای قبلی را ندارد. مستندات API نیز Workflow را یک اجرای مستقل معرفی میکند که با هر فراخوانی یک بار اجرا میشود. راهنمای Workflow API در Dify
ساخت اولین Workflow در Dify
برای نمونه، یک Workflow خلاصهسازی میسازیم.
ساختار Workflow
Start
↓
LLM
↓
End
تنظیم متغیر ورودی
در Node شروع، متغیری با مشخصات زیر بسازید:
Variable Name: text
Type: Paragraph
Required: Yes
تنظیم LLM Node
مدل درواره را انتخاب و Prompt زیر را وارد کنید:
متن زیر را به زبان فارسی خلاصه کن.
قواعد:
- مهمترین نکات را حفظ کن.
- از افزودن اطلاعات جدید خودداری کن.
- خروجی حداکثر پنج بند باشد.
- در پایان، سه نکتۀ کلیدی را فهرست کن.
متن:
{{text}}
متغیر را با Variable Selector خود Dify از Node شروع انتخاب کنید.
تنظیم End Node
خروجی متن LLM را به یک متغیر خروجی متصل کنید:
Output Name: summary
اکنون هر متنی که به Workflow داده شود، توسط مدل انتخابشده از طریق API درواره خلاصه خواهد شد.
انتشار برنامه در Dify
پس از تست:
- روی
Publishکلیک کنید. - آخرین تغییرات را منتشر کنید.
- روش انتشار را انتخاب کنید.
Dify میتواند برنامه را به شکلهای مختلف ارائه کند:
- Web App
- REST API
- ابزار جاسازیشده در وبسایت
- MCP Server در نسخههای پشتیبانیشده
طبق مستندات رسمی، با انتشار برنامه، نسخۀ وب و API آن از آخرین تنظیمات منتشرشده استفاده میکنند. راهنمای انتشار در Dify
فراخوانی Workflow منتشرشده از طریق API
بعد از انتشار:
- وارد بخش API Access برنامه شوید.
- یک App API Key بسازید.
- Base URL همان Dify را یادداشت کنید.
- نام متغیرهای ورودی را بررسی کنید.
برای Dify Cloud، درخواست Workflow ساختاری مشابه زیر دارد:
curl -X POST "https://api.dify.ai/v1/workflows/run" \
-H "Authorization: Bearer YOUR_DIFY_APP_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"inputs": {
"text": "متنی که میخواهید خلاصه شود."
},
"response_mode": "blocking",
"user": "user-123"
}'
در نسخۀ Self-hosted باید دامنه Dify خودتان را جایگزین کنید.
توجه کنید که کلید این درخواست، App API Key ساختهشده در Dify است، نه API Key درواره.
حالت Blocking و Streaming در Dify
Blocking
در این حالت اتصال تا پایان اجرای Workflow باز میماند و نتیجۀ کامل یکجا برگردانده میشود:
"response_mode": "blocking"
این حالت برای پردازشهای کوتاه و Backend مناسب است.
Streaming
در این حالت رویدادها و بخشهای پاسخ بهتدریج ارسال میشوند:
"response_mode": "streaming"
Streaming برای چت، پاسخهای طولانی و نمایش پیشرفت اجرا مناسبتر است.
ساخت RAG در Dify با API درواره
RAG یا Retrieval-Augmented Generation روشی است که در آن ابتدا اطلاعات مرتبط از اسناد بازیابی و سپس همراه با پرسش کاربر به مدل ارسال میشوند.
ساختار کلی:
پرسش کاربر
↓
Knowledge Retrieval
↓
بخشهای مرتبط اسناد
↓
LLM از طریق API درواره
↓
پاسخ مبتنی بر منابع
برای ساخت RAG:
- وارد بخش
Knowledgeشوید. - یک Knowledge Base بسازید.
- فایلها یا دادههای خود را اضافه کنید.
- تنظیمات Chunking را انجام دهید.
- یک مدل Embedding سازگار اضافه کنید.
- در Chatflow یک Node از نوع Knowledge Retrieval قرار دهید.
- پرسش کاربر را به Retrieval متصل کنید.
- خروجی Retrieval را وارد Prompt مدل کنید.
- خروجی LLM را به Answer متصل کنید.
نکتۀ مهم: مدل گفتوگو و مدل Embedding دو نقش متفاوت دارند. صرف اتصال یک LLM متنی از طریق درواره برای ساخت Knowledge Base کافی نیست؛ باید یک Embedding Model سازگار نیز در Dify تنظیم شود.
Prompt پیشنهادی برای RAG
فقط بر اساس محتوای بازیابیشده پاسخ بده.
اگر پاسخ در محتوا وجود ندارد، بنویس:
«اطلاعات کافی در منابع موجود نیست.»
محتوای بازیابیشده:
{{context}}
پرسش کاربر:
{{query}}
در Dify بهتر است متغیرهای Context و Query را از فهرست متغیرهای Nodeهای قبلی انتخاب کنید.
بخش دوم: آموزش اتصال API درواره به Flowise
Flowise چیست؟
Flowise یک پلتفرم متنباز برای ساخت جریانهای مبتنی بر مدلهای زبانی، LangChain و AI Agent است. کاربران میتوانند Nodeهای مختلف را روی Canvas قرار دهند و میان آنها اتصال ایجاد کنند.
Flowise سه محیط اصلی برای ساخت دارد:
- Assistant
- Chatflow
- Agentflow
Assistant
برای ساخت دستیار با تنظیمات سادهتر، مدل، فایل و ابزارهای متداول مناسب است.
Chatflow
برای ساخت زنجیرههای مبتنی بر مدل، Prompt، حافظه، Retriever و Output Parser مناسب است.
Agentflow
برای جریانهای پیشرفتهتر Agent، چندمرحلهای، دارای ابزار و منطق اجرایی مناسب است.
نصب Flowise
میتوانید از Flowise Cloud استفاده کنید یا آن را روی سیستم و سرور خود نصب کنید.
نصب با npm
ابتدا Node.js سازگار را نصب کنید و سپس فرمان زیر را اجرا کنید:
npm install -g flowise
Flowise را اجرا کنید:
npx flowise start
سپس این آدرس را باز کنید:
http://localhost:3000
اجرای Flowise با Docker
برای اجرای سریع با Docker میتوانید از دستوری مشابه زیر استفاده کنید:
docker run -d \
--name flowise \
-p 3000:3000 \
flowiseai/flowise
برای محیط Production باید ذخیرهسازی پایدار، احراز هویت، Secretها، دیتابیس، HTTPS و پشتیبانگیری را جداگانه تنظیم کنید. اجرای ساده Docker برای آزمایش مناسب است و نباید بدون تنظیمات امنیتی مستقیماً روی اینترنت عمومی قرار گیرد.
مرحلۀ اول: ساخت Credential در Flowise
بعد از ورود به Flowise:
- وارد بخش
Credentialsشوید. - روی
Add Credentialکلیک کنید. - Credential مرتبط با OpenAI را انتخاب کنید.
- نام Credential را وارد کنید:
Darvareh API
- API Key درواره را در فیلد مربوطه قرار دهید.
- Credential را ذخیره کنید.
API Key: YOUR_DARVAREH_API_KEY
در برخی نسخهها Base URL داخل Credential وارد نمیشود و باید آن را در تنظیمات Node مدل مشخص کنید.
مرحلۀ دوم: ساخت Chatflow
- وارد
Chatflowsشوید. - روی
Add Newکلیک کنید. - نام جریان را انتخاب کنید:
Darvareh Chatflow
- Canvas خالی را باز کنید.
مرحلۀ سوم: افزودن ChatOpenAI Custom
در فهرست Nodeها:
- بخش
Chat Modelsرا باز کنید. - Node با نام
ChatOpenAIیاChatOpenAI Customرا پیدا کنید. - آن را روی Canvas قرار دهید.
برای مدلهایی که در فهرست پیشفرض Flowise وجود ندارند، استفاده از ChatOpenAI Custom مناسبتر است؛ زیرا میتوانید Model Name را دستی وارد کنید.
مستندات Flowise نیز برای مدلهای سفارشی، استفاده از ChatOpenAI Custom و تغییر Base Path را توضیح میدهد. راهنمای ChatOpenAI در Flowise
مرحلۀ چهارم: تنظیم Node مدل
Node را باز و تنظیمات را وارد کنید:
Credential: Darvareh API
Model Name: YOUR_MODEL_ID
Base Path: https://api.darvareh.ir/v1
در بخش Additional Parameters ممکن است فیلدهای زیر را ببینید:
- Temperature
- Max Tokens
- Top P
- Frequency Penalty
- Presence Penalty
- Streaming
- Timeout
- Base Path
- Base Options
- Custom Headers
برای اتصال معمولی به درواره به Custom Header جداگانه نیاز ندارید؛ Credential کلید را بهصورت Bearer Token ارسال میکند.
تنظیم پارامترهای مدل در Flowise
Temperature
میزان تنوع و خلاقیت پاسخ را کنترل میکند.
برای پاسخهای دقیق و پایدار:
0.1 تا 0.3
برای تولید محتوا و ایدهپردازی:
0.6 تا 0.9
مقدار پیشنهادی عمومی:
0.3
Max Tokens
حداکثر طول پاسخ را مشخص میکند. بهتر است این مقدار را متناسب با کاربرد تنظیم کنید.
برای پاسخهای کوتاه:
500
برای تحلیل و تولید محتوای طولانی:
2000 تا 4000
مقدار بیش از ظرفیت واقعی مدل انتخاب نکنید.
Streaming
در برنامههای چت، Streaming باعث میشود پاسخ بهتدریج نمایش داده شود. اگر مدل و جریان شما از Streaming پشتیبانی میکنند، آن را فعال کنید.
Timeout
اگر مدل استدلالی یا جریان طولانی دارید، ممکن است لازم باشد Timeout را افزایش دهید.
مرحلۀ پنجم: افزودن Prompt Template
از بخش Promptها، Node مناسب مانند Chat Prompt Template را روی Canvas قرار دهید.
System Message:
شما یک دستیار فارسیزبان دقیق و حرفهای هستید.
قواعد:
- پاسخ را به زبان فارسی ارائه کن.
- از ساختن اطلاعات غیرواقعی خودداری کن.
- اگر اطلاعات کافی نداری، شفاف اعلام کن.
- پاسخ را متناسب با درخواست کاربر تنظیم کن.
Human Message:
{question}
خروجی Prompt Template را به ورودی Node مدل متصل کنید.
در بعضی الگوهای Flowise، Node مدل مستقیماً به Chain متصل میشود و Prompt نیز به همان Chain وصل خواهد شد. نحوۀ اتصال دقیق به Nodeهای انتخابشده بستگی دارد.
مرحلۀ ششم: افزودن Chain
برای یک Chatflow ساده میتوانید از Nodeهایی مانند LLM Chain یا Conversation Chain استفاده کنید.
ساختار پیشنهادی:
Chat Prompt Template ─┐
├── LLM Chain
ChatOpenAI Custom ────┘
اگر از Conversation Chain استفاده کنید، میتوانید Memory را نیز به جریان اضافه کنید.
مرحلۀ هفتم: ذخیره و تست
Chatflow را ذخیره کنید. سپس روی آیکون گفتوگو یا Test Chat کلیک کرده و پیام زیر را ارسال کنید:
سه روش عملی برای کاهش زمان پاسخگویی پشتیبانی مشتریان پیشنهاد بده.
اگر پاسخ دریافت شد، اتصال API درواره به Flowise موفق بوده است.
ساخت Chatflow دارای حافظه
برای نگهداری تاریخچۀ مکالمه باید Memory Node اضافه کنید. برای یک آزمایش ساده میتوانید از Buffer Memory استفاده کنید.
ساختار:
ChatOpenAI Custom ─┐
Prompt Template ───┼── Conversation Chain
Buffer Memory ─────┘
حافظه باعث میشود مدل بتواند به پیامهای قبلی همان Session مراجعه کند.
برای محیط Production بهتر است حافظه در یک ذخیرهساز پایدار نگهداری شود. حافظۀ موقت ممکن است با Restart برنامه یا تغییر Instance از بین برود.
ساخت RAG در Flowise با API درواره
ساختار عمومی RAG در Flowise:
Document Loader
↓
Text Splitter
↓
Embedding Model
↓
Vector Store
↓
Retriever
↓
Retrieval Chain
↑
ChatOpenAI Custom
اجزای اصلی
Document Loader
فایل یا منبع داده را میخواند. برای مثال:
- Text
- CSV
- Web Page
- Notion
- پایگاه داده
- فایلهای ذخیرهشده
Text Splitter
اسناد طولانی را به قطعههای کوچکتر تقسیم میکند.
Embedding Model
هر قطعه را به بردار عددی تبدیل میکند.
Vector Store
بردارها و محتوای مرتبط را ذخیره میکند.
Retriever
در زمان پرسش، قطعههای مرتبط را پیدا میکند.
Chat Model
پرسش و Context بازیابیشده را دریافت و پاسخ نهایی را تولید میکند. این بخش میتواند از مدل متصلشده به API درواره استفاده کند.
انتخاب Chunk Size
مقدار مناسب به نوع سند و مدل Embedding بستگی دارد، اما برای شروع میتوانید از تنظیمی مشابه زیر استفاده کنید:
Chunk Size: 800
Chunk Overlap: 100
برای متنهای کوتاهتر:
Chunk Size: 400
Chunk Overlap: 50
Chunkهای بسیار بزرگ ممکن است اطلاعات نامرتبط زیادی وارد Context کنند. Chunkهای بسیار کوچک نیز ممکن است ارتباط معنایی جملات را از بین ببرند.
انتشار Flowise Chatflow بهصورت API
پس از ذخیرۀ Chatflow:
- وارد جزئیات Chatflow شوید.
- گزینۀ API یا Embed را باز کنید.
- Chatflow ID را کپی کنید.
- در صورت نیاز برای جریان API Key تعریف کنید.
Endpoint اصلی پیشبینی در Flowise ساختاری مشابه زیر دارد:
POST /api/v1/prediction/{CHATFLOW_ID}
مستندات رسمی Flowise، Prediction API را Endpoint اصلی برای تعامل با Flowها و Assistantها معرفی میکند. راهنمای Prediction API در Flowise
نمونۀ درخواست cURL
curl -X POST "https://YOUR_FLOWISE_DOMAIN/api/v1/prediction/YOUR_CHATFLOW_ID" \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_FLOWISE_API_KEY" \
-d '{
"question": "پنج کاربرد هوش مصنوعی در فروش را توضیح بده."
}'
اگر برای Chatflow کلید دسترسی تعریف نکردهاید، Header مربوط به Authorization ممکن است لازم نباشد؛ اما جریان عمومی بدون احراز هویت برای محیط Production توصیه نمیشود.
ارسال Session ID به Flowise
برای نگهداری مکالمات کاربران بهصورت جداگانه میتوانید Session ID ارسال کنید:
{
"question": "سؤال قبلی من چه بود؟",
"overrideConfig": {
"sessionId": "user-123-session"
}
}
Session ID باید برای هر کاربر یا مکالمه یکتا باشد. استفاده از یک Session ID مشترک ممکن است باعث ترکیب تاریخچۀ کاربران شود.
استفاده از متغیرها در Flowise
Flowise از متغیرهای Static و Runtime پشتیبانی میکند.
متغیر Static
مقدار آن داخل Flowise ذخیره میشود.
متغیر Runtime
مقدار آن از متغیرهای محیطی دریافت میشود.
فرمت استفاده از متغیر در Nodeها:
{{$vars.variable_name}}
برای مثال:
{{$vars.company_name}}
طبق مستندات رسمی، متغیرها میتوانند در Nodeهای مختلف و بخشهای متنی با ساختار $vars استفاده شوند. راهنمای Variables در Flowise
برای Secretهایی مانند API Key بهتر است از Credential یا متغیر محیطی امن استفاده کنید، نه متغیر Static قابلمشاهده.
قراردادن چتبات Flowise در وبسایت
Flowise برای Chatflowها کد Embed تولید میکند. پس از ساخت و تست جریان:
- بخش
Embedرا باز کنید. - تنظیمات ظاهر و رفتار را مشخص کنید.
- کد تولیدشده را کپی کنید.
- آن را در وبسایت قرار دهید.
پیش از انتشار عمومی:
- برای Chatflow احراز هویت یا API Proxy امن در نظر بگیرید.
- Rate Limit تعریف کنید.
- مصرف API را پایش کنید.
- ورودی کاربران را محدود و اعتبارسنجی کنید.
- از قرارگرفتن Secret در کد Frontend جلوگیری کنید.
طبق مستندات Flowise، اگر Chatflow بدون محافظت منتشر شود، هر فردی که Chatflow ID را داشته باشد ممکن است بتواند Prediction API را اجرا کند. راهنمای کنترل دسترسی Chatflow
فعالکردن Rate Limit در Flowise
برای جلوگیری از سوءاستفاده:
- تنظیمات Chatflow را باز کنید.
- بخش Rate Limit را پیدا کنید.
- تعداد پیام مجاز را مشخص کنید.
- بازۀ زمانی را تعیین کنید.
برای مثال:
Message Limit: 20
Duration: 60 seconds
محدودیت مناسب به تعداد کاربران و کاربرد سیستم بستگی دارد. Rate Limit خود Flowise باید در کنار محدودیتهای API Key درواره و محدودیتهای سرور استفاده شود. راهنمای Rate Limit در Flowise
مقایسۀ Dify و Flowise
| معیار | Dify | Flowise |
|---|---|---|
| رویکرد اصلی | پلتفرم کامل ساخت اپلیکیشن هوش مصنوعی | سازندۀ بصری Flow و Agent |
| محیط ساخت | Chatflow و Workflow | Assistant، Chatflow و Agentflow |
| مناسب برای کاربران کمکد | بسیار مناسب | مناسب |
| انعطاف فنی | بالا | بسیار بالا |
| مدیریت Prompt | داخلی و ساختاریافته | از طریق Nodeها |
| RAG | Knowledge Base داخلی | اتصال Loader، Embedding و Vector Store |
| انتشار Web App | داخلی | بیشتر از طریق Embed |
| انتشار API | داخلی | Prediction API |
| مدیریت مدلها | در سطح Workspace | Credential و Node |
| اتصال مدل سفارشی | Model Provider | ChatOpenAI Custom |
| مشاهده اجرای Nodeها | داخلی | Flow اجرا و Log |
| مناسب برای محصول سریع | بسیار مناسب | مناسب |
| مناسب برای LangChain | غیرمستقیمتر | بسیار مناسب |
| استقرار شخصی | دارد | دارد |
| پیچیدگی شروع | کمتر | کمی بیشتر |
| کنترل جزئی روی زنجیره | خوب | بسیار خوب |
Dify برای چه کسانی مناسبتر است؟
Dify انتخاب مناسبی است اگر:
- میخواهید سریع یک برنامۀ کامل بسازید.
- Web App آماده نیاز دارید.
- مدیریت Knowledge Base داخلی برایتان مهم است.
- تیم غیرفنی نیز باید با سیستم کار کند.
- میخواهید Prompt، Log و انتشار API در یک محیط باشد.
- قصد ساخت چتبات یا Workflow سازمانی را دارید.
- مدیریت Workspace و اعضای تیم اهمیت دارد.
Flowise برای چه کسانی مناسبتر است؟
Flowise انتخاب مناسبی است اگر:
- میخواهید کنترل دقیقتری روی Nodeها داشته باشید.
- با مفاهیم LangChain آشنا هستید.
- قصد ساخت زنجیرهها و Agentهای سفارشی دارید.
- میخواهید Vector Storeها و Loaderهای مختلف را ترکیب کنید.
- انعطاف در معماری جریان برایتان مهمتر از Web App آماده است.
- میخواهید Flow را در نرمافزار خود جاسازی کنید.
- قصد آزمایش معماریهای مختلف RAG و Agent را دارید.
خطاهای رایج اتصال API درواره
خطای 401 Unauthorized
دلایل احتمالی:
- API Key درواره اشتباه است.
- کلید ناقص کپی شده است.
- کلید حذف یا غیرفعال شده است.
- مقدار Bearer بهصورت نادرست اضافه شده است.
- Credential اشتباه در Node انتخاب شده است.
در فیلد API Key معمولاً فقط خود کلید را وارد کنید:
YOUR_DARVAREH_API_KEY
نه این مقدار:
Bearer YOUR_DARVAREH_API_KEY
کتابخانه یا ابزار معمولاً عبارت Bearer را خودکار اضافه میکند.
خطای 403 Forbidden
موارد زیر را بررسی کنید:
- وضعیت حساب
- وضعیت API Key
- محدودیت دسترسی
- موجودی کیف پول
- محدودیتهای امنیتی یا مصرفی
- فعالبودن مدل
اگر کلید به دلیل خالیشدن کیف پول تعلیق شده است، کیف پول را شارژ و وضعیت کلید را بررسی کنید.
خطای 404 Not Found
این خطا معمولاً به Base URL مربوط است.
مقدار اصلی:
https://api.darvareh.ir/v1
بررسی کنید مسیر نهایی به شکل اشتباه زیر ساخته نشده باشد:
https://api.darvareh.ir/v1/v1/chat/completions
یا:
https://api.darvareh.ir/v1/chat/completions/chat/completions
اگر Plugin خودش /v1 را اضافه میکند، Base URL را بدون /v1 وارد کنید. اگر Base URL کامل میخواهد، آن را با /v1 ثبت کنید.
خطای Model Not Found
Model ID را دقیقاً از کاتالوگ مدلهای درواره کپی کنید.
موارد زیر را تغییر ندهید:
- اسلش
- خط تیره
- نقطه
- حروف
- پسوند نسخه
- نام Provider
نام نمایشی مدل را بهجای Model ID وارد نکنید.
خطای Insufficient Funds
موجودی کیف پول برای اجرای درخواست کافی نیست. کیف پول درواره را شارژ کرده و دوباره درخواست را اجرا کنید.
در جریانهای Agent ممکن است یک پیام کاربر باعث چند فراخوانی مدل شود؛ بنابراین هزینه یک اجرای Agent میتواند بیشتر از یک درخواست گفتوگوی ساده باشد.
خطای Timeout
دلایل احتمالی:
- پاسخ مدل طولانی است.
- Workflow دارای Nodeهای متعدد است.
- Agent چند ابزار را اجرا میکند.
- مدل استدلالی زمان بیشتری نیاز دارد.
- Max Tokens بیش از حد بالا است.
- اتصال شبکه یا سرور ناپایدار است.
راهکارها:
- Timeout را افزایش دهید.
- Streaming را فعال کنید.
- Max Tokens را کاهش دهید.
- تعداد Nodeها یا تکرار Agent را محدود کنید.
- مدل سریعتری انتخاب کنید.
- Prompt را کوتاهتر و دقیقتر کنید.
مدل در Dify نمایش داده نمیشود
- مطمئن شوید Provider نصب و فعال است.
- مدل را با Add Model اضافه کنید.
- نوع مدل را LLM انتخاب کنید.
- تنظیمات Credential را ذخیره کنید.
- Workspace درست را بررسی کنید.
- صفحه را مجدداً بارگذاری کنید.
Flowise پاسخ نمیدهد اما Credential ذخیره شده است
ذخیرهشدن Credential لزوماً اتصال مدل را تأیید نمیکند.
بررسی کنید:
- Credential در Node انتخاب شده باشد.
- Base Path داخل Node تنظیم شده باشد.
- ChatOpenAI Custom استفاده شده باشد.
- Model Name صحیح باشد.
- Nodeها اتصال کامل داشته باشند.
- Chatflow ذخیره شده باشد.
- ورودی Prompt به Chain رسیده باشد.
Function Calling یا Tools کار نمیکند
هر مدلی از Tool Calling پشتیبانی نمیکند. همچنین نحوۀ Function Calling در برخی مدلها و Providerها متفاوت است.
برای رفع مشکل:
- مدلی انتخاب کنید که Tool Calling را پشتیبانی کند.
- ابتدا مدل را بدون Tool آزمایش کنید.
- سپس فقط یک Tool ساده اضافه کنید.
- Schema ورودی Tool را بررسی کنید.
- تعداد تکرار Agent را محدود کنید.
- از سازگاری Agent Node با مدل انتخابشده مطمئن شوید.
پاسخ فارسی ضعیف یا نامرتبط است
- System Prompt فارسی و دقیق بنویسید.
- مدل مناسب زبان فارسی انتخاب کنید.
- Temperature را کاهش دهید.
- Context اضافی را حذف کنید.
- Prompt و داده بازیابیشده را از هم جدا کنید.
- برای RAG از دستور صریح «فقط بر اساس منابع پاسخ بده» استفاده کنید.
مدیریت هزینه در Dify و Flowise
یک Workflow ممکن است در هر اجرا چند بار مدل را فراخوانی کند. برای مثال:
دستهبندی پرسش
↓ یک فراخوانی
بازیابی اطلاعات
↓
تولید پاسخ
↓ یک فراخوانی
بررسی کیفیت
↓ یک فراخوانی
بازنویسی
↓ یک فراخوانی
این جریان در هر اجرا ممکن است چهار درخواست مدل ایجاد کند.
برای مدیریت هزینه:
- برای مراحل ساده از مدل اقتصادیتر استفاده کنید.
- مدل قدرتمند را فقط در مرحلۀ نهایی قرار دهید.
- تعداد تکرار Agent را محدود کنید.
- Max Tokens را متناسب با نیاز تنظیم کنید.
- تاریخچۀ مکالمۀ غیرضروری را ارسال نکنید.
- Context بازیابیشده را محدود کنید.
- تعداد نتایج Retrieval را کاهش دهید.
- Promptهای تکراری را کوتاه کنید.
- مصرف هر API Key را جداگانه پایش کنید.
- برای Development و Production کلید جدا بسازید.
- قبل از انتشار عمومی Rate Limit اعمال کنید.
معماری پیشنهادی چندمدلی
یکی از مزایای اتصال Dify و Flowise به درواره، امکان استفاده از مدلهای مختلف در یک جریان است.
برای مثال:
مدل اقتصادی
دستهبندی درخواست
↓
مدل سریع
استخراج اطلاعات
↓
مدل قدرتمند
تولید پاسخ نهایی
↓
مدل اقتصادی
بررسی فرمت خروجی
به این ترتیب لازم نیست تمام مراحل را با گرانترین مدل اجرا کنید.
نکات امنیتی مهم
API Key درواره را در Frontend قرار ندهید
این کلید فقط باید در Credential امن Dify یا Flowise ذخیره شود.
معماری اشتباه:
مرورگر کاربر → API درواره
اگر کلید داخل JavaScript، اپلیکیشن موبایل یا کد Frontend قرار گیرد، قابل استخراج است.
معماری صحیح:
مرورگر کاربر
↓
Backend یا API برنامۀ شما
↓
Dify یا Flowise
↓
API درواره
برای هر محیط کلید جدا بسازید
از یک کلید مشترک برای تمام محیطها استفاده نکنید:
darvareh-dify-development
darvareh-dify-production
darvareh-flowise-development
darvareh-flowise-production
Flowهای عمومی را بدون محافظت منتشر نکنید
در Flowise، دانستن Chatflow ID ممکن است برای اجرای Flow عمومی کافی باشد. برای جریانهای عمومی:
- API Key تعریف کنید.
- Rate Limit قرار دهید.
- از Reverse Proxy استفاده کنید.
- HTTPS را فعال کنید.
- ورودیها را اعتبارسنجی کنید.
- Log و مصرف را پایش کنید.
Secret را داخل Node متنی ننویسید
API Key را در Prompt، Function، Static Variable یا متن قابلنمایش قرار ندهید. از Credential Manager یا Secretهای محیط میزبانی استفاده کنید.
دادههای حساس را مدیریت کنید
قبل از ارسال اسناد سازمانی:
- سطح محرمانگی را بررسی کنید.
- دسترسی Workspace را محدود کنید.
- Logها را بررسی کنید.
- سیاست نگهداری داده را مشخص کنید.
- از ارسال اطلاعات غیرضروری جلوگیری کنید.
- دسترسی Knowledge Base را کنترل کنید.
پرسشهای متداول
آیا اتصال Dify و Flowise به درواره به برنامهنویسی نیاز دارد؟
برای اتصال اولیه و ساخت جریانهای ساده خیر. با واردکردن Base URL، API Key و Model ID میتوانید مدل را اضافه کنید. برای Toolهای اختصاصی، APIهای خارجی و منطقهای پیچیده ممکن است به کمی برنامهنویسی نیاز داشته باشید.
Base URL درواره چیست؟
https://api.darvareh.ir/v1
در Dify از کدام Provider استفاده کنیم؟
از Model Provider سازگار با OpenAI API مانند OpenAI-API-compatible استفاده کنید و مدل را با Model ID، API Key و Endpoint URL درواره اضافه کنید.
در Flowise از کدام Node استفاده کنیم؟
برای مدلهای سفارشی، معمولاً ChatOpenAI Custom مناسب است. Base Path را روی آدرس درواره و Model Name را روی شناسه دقیق مدل قرار دهید.
آیا باید chat/completions را به Base URL اضافه کنیم؟
معمولاً خیر. Dify و Flowise مسیر نهایی را بر اساس Node یا Provider ایجاد میکنند.
مقدار معمول:
https://api.darvareh.ir/v1
آیا میتوان چند مدل در یک Workflow استفاده کرد؟
بله. هر LLM Node میتواند مدل متفاوتی داشته باشد. میتوانید مدل اقتصادی را برای دستهبندی و مدل قدرتمندتر را برای پاسخ نهایی استفاده کنید.
آیا Dify و Flowise مدل را روی سرور خودشان اجرا میکنند؟
در اتصال API درواره، مدل از طریق API فراخوانی میشود. Dify و Flowise منطق جریان را اجرا میکنند و درخواست مدل را به درواره میفرستند.
آیا میتوان Dify و Flowise را روی سرور شخصی نصب کرد؟
بله. هر دو ابزار قابلیت Self-hosting دارند. در محیط Production باید امنیت، HTTPS، دیتابیس، Secretها، پشتیبانگیری و بهروزرسانی را مدیریت کنید.
آیا میتوان خروجی را بهصورت API در نرمافزار استفاده کرد؟
بله. Dify برای برنامههای منتشرشده API ارائه میدهد و Flowise نیز Prediction API دارد.
آیا یک API Key درواره برای هر دو ابزار کافی است؟
از نظر فنی ممکن است، اما برای امنیت و گزارشگیری بهتر است برای Dify و Flowise کلیدهای جداگانه بسازید.
آیا برای ساخت RAG فقط یک مدل متنی کافی است؟
خیر. RAG معمولاً علاوه بر LLM به Embedding Model و Vector Store نیاز دارد. مدل متنی پاسخ را تولید میکند و Embedding Model برای بازیابی معنایی استفاده میشود.
چرا هزینۀ Agent بیشتر از یک چت ساده است؟
زیرا Agent ممکن است برای برنامهریزی، انتخاب ابزار، بررسی خروجی و تولید پاسخ نهایی چند بار مدل را فراخوانی کند.
پیشنهاد انتخاب بین Dify و Flowise
اگر میخواهید سریع یک برنامۀ کامل با Web App، Knowledge Base، مدیریت Prompt و API آماده بسازید، Dify انتخاب مناسبتری است.
اگر کنترل فنی و بصری دقیق روی زنجیرهها، LangChain، Retrieverها، Memory و Agentها برایتان مهمتر است، Flowise انعطاف بیشتری ارائه میدهد.
برای بسیاری از تیمها بهترین روش این است:
- Dify برای ساخت سریع محصولات و برنامههای سازمانی
- Flowise برای آزمایش و پیادهسازی Flowهای فنی و سفارشی
هر دو ابزار میتوانند از API درواره بهعنوان لایۀ اتصال مدل استفاده کنند.
جمعبندی
Dify و Flowise ساخت برنامههای هوش مصنوعی را از یک پروژۀ پیچیدۀ زیرساختی به یک فرایند بصری و قابلمدیریت تبدیل میکنند. با این ابزارها میتوانید چتبات، Workflow، RAG، دستیار سازمانی و AI Agent بسازید و آن را بهصورت Web App، API یا ابزار قابلجاسازی منتشر کنید.
برای اتصال مدلهای درواره، اطلاعات اصلی عبارتاند از:
API Type: OpenAI-Compatible
Base URL: https://api.darvareh.ir/v1
API Key: YOUR_DARVAREH_API_KEY
Model ID: YOUR_MODEL_ID
در Dify باید یک Model Provider سازگار با OpenAI نصب و مدل درواره را به Workspace اضافه کنید. در Flowise نیز میتوانید Credential درواره را بسازید و با استفاده از ChatOpenAI Custom، Base Path و Model Name را تنظیم کنید.
پس از اتصال، درواره مسئول دسترسی به مدل و مدیریت مصرف API است و Dify یا Flowise منطق برنامه، جریان داده، حافظه، ابزارها و تجربۀ کاربری را مدیریت میکند.
با این ترکیب، میتوانید بدون مدیریت چندین API و حساب جداگانه، زیرساخت برنامههای هوش مصنوعی خود را روی یک اتصال OpenAI-Compatible توسعه دهید.
درواره؛ یک اتصال برای تمام اکوسیستم هوش مصنوعی.
آموزش مرتبط:
آموزش اتصال API درواره به اپلیکیشنهای دسکتاپ هوش مصنوعی؛ راهاندازی Cherry Studio، Chatbox، Jan و LobeChat
آموزش کامل n۸n و اتصال آن به درواره؛ ساخت AI Agent و اتوماسیون هوشمند با صدها مدل هوش مصنوعی