دستیار پورتفولیوی مدیریت ثروت با هوش مصنوعی و Google Gemini

دستیار پورتفولیوی مدیریت ثروت با هوش مصنوعی و Google Gemini

11 دقیقه مطالعه · منتشر شده ۱۴۰۵/۴/۳۰

دانلود workflow

فایل JSON آماده import در n8n — credentialها باید در n8n شما تنظیم شوند.

  1. فایل JSON را دانلود کنید.
  2. در n8n: Workflows → Import from File.
  3. Credentialهای هر node را متصل کنید.
  4. workflow را فعال کنید.

شناسه workflow: 14552 · منبع: کاتالوگ Pixori

دستیار پورتفولیوی مدیریت ثروت: Google Sheets، قیمت‌های زنده و Google Gemini

این گردش کار یک دستیار چت مبتنی بر هوش مصنوعی برای پاسخگویی به سوالات مربوط به پورتفولیوی مدیریت ثروت ارائه می‌دهد. این برنامه از Google Sheets برای داده‌های مشتری و دارایی‌ها استفاده می‌کند، قیمت‌های زنده بازار را دریافت می‌کند و از Google Gemini برای تولید پاسخ‌های مختصر و محدود به داده استفاده می‌کند.

کاتالوگ Axeto.ai: مشاهده گردش کار

موارد استفاده

  • وضعیت فوری پورتفولیو: به سرعت به سوالات مربوط به پورتفولیو از طرف مشاوران یا تیم‌های پشتیبانی مشتری پاسخ دهید.
  • گزارش‌دهی سبک: گزارش‌های پورتفولیو را بر اساس داده‌های ذخیره شده در Google Sheets تولید کنید.
  • پاسخ‌های با کمک هوش مصنوعی و محدود به داده: از هوش مصنوعی برای پاسخ‌های زبان طبیعی استفاده کنید و در عین حال با محدود کردن هوش مصنوعی به داده‌های ارائه شده، دقت را تضمین کنید.
  • لاگ‌برداری مناسب برای حسابرسی: برای انطباق و بازبینی، سوابق تمام تعاملات را حفظ کنید.

تشریح گردش کار

گردش کار به چندین مرحله کلیدی تقسیم شده است:

۱. دریافت و اعتبارسنجی ورودی

این مرحله اولیه پیام‌های چت ورودی را مدیریت می‌کند، آن‌ها را تجزیه و تحلیل می‌کند تا شناسه مشتری و سوالات را استخراج کند، و فرمت پیام را اعتبارسنجی می‌کند. ورودی‌های نامعتبر بلافاصله برای ثبت و پاسخ خطای کاربرپسند پردازش می‌شوند.

  • گره‌ها (Nodes):

* When chat message received (@n8n/n8n-nodes-langchain.chatTrigger): نقطه ورود، گوش دادن به پیام‌های چت.

* Parse Client Message (n8n-nodes-base.code): فرمت CLIENT_ID: question را استخراج و اعتبارسنجی می‌کند.

* IF Valid Input? (n8n-nodes-base.if): اجرای گردش کار را بر اساس تجزیه موفقیت‌آمیز منشعب می‌کند.

* Build Invalid Input Response (n8n-nodes-base.code): یک بار داده خطای ساختاریافته برای ورودی‌های نامعتبر ایجاد می‌کند.

* Log Invalid Input (n8n-nodes-base.googleSheets): جزئیات تعامل نامعتبر را به شیت interaction_logs اضافه می‌کند.

* Return Invalid Response (n8n-nodes-base.code): پاسخ خطا را برای کاربر چت قالب‌بندی می‌کند.

۲. جستجوی مشتری و پورتفولیو

در صورت معتبر بودن ورودی، این مرحله اطلاعات مشتری و دارایی‌های پورتفولیوی مرتبط با آن‌ها را از Google Sheets بازیابی می‌کند.

  • گره‌ها (Nodes):

* Get Client Profile (n8n-nodes-base.googleSheets): جزئیات مشتری را از شیت clients بر اساس client_id دریافت می‌کند.

* IF Client Found? (n8n-nodes-base.if): بررسی می‌کند که آیا رکورد مشتری پیدا شده است یا خیر.

* Build Client Not Found Response (n8n-nodes-base.code): در صورت عدم یافتن مشتری، یک پاسخ خطا تولید می‌کند.

* Get Client Holdings (n8n-nodes-base.googleSheets): تمام دارایی‌های مشتری شناسایی شده را از شیت holdings بازیابی می‌کند.

* Prepare Symbols (n8n-nodes-base.code): داده‌های دارایی‌ها را نرمال‌سازی کرده و نمادهای سهام منحصر به فرد را برای بازیابی داده‌های بازار استخراج می‌کند. همچنین یک شیء داده ترکیبی شامل اطلاعات مشتری و دارایی‌ها آماده می‌کند.

* IF Holdings Found? (n8n-nodes-base.if): بررسی می‌کند که آیا هیچ دارایی برای مشتری بازیابی شده است یا خیر.

* Build No Holdings Response (n8n-nodes-base.code): در صورت عدم یافتن دارایی برای مشتری، یک پاسخ خطا ایجاد می‌کند.

۳. بازیابی قیمت زنده و محاسبه پورتفولیو

این مرحله قیمت‌های بازار زنده برای دارایی‌های مشتری را دریافت کرده و معیارهای کلیدی پورتفولیو را محاسبه می‌کند.

  • گره‌ها (Nodes):

* Get Live Prices (n8n-nodes-base.httpRequest): یک فراخوانی API برای دریافت قیمت‌های زنده برای نمادهای آماده شده انجام می‌دهد.

* Normalize Prices (n8n-nodes-base.code): داده‌های خام قیمت را به یک فرمت قابل استفاده پردازش می‌کند.

* Compute Portfolio Metrics (n8n-nodes-base.code): مبلغ سرمایه‌گذاری شده، ارزش فعلی، سود و زیان (P&L) را محاسبه کرده و بهترین/بدترین دارایی‌ها را بر اساس قیمت‌های زنده و داده‌های دارایی‌ها شناسایی می‌کند.

۴. زمینه بازار و ساخت Prompt هوش مصنوعی

این مرحله به صورت اختیاری زمینه بازار اضافی را بازیابی کرده و یک Prompt دقیق اما محدود شده برای مدل Google Gemini می‌سازد.

  • گره‌ها (Nodes):

* Get Market Context (n8n-nodes-base.httpRequest): (اختیاری) داده‌های گسترده‌تر بازار (مانند عملکرد شاخص، خلاصه‌های اخبار) را دریافت می‌کند.

* Merge Data (n8n-nodes-base.set): معیارهای پورتفولیو، داده‌های مشتری و زمینه بازار را در یک شیء داده واحد ترکیب می‌کند.

* Build Gemini Prompt (n8n-nodes-base.code): Prompt را برای Google Gemini می‌سازد، شامل سوال کاربر، داده‌های پورتفولیو و دستورالعمل‌هایی برای ارائه یک پاسخ مختصر و مبتنی بر داده.

۵. تولید پاسخ هوش مصنوعی، قالب‌بندی خروجی و ثبت

مرحله نهایی شامل تولید پاسخ هوش مصنوعی، پردازش آن، ثبت تعامل و به صورت اختیاری ارسال پیش‌نویس ایمیل است.

  • گره‌ها (Nodes):

* Google Gemini Chat (@n8n/n8n-nodes-langchain.googleGemini): Prompt ساخته شده را به Google Gemini برای تولید پاسخ ارسال می‌کند.

* Extract Plain Text (n8n-nodes-base.code): پاسخ Gemini را پاکسازی کرده و فقط متن ساده پاسخ را استخراج می‌کند.

* Log Result (n8n-nodes-base.googleSheets): جزئیات تعامل (سوال، پاسخ، وضعیت، معیارها) را به شیت interaction_logs اضافه می‌کند.

* IF Success? (n8n-nodes-base.if): بررسی می‌کند که آیا تولید هوش مصنوعی و ثبت موفقیت‌آمیز بوده است یا خیر.

* Create Gmail Draft (n8n-nodes-base.gmail): (اختیاری) پیش‌نویس ایمیلی را در Gmail با پاسخ تولید شده ایجاد می‌کند.

* Build Final Response (n8n-nodes-base.code): پاسخ نهایی را برای ارسال مجدد به کاربر چت قالب‌بندی می‌کند.

* Sticky Note (n8n-nodes-base.stickyNote): (اختیاری) یک نشانگر بصری برای پایان مسیر موفقیت‌آمیز گردش کار فراهم می‌کند.

---

تحلیل گره به گره

۱. دریافت و اعتبارسنجی ورودی

#### When chat message received

  • نوع: @n8n/n8n-nodes-langchain.chatTrigger
  • هدف: نقطه ورود برای پیام‌های چت.
  • پیکربندی: حالت پاسخ روی lastNode تنظیم شده است.
  • ورودی/خروجی: ورودی ندارد؛ خروجی به Parse Client Message.

#### Parse Client Message

  • نوع: n8n-nodes-base.code
  • هدف: استخراج client_id و question از پیام، اعتبارسنجی فرمت (CLIENT_ID: question).
  • منطق:

* متن را از $json.chatInput، $json.message یا $json.text بازیابی می‌کند.

* پیام را با : تقسیم می‌کند.

* client_id را به حروف بزرگ تبدیل می‌کند.

* یک پرچم بولی valid تنظیم می‌کند.

  • ورودی/خروجی: ورودی از When chat message received؛ خروجی به IF Valid Input?.

#### IF Valid Input?

  • نوع: n8n-nodes-base.if
  • هدف: انشعاب اجرای فرآیند بر اساس پرچم valid از Parse Client Message.
  • شرط: ={{ $json.valid }}
  • ورودی/خروجی: ورودی از Parse Client Message؛ شاخه True به Get Client Profile، شاخه False به Build Invalid Input Response.

#### Build Invalid Input Response

  • نوع: n8n-nodes-base.code
  • هدف: ایجاد یک بار داده (payload) استاندارد شکست برای ثبت و پاسخ.
  • فیلدهای خروجی: status، error_stage، action_taken، reply، timestamp.
  • ورودی/خروجی: ورودی از شاخه False گره IF Valid Input?؛ خروجی به Log Invalid Input.

#### Log Invalid Input

  • نوع: n8n-nodes-base.googleSheets
  • هدف: افزودن داده‌های تعامل نامعتبر به شیت interaction_logs.
  • عملیات: append
  • صفحه گسترده: Portfolio_AI_System
  • شیت: interaction_logs
  • ورودی/خروجی: ورودی از Build Invalid Input Response؛ خروجی به Return Invalid Response.

#### Return Invalid Response

  • نوع: n8n-nodes-base.code
  • هدف: قالب‌بندی جزئیات خطا برای کاربر چت.
  • فیلدهای خروجی: reply، status، error_stage.
  • ورودی/خروجی: ورودی از Log Invalid Input؛ خروجی نهایی.

۲. جستجوی مشتری و پورتفولیو

#### Get Client Profile

  • نوع: n8n-nodes-base.googleSheets
  • هدف: بازیابی جزئیات مشتری از شیت clients.
  • عملیات: lookup
  • صفحه گسترده: Portfolio_AI_System
  • شیت: clients
  • فیلتر: ستون client_id با {{ $json.client_id }} مطابقت دارد.
  • ورودی/خروجی: ورودی از شاخه True گره IF Valid Input?؛ خروجی به IF Client Found?.

#### IF Client Found?

  • نوع: n8n-nodes-base.if
  • هدف: بررسی اینکه آیا رکورد مشتری پیدا شده است یا خیر.
  • شرط: ={{ !!$json.client_id }} (وجود فیلد client_id را بررسی می‌کند).
  • ورودی/خروجی: ورودی از Get Client Profile؛ شاخه True به Get Client Holdings، شاخه False به Build Client Not Found Response.

#### Build Client Not Found Response

  • نوع: n8n-nodes-base.code
  • هدف: تولید یک بار داده شکست زمانی که مشتری پیدا نمی‌شود.
  • ورودی/خروجی: ورودی از شاخه False گره IF Client Found?؛ خروجی به Log Result (توجه: این به نظر می‌رسد یک اشتباه تایپی در توضیحات اصلی باشد، احتمالاً باید به یک گره ثبت مشابه ورودی نامعتبر یا مستقیماً به یک گره ساخت پاسخ هدایت شود). فرض بر این است که باید منجر به ثبت و پاسخ شود.

#### Get Client Holdings

  • نوع: n8n-nodes-base.googleSheets
  • هدف: واکشی تمام دارایی‌های (holdings) مشتری از شیت holdings.
  • عملیات: lookup
  • صفحه گسترده: Portfolio_AI_System
  • شیت: holdings
  • فیلتر: ستون client_id با {{ $('Parse Client Message').first().json.client_id }} مطابقت دارد.
  • ورودی/خروجی: ورودی از شاخه True گره IF Client Found?؛ خروجی به Prepare Symbols.

#### Prepare Symbols

  • نوع: n8n-nodes-base.code
  • هدف: نرمال‌سازی داده‌های دارایی و استخراج نمادهای سهام منحصر به فرد.
  • منطق:

* تمام آیتم‌های دارایی ورودی را جمع‌آوری می‌کند.

* آیتم‌های خالی را فیلتر می‌کند.

* اگر دارایی وجود نداشته باشد، holdings_found: false را تنظیم می‌کند.

* در غیر این صورت، آرایه کامل دارایی‌ها، نمادهای نرمال‌شده با حروف بزرگ (symbols) و داده‌های ترکیبی مشتری/درخواست را برمی‌گرداند.

  • ورودی/خروجی: ورودی از Get Client Holdings؛ خروجی به IF Holdings Found?.

#### IF Holdings Found?

  • نوع: n8n-nodes-base.if
  • هدف: بررسی اینکه آیا هیچ دارایی بازیابی شده است یا خیر.
  • شرط: ={{ $json.holdings_found !== false }}
  • ورودی/خروجی: ورودی از Prepare Symbols؛ شاخه True به Get Live Prices، شاخه False به Build No Holdings Response.

#### Build No Holdings Response

  • نوع: n8n-nodes-base.code
  • هدف: تولید یک بار داده شکست زمانی که هیچ دارایی برای مشتری پیدا نمی‌شود.
  • ورودی/خروجی: ورودی از شاخه False گره IF Holdings Found?؛ خروجی به Log Result (نکته مشابه Build Client Not Found Response در مورد مسیر مورد نظر).

۳. بازیابی قیمت زنده و محاسبه پورتفولیو

#### Get Live Prices

  • نوع: n8n-nodes-base.httpRequest
  • هدف: واکشی قیمت‌های زنده بازار برای نمادهای استخراج شده.
  • پیکربندی: نیاز به نقطه پایانی API و احراز هویت مشخص برای داده‌های قیمت دارد.
  • ورودی/خروجی: ورودی از شاخه True گره IF Holdings Found?؛ خروجی به Normalize Prices.

#### Normalize Prices

  • نوع: n8n-nodes-base.code
  • هدف: پردازش پاسخ خام API به قالبی قابل استفاده برای محاسبات.
  • ورودی/خروجی: ورودی از Get Live Prices؛ خروجی به Compute Portfolio Metrics.

#### Compute Portfolio Metrics

  • نوع: n8n-nodes-base.code
  • هدف: محاسبه معیارهای کلیدی پورتفولیو (مبلغ سرمایه‌گذاری شده، ارزش فعلی، سود/زیان، بهترین/بدترین عملکرد).
  • منطق: داده‌های دارایی را با داده‌های قیمت نرمال‌شده ادغام می‌کند تا محاسبات را انجام دهد.
  • ورودی/خروجی: ورودی از Normalize Prices؛ خروجی به Get Market Context (یا Merge Data اگر Get Market Context نادیده گرفته شود).

۴. زمینه بازار و ساخت Prompt هوش مصنوعی

#### Get Market Context

  • نوع: n8n-nodes-base.httpRequest
  • هدف: (اختیاری) واکشی داده‌های اضافی بازار برای زمینه.
  • پیکربندی: نیاز به نقطه پایانی API مشخص برای اخبار بازار یا داده‌های شاخص دارد.
  • ورودی/خروجی: ورودی از Compute Portfolio Metrics؛ خروجی به Merge Data.

#### Merge Data

  • نوع: n8n-nodes-base.set
  • هدف: ترکیب معیارهای پورتفولیو، داده‌های مشتری و زمینه بازار اختیاری در یک شیء واحد برای پرامپت هوش مصنوعی.
  • ورودی/خروجی: ورودی از Compute Portfolio Metrics (یا Get Market Context در صورت استفاده)؛ خروجی به Build Gemini Prompt.

#### Build Gemini Prompt

  • نوع: n8n-nodes-base.code
  • هدف: ساخت پرامپت برای Google Gemini، شامل سوال کاربر و تمام داده‌های مرتبط.
  • منطق: داده‌ها و دستورالعمل‌ها را به یک پرامپت واضح برای هوش مصنوعی قالب‌بندی می‌کند.
  • ورودی/خروجی: ورودی از Merge Data؛ خروجی به Google Gemini Chat.

۵. تولید پاسخ هوش مصنوعی، قالب‌بندی خروجی و ثبت

#### Google Gemini Chat

  • نوع: @n8n/n8n-nodes-langchain.googleGemini
  • هدف: ارسال پرامپت به Google Gemini و دریافت پاسخ تولید شده توسط هوش مصنوعی.
  • پیکربندی: نیاز به کلید API Google Gemini و پیکربندی مدل دارد.
  • ورودی/خروجی: ورودی از Build Gemini Prompt؛ خروجی به Extract Plain Text.

#### Extract Plain Text

  • نوع: n8n-nodes-base.code
  • هدف: پاکسازی پاسخ Gemini برای استخراج فقط متن ساده پاسخ.
  • ورودی/خروجی: ورودی از Google Gemini Chat؛ خروجی به Log Result.

#### Log Result

  • نوع: n8n-nodes-base.googleSheets
  • هدف: افزودن جزئیات تعامل موفق به شیت interaction_logs.
  • عملیات: append
  • صفحه گسترده: Portfolio_AI_System
  • شیت: interaction_logs
  • ورودی/خروجی: ورودی از Extract Plain Text (و احتمالاً گره‌های خطا از بخش ۲)؛ خروجی به IF Success?.

#### IF Success?

  • نوع: n8n-nodes-base.if
  • هدف: بررسی اینکه آیا تولید هوش مصنوعی و ثبت موفقیت‌آمیز بوده است یا خیر.
  • شرط: معمولاً فیلد status: 'success' را بررسی می‌کند.
  • ورودی/خروجی: ورودی از Log Result؛ شاخه True به Build Final Response، شاخه False برای مدیریت خطاهای احتمالی (مانند ثبت شکست، بازگرداندن پیام خطا).

#### Create Gmail Draft

  • نوع: n8n-nodes-base.gmail
  • هدف: (اختیاری) ایجاد یک پیش‌نویس ایمیل با پاسخ تولید شده.
  • عملیات: sendEmail (به عنوان پیش‌نویس پیکربندی شده است)
  • ورودی/خروجی: ورودی از شاخه True گره IF Success?؛ خروجی به Build Final Response.

#### Build Final Response

  • نوع: n8n-nodes-base.code
  • هدف: قالب‌بندی پاسخ نهایی برای ارسال مجدد به کاربر چت.
  • ورودی/خروجی: ورودی از Create Gmail Draft (یا شاخه True گره IF Success?)؛ خروجی نهایی.

#### Sticky Note

  • نوع: n8n-nodes-base.stickyNote
  • هدف: نشانگر بصری برای پایان مسیر موفقیت‌آمیز گردش کار.
  • ورودی/خروجی: ورودی از Build Final Response.

Nodeهای استفاده‌شده

سوالات متداول

این گردش کار n8n چگونه به مدیریت ثروت کمک می‌کند؟

این گردش کار با اتصال به Google Sheets برای داده‌های مشتری و دارایی‌ها، دریافت قیمت‌های زنده بازار و استفاده از Google Gemini برای تولید پاسخ‌های هوشمند و محدود به داده، به سوالات مربوط به پورتفولیوی مدیریت ثروت پاسخ می‌دهد.

چه ابزارهایی در این گردش کار استفاده شده است؟

این گردش کار از ابزارهایی مانند Google Sheets برای ذخیره داده‌ها، APIهای قیمت‌گذاری زنده بازار و Google Gemini برای پردازش زبان طبیعی و تولید پاسخ استفاده می‌کند.

چگونه از دقت پاسخ‌های هوش مصنوعی اطمینان حاصل می‌شود؟

دقت از طریق محدود کردن هوش مصنوعی به داده‌های ارائه شده از Google Sheets و قیمت‌های زنده بازار تضمین می‌شود. این بدان معناست که پاسخ‌ها بر اساس اطلاعات واقعی و موجود تولید می‌شوند.

موارد استفاده اصلی این دستیار پورتفولیو چیست؟

موارد استفاده اصلی شامل ارائه سریع وضعیت پورتفولیو، تولید گزارش‌های سبک، ارائه پاسخ‌های با کمک هوش مصنوعی و محدود به داده، و حفظ لاگ‌های حسابرسی برای تعاملات است.

workflowهای مرتبط

این workflow در کاتالوگ Pixori.me بایگانی شده است. لایسنس اصلی متعلق به سازنده workflow است.