تا حالا به این فکر کردید که اگر یک مرکز تماس داشته باشید و قرار باشه اون رو مدیریت کنید که اگر مشکلی پیش اومد مثل پاسخ داده نشدن یا به اصطلاح میس کال شدن تماس رو داشته باشید؟
خوشبختانه با پیشرفت های هوش مصنوعی این موارد امکان پذیر شده است، فقط کافی است دانش کافی در این مورد رو بتونید کسب کنید و به انجام این کار به پردازید.
ما انجام این کار رو با نصب و راه اندازی یک هوش مصنوعی به نام n8n پرداختیم که این مورد بر روی سرور باید نصب گردد و مراحل آن برای پیکربندی صورت بگیرد تا بتوان از آن به عنوان یک دستیار هوش مصنوعی بتوان استفاده کرد.
در تمام مراحل موارد متصل شدن و برقراری ارتباط بین دو سرور با api ها انجام خواهد پذیرفت.
N8N (Node for workflow automation اتومیشن متن باز: یک ابزار open source است که برای ساخت جریان های کاری بین سرور ها و اپلیکیشن ها به صورت خودکار انجام میشود.
پیشنیاز ها:
برای انجام این موارد ما به یک عدد سرور لینوکسی و اینترنت نیازمندیم تا با استفاده از محیط کامندی اون به انجام موارد مورد نیاز به پردازیم.
برای انجام این موارد ایتدا به نصب یک عدد سرور لینوکسی میپردازیم که ما از دبیان 12 برای این مورد استفاده کرده ایم.
سپس برای نصب n8n نیاز داریم که اول داکر و داکر کمپوز رو نصب کنیم که بتونیم از محیط اون برای استفاده بپردازیم.
برای نصب داکر و داکر کمپوز به انجام این موارد میپردازیم:
ابتدا پیش از هر کاری نیاز است که دی ان اس و ریپازیتوری را تغییر بدیم تا به مشکلی نحوریم.
پیش نیاز نصب داکر :
sudo apt install -y ca-certificates curl gnupg
اگر ارور دریافت کردیم پیش نیاز های نصب این ها هستند:
sudo apt install curl gnupg
سپس به ضافه کردن Docker GPG Key و ریپو میپردازیم :
sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/debian/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
echo
“deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/debian
$(lsb_release -cs) stable” |
sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
حال به نصب داکر میپردازیم:
sudo apt update
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
سپس نیاز است که به نصب Docker Compose میپردازیم:
sudo curl -L “https://github.com/docker/compose/releases/download/2.24.6/docker-compose-$(uname -s)-$(uname -m)” -o /usr/local/bin/docker-compose
سپس دسترسی های لازم را برایش فراهم میکنیم:
sudo chmod +x /usr/local/bin/docker-compose
حال به چک کردن این مورد میپردازیم:
docker-compose –version
ساخت پروژه و اجرای n8n رو با ساخت یک دایرکتوری که بتونیم بعدا بهش راحت تر دسترسی داشته باشیم میپردازیم:
mkdir n8n && cd n8n
همچنین میتونیم به این صورت هم به نصب داکر و پلاگین داکر کمپوز هم بپردازیم:
sudo apt install -y docker-ce docker-ce-cli containerd.io docker-buildx-plugin
docker-compose-plugin
حال مجدد به بررسی نصب این موارد میپردازیم:
docker compose version ، docker --version
حال مجدد وارد پوشه ی ساخته شده میشیم و به ساخت این مورد برای کانفیگ آن میپردازیم:
ابتدا به ساخت فایل docker-compose.yml میپردازیم و این مقادیر را برایش قرار میدهیم:
version: ‘3.7’
services:
n8n:
image: n8nio/n8n
restart: always
ports:
- “5678:5678”
environment:
- N8N_BASIC_AUTH_ACTIVE=true
- N8N_BASIC_AUTH_USER=admin
- N8N_BASIC_AUTH_PASSWORD=strong_password_here
- TZ=Asia/Tehran
volumes:
- ./n8n_data:/home/node/.n8n
در مقادیر بالا میتونیم پورت و یوزرنیم و پسورد رو تغییر بدیم.
یوزر و پسورد و پورت مخصوص ورود به پنل وب این مورد میباشد
حال باید وارد پوشه ای که ساختیم بشویم و به اجرای داکر کمپوز خود میپردازیم:
docker compose up –d
حال اگر تمام موارد به درستی انجام شده باشد میتوانیم از وب به آن دسترسی داشته باشیم.
اگر روی لوکال هاست بخواهیم به آن دسترسی داشته باشیم باید به این صورت انجام گیرد:
localhost:5678
ولی اگر در شبکه بخواهیم به آن دسترسی داشته باشیم باید به این صورت با آی پی و پورت آن وارد میشویم:
192.168.51.75:5678
در اینجا به جای آی پی باید آی پی شما وارد شود تا وب آن برای شما بالا بیاید.
برای توقف کردن این سرویس از : docker compose down
و همچنین برای دیدن لاگ ها : docker compose logs –f
و همچنین برای ری استارت کردن : docker compose restart
حال که وارد پنل شدیم با دادن یک ایمیل و پسورد وارد پنل اصلی میشویم.
در اینجا محیط گرافیکی پنل برای ما باز میشود که به این صورت میباشد:
در اینجا با زدن گزینه ی create workflow میتونیم یک محیط جدید برای خودمان بسازیم.
بعد از وارد شدن به این محیط مواجه میشویم :
که با زدن add first step میتونیم قدم اول برای شروع رو انجام بدیم.
دراینجا با مقادیر و کامپوننت های زیادی پیش رو میشویم که هرکدام برای کار خاص خودش صورت میگیرد.
چیزی که ما قرار است انجام دهیم این است که مرکز تماس خود را با استفاده از این اتوماسیون کنیم.
در ابتدا از مورد webhook استفاده میکنیم که میتونیم با استفاده از اون با توسط api ها به ارسال و دریافت موارد بپردازیم.
که تنظیمات آن را به این صورت قرار میدهیم :
ابتدا یک وب هوک برای ارسال درخواست قرار می دهیم.
در اینجا http method رو روی post قرار میدیم و قسمت path یک اسم برای مسیر اون قرار میدهیم.
به سایر موارد کار نداریم و میزاریم به همین صورت باشد.
مسئله ای که در اینجا به وجود می آید چون هر روز زمان سرور تغییر میکند و تماس ها به روز میشود نیاز داریم که بتونیم هر روز تاریخ را آپدیت بکنیم.
برای انجام این کار از کامپوننت code میتوانیم استفاده کنیم؛ بعد از قرار دادن آن تنظیمات آن را به این صورت قرار میدهیم:
در اینجا با انتخاب mode به صورت Run Once for All Items که یعنی تمام اسکریپت یک بار برای تمام آیتم ها صورت گیرد را انتخاب میکنیم و زبان آن را روی جاوا اسکریپت انتخاب مینماییم.
در اینجا با استفاده از این اسکریپت هر روز تاریخ را به روز میکنیم و در یک لووپ زمانی برای 24 ساعت قرار مدهیم تا در ابتدا در سناریو انجام شود.
کامپوننت بعدی که باید استفاده کنیم http request میباشد که با استفاده از این کامپوننت میتونیم درخواست مون رو با api به سمت سرور مرکز تماس خودمون ارسال کنیم و مدیریت ش را در سمت ریپورت ها انجام بدهیم.
در تنظیمات این کامپوننت مقادیر زیادی برای تغییر بسته به هر نیازی وجود دارد که برای ما به این صورت میباشد:
در مقادیر بالا قسمت هدر را به همین فرمت اما با api و پسورد آن قرار بدهید.
و در قسمت url باید endpoint پایانی یعنی جایی که مرکز تماس در آنجا تماس ها را نشان میدهد که تماس ها برقرار شده اند یا نه ارسال کنیم.
همچنین باید send headers رو هم تیک شو بزنیم و اون رو روی json قرار بدیم تا api مون رو به به صورت فایل جاوا اسکریپت و جیسون ارسال بفرماییم.
مقادیر شو با این مورد باید قرار بدیم که:
قسمت api رو به این صورت: “X-APIKEY”: "2SQsc1kyUW باید پر بفرماییم.
به جای عدد ها باید api خودمان را قرار بدیم.
قسمت بعد را هم باید “Authorization”: "Basic YWxpcmV6YT قرار بدیم ، یعنی نوع ارسال api ما به صورت basic میباشد و در قسمت جلویی آن هم باید یورنیم و پسورد اون رو به حالت هش شده ی ی تمپلیت قرار بدیم.
همچنین باید در آخر آن مقادیر رو به این صورت قرار بدهیم :
“Content-Type”: “application/json”,
“Accept”: “application/json”
}
اینجا یعنی که ما نوع ارسالی ای که انتنخاب کرده ایم به صورت فایل جیسون است و از سرور میخواهیم که این مورد را برای دریافت کردن قبول کند.
و در آخر send body رو فعال میکنیم تا تنظیمات بدنه ی اون رو قرار بدیم.
در اینجا قسمت Body Content Type باز هم مثل قسمت قبل انتخاب میکنیم، حالا باید شروط خود را و سایر مقادیر مثل رنج تاریخ و تعداد و … برای تنظیمات رو قرار بدیم.
مثلا در قسمت اول ما اومدیم قرار دادیم که تماس از کی میاد و به کی فرستاده میشه و جای مهمی که ما نیاز داریم وارد کنیم قسمت disposition میباشد اینجا وضعیت تماس بعد از پاسخ داده نشدن میباشد که در مرکز تماس ما به حالت NO ANSWER میباشد و سایر موارد به حالت اصلی و دیفالت قرار میدهیم.
حال مرحله ی بعد مجدد یک نود code استفاده میکنیم و این مقادیر رو براش قرار میدهیم.
با استفاده از این اسکریپت جاوا اسکریپت لیست تماس ها رو به دست میاریم و دسته بندی میکنیم بابت ارسال به ایجنت هوش مصنوعی خود.
حال در مرحله ی بعد از نود ai agent استفاده میکنیم و در وورک فلو قرار میدهیم.
در اینجا باید ابتدا چت مدل خودمان را بهش با استفاده از api متصل بکنیم.
کردیشینال خودمون رو فعال میکنیم و بعد چت بات به آن متصل میشود.
مرحله ی بعد وارد کردن یک مموری یا حافظه برای آن است که ما از simple memory استفاده میکنیم.
موردی که در اینجا وجود دارد session id آن را روی define blow قرار میدهیم و بقیه رو به صورت دلبخواه قرارمیدهیم.
حال روی ایجنت هوش مصنوعی خود دابل کلیک کرده تا تنظیمات آن باز شود
ابتدا در اینجا Source for Prompt (User Message) را روی define blow قرار میدهیم و قسمت Prompt (User Message) را باید قسمت content نود قبلی قرار بدهیم ، یعنی کل تماس های روی ترانک را میگیرد.
یعنی به این صورت:
در قسمت بعد option یک system message رو انتخاب میکنیم تا پرامت خودمان را برایش بدهیم.
ما در اینجا یک پرامت ساده و فارسی برایش گذاشتیم که بتونیم تست راو انجام بدیم.
حالا اگر روی ایجنت خود تست رو بزنیم و صبر کنیم تا اجرا بشه باید خروجی ای با این اوصاف ببینیم:
در اینجا سه عدد تماس گذشته ای که وضعیت شون no answer است رو پیدا کرده است
حالا باید این خروجی رو یک جا داشته باشیم که ما از نود تلگرام استفاده میکنیم.
تلگرام رو اضافه میکنیم و در قسمت اکسس توکن باید توکنی که از ربات ساخت ربات تلگرام ساختیم استفاده کنیم.
در قسمت بعد Resource رو روی message قرار میدیم و Operation رو روی send message میزاریم.
قسمت بعد باید چت آیدی خودتون در تلگرام رو قرار بدید.
قسمت بعدی قسمت text است که میتونیم به صورت دستی یک متنی در اون قرار بدیم تا وقتی شرط اجرا شد در تلگرام ارسال بشه که به صورت دلبخواهی میباشد.
همچنین میتونیم اگر بخواهیم که همان خروجی ایجنت خودمون ارسال بشه باید خروجی اون رو درگ اند دراپ کنیم در قسمت تکست تلگرام قرار میدهیم.
حال اگر بخواهیم خروجی رو ببینیم روی اجرای وورک فلو که بزنیم با این خروجی در تلگرام رو به رو خواهیم شد:
در اینجا خروجی برای ما ارسال میشود و میتونیم اون ها رو داشته باشیم.