آموزش ساخت Workflow تبدیل صفحات Notion به Vector Store در n8n با Gemini و Pinecone

انتشار خودکار محتوا با n8n

Template تبدیل Notion به Vector Store در n8n

مقدمه

اگر در Notion حجم زیادی از اطلاعات، مستندات، مقالات یا محتوای متنی را مدیریت می‌کنید، پیدا کردن اطلاعات مرتبط در میان تعداد زیادی صفحه همیشه ساده نیست. یکی از راهکارهای حرفه‌ای برای حل این مشکل، تبدیل محتوای متنی به Embedding و ذخیره آن در یک پایگاه داده برداری یا Vector Store است. در این مقاله، یک Template تبدیل Notion به Vector Store در n8n را بررسی می‌کنیم که این فرآیند را به‌صورت خودکار انجام می‌دهد.

این Workflow با شناسایی صفحات جدید در یک Database در Notion آغاز می‌شود. سپس محتوای صفحه را دریافت کرده، بخش‌های غیرمتنی مانند تصویر و ویدئو را کنار می‌گذارد و محتوای متنی را به یک متن یکپارچه تبدیل می‌کند. در ادامه، متن همراه با Metadata مناسب به ساختار Document تبدیل می‌شود و با استفاده از Token Splitter به بخش‌های کوچک‌تر تقسیم می‌شود.

در مرحله بعد، Google Gemini وظیفه تولید Embedding را بر عهده دارد و در نهایت داده‌های پردازش‌شده در Pinecone Vector Store ذخیره می‌شوند. نتیجه این فرآیند، یک مخزن برداری از محتوای Notion است که می‌تواند در پروژه‌های هوش مصنوعی، سیستم‌های RAG، چت‌بات‌های مبتنی بر دانش و جست‌وجوی معنایی مورد استفاده قرار گیرد.

در ادامه، تمام Nodeهای این Workflow، نحوه اتصال آن‌ها، تنظیمات مهم، پیش‌نیازها و روش شخصی‌سازی Template را مرحله‌به‌مرحله بررسی خواهیم کرد.

N8N برای چه کسب و کارهایی مناسب است:

اگر سازمان شما کوچک می باشد و هم اکنون بسیاری از کار های خود را با نرم افزار هایی همچون اکسل انجام می دهید، N8N برای کسب و کار شما ایده آل است و در صورتی که کسب و کاری متوسط یا بزرگ دارید می توانید بخش های بسیاری از فرایند های غیر کلیدی خود را با این ابزار هوشمند کنید.

و اگر به پیاده‌سازی اختصاصی، اتصال n8n به نرم‌افزارهای سازمانی یا سفارشی‌سازی Workflowها متناسب با کسب‌وکارتان نیاز دارید، Danix با بررسی نیازهای کسب‌وکار تان، می‌تواند این فرایند را از طراحی تا استقرار برای شما انجام دهیم.

برای کسب و کارهای کوچک به این لینک مراجعه کنید.

همچنین اگر ترجیح می‌دهید شخصاً نصب و راه‌اندازی را انجام دهید، می‌توانید از اطلاعات موجود در مقالات، دسته N8N استفاده کنید .همچنین می توانید template موجود در این workflow را به صورت رایگان از این قسمت دانلود کنید.

رمز فایل: danixai.com

قبل از شروع

اگر هنوز n8n را نصب نکرده‌اید، پیشنهاد می‌کنیم ابتدا مقاله «آموزش n8n» را مطالعه کنید. در آن مقاله، مراحل نصب با Node.js و Docker، راه‌اندازی اولیه و ساخت اولین Workflow به‌صورت کامل آموزش داده شده است. پس از نصب و راه‌اندازی، به این مقاله بازگردید و مراحل پیاده‌سازی این Workflow را دنبال کنید.

این Workflow چه کاری انجام می‌دهد؟

این Workflow برای انتقال خودکار محتوای صفحات جدید Notion به یک Vector Store طراحی شده است.

به زبان ساده، هر زمان صفحه‌ای در Database مشخص‌شده Notion ایجاد شود، Workflow آن را شناسایی می‌کند. سپس محتوای داخل صفحه دریافت می‌شود و Node مربوط به Filter، محتوای غیرمتنی مانند تصاویر و ویدئوها را حذف می‌کند.

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

برای اینکه متن برای پردازش برداری مناسب باشد، Token Splitter آن را به Chunkهای کوچک‌تر تقسیم می‌کند. سپس Google Gemini برای هر بخش یک Embedding تولید می‌کند و این Embeddingها در Pinecone ذخیره می‌شوند.

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

کاربردهای این Workflow

این Template می‌تواند در پروژه‌های مختلفی استفاده شود، از جمله:

  1. ساخت سیستم RAG: محتوای Notion می‌تواند به منبع دانش یک چت‌بات هوش مصنوعی تبدیل شود.
  2. جست‌وجوی معنایی: به‌جای جست‌وجوی صرفاً کلمه‌محور، می‌توان محتوای مشابه از نظر مفهوم را پیدا کرد.
  3. ساخت دستیار هوشمند سازمانی: مستندات داخلی شرکت در Notion می‌توانند به پایگاه دانش AI تبدیل شوند.
  4. ساخت چت‌بات پشتیبانی: اطلاعات محصولات، خدمات و راهنماها می‌توانند در Pinecone ذخیره شوند.
  5. مدیریت مستندات فنی: مستندات توسعه‌دهندگان می‌توانند برای پاسخ‌گویی خودکار در اختیار مدل‌های هوش مصنوعی قرار بگیرند.
  6. ایجاد موتور جست‌وجوی محتوای Notion: کاربران می‌توانند براساس مفهوم سؤال خود، محتوای مرتبط را پیدا کنند.
  7. به‌روزرسانی خودکار پایگاه دانش: با ایجاد صفحات جدید در Notion، اطلاعات جدید بدون اجرای دستی Workflow وارد Vector Store می‌شوند.
  8. استفاده در Agentهای هوش مصنوعی: داده‌های ذخیره‌شده در Pinecone می‌توانند به عنوان منبع اطلاعاتی یک AI Agent مورد استفاده قرار بگیرند.

پیش‌نیازها

برای اجرای این Template به موارد زیر نیاز دارید:

  • نصب و راه‌اندازی n8n
  • یک حساب Notion
  • یک Database در Notion
  • دسترسی API مربوط به Notion
  • Credential مربوط به Notion در n8n
  • یک حساب Google/Gemini و API مربوط به Google Gemini
  • Credential مربوط به Google Gemini در n8n
  • یک حساب Pinecone
  • یک Index در Pinecone با نام notion-pages یا نام دلخواه
  • Credential مربوط به Pinecone در n8n
  • محتوای متنی در صفحات Notion
  • تنظیم صحیح Dimension مربوط به Embedding Model در Pinecone

نکته مهم این است که Vector Store باید از نظر Dimension با مدل Embedding انتخاب‌شده سازگار باشد. این Workflow از مدل text-embedding-004 استفاده می‌کند که در ساختار این Template برای Vector Store با Dimension برابر 768 در نظر گرفته شده است.

دانلود Template

فایل JSON این Workflow را از این قسمت دانلود کنید.

رمز فایل: danixai.com

آموزش Import کردن Workflow

وارد داشبورد n8n شوید.
روی Import from File کلیک کنید.
فایل JSON را انتخاب کنید.
Workflow ایجاد خواهد شد.
Credentialهای موردنیاز را تنظیم کنید.

بعد از Import، بهتر است تمام Nodeها را بررسی کنید و Credentialهای Notion، Google Gemini و Pinecone را به حساب‌های خودتان متصل کنید.

ساختار Workflow

ساختار کلی Template تبدیل Notion به Vector Store در n8n به شکل زیر است:

Notion – Page Added Trigger
↓
Notion – Retrieve Page Content
↓
Filter Non-Text Content
↓
Summarize – Concatenate Notion’s blocks content
↓
Pinecone Vector Store

در کنار مسیر اصلی، دو بخش AI به Pipeline متصل هستند:

Embeddings Google Gemini
↓
Pinecone Vector Store

و:

Token Splitter
↓
Create metadata and load content
↓
Pinecone Vector Store

بنابراین Pinecone سه نوع داده موردنیاز را از Workflow دریافت می‌کند: محتوای Document، Splitter برای تقسیم متن و Embedding برای تبدیل متن به بردار.

آموزش کامل تمام Nodeها

تمامی node های Template تبدیل Notion به Vector Store در n8n به صورت زیر است:

1. Notion – Page Added Trigger

وظیفه Node:
این Node نقطه شروع Workflow است و وظیفه دارد ایجاد صفحات جدید در Database مشخص‌شده Notion را تشخیص دهد.

ورودی:
اطلاعات صفحه جدید Notion شامل شناسه، URL، زمان ایجاد و Properties صفحه.

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

تنظیمات مهم:
Trigger روی Database مشخصی از Notion تنظیم شده و Polling آن روی حالت Every Minute قرار دارد. بنابراین n8n تقریباً هر دقیقه Database را بررسی می‌کند تا صفحه جدیدی پیدا کند.

نکات قابل تغییر:
می‌توانید Database را تغییر دهید و Trigger را به فضای کاری یا Database دیگری متصل کنید. در صورت نیاز، تنظیمات مربوط به زمان بررسی نیز قابل تغییر است.

دلیل استفاده:
بدون Trigger، Workflow باید به‌صورت دستی اجرا شود. این Node باعث می‌شود ورود اطلاعات جدید به فرآیند تبدیل به Embedding به شکل خودکار انجام شود.

2. Notion – Retrieve Page Content

وظیفه Node:
این Node محتوای واقعی صفحه Notion را دریافت می‌کند.

ورودی:
URL صفحه دریافت‌شده از Trigger.

خروجی:
Blockهای موجود در صفحه Notion. هر Block می‌تواند نوع متفاوتی داشته باشد؛ برای مثال متن، تصویر یا ویدئو.

تنظیمات مهم:
Resource روی Block قرار گرفته و Operation روی Get All است. گزینه Return All نیز فعال شده تا تمام Blockهای صفحه دریافت شوند.

نکات قابل تغییر:
در صورت تغییر ساختار Workflow می‌توان نحوه دریافت محتوا یا محدوده اطلاعات برگشتی را تغییر داد.

دلیل استفاده:
Trigger معمولاً اطلاعات مربوط به ایجاد صفحه را ارائه می‌دهد، اما برای پردازش محتوا لازم است Blockهای داخل صفحه نیز دریافت شوند.

3. Filter Non-Text Content

وظیفه Node:
این Node Blockهای غیرمتنی را فیلتر می‌کند.

ورودی:
تمام Blockهای دریافت‌شده از صفحه Notion.

خروجی:
Blockهایی که نوع آن‌ها image یا video نیست.

تنظیمات مهم:
دو شرط در این Node وجود دارد:

  • نوع Block نباید image باشد.
  • نوع Block نباید video باشد.

شرط‌ها با Combinator نوع AND اجرا می‌شوند.

نکات قابل تغییر:
اگر قصد دارید انواع دیگری از Blockها را نیز حذف کنید، می‌توانید شرط‌های بیشتری اضافه کنید.

دلیل استفاده:
مدل Embedding این Workflow برای محتوای متنی طراحی شده است. حذف تصاویر و ویدئوها باعث می‌شود فقط داده‌هایی که برای فرآیند متنی مناسب هستند وارد مراحل بعدی شوند.

4. Summarize – Concatenate Notion’s blocks content

وظیفه Node:
این Node محتوای Blockهای متنی را به یک متن یکپارچه تبدیل می‌کند.

ورودی:
Blockهای متنی فیلترشده.

خروجی:
محتوای ترکیب‌شده در فیلدی به نام concatenated_content.

تنظیمات مهم:
فیلد content انتخاب شده و عملیات Aggregation روی Concatenate قرار دارد. جداکننده نیز خط جدید است تا بخش‌های مختلف متن از یکدیگر قابل تشخیص باشند.

نکات قابل تغییر:
می‌توانید جداکننده را تغییر دهید یا در صورت نیاز، منطق پردازش محتوای Blockها را متناسب با ساختار Database خود تغییر دهید.

دلیل استفاده:
صفحه Notion معمولاً از چندین Block تشکیل شده است. قبل از ایجاد Embedding، لازم است محتوای این Blockها در قالبی مناسب برای پردازش متنی آماده شود.

5. Create metadata and load content

وظیفه Node:
این Node متن آماده‌شده را به یک Document تبدیل کرده و Metadata مربوط به صفحه را به آن اضافه می‌کند.

ورودی:
محتوای concatenated_content.

خروجی:
یک Document شامل محتوای صفحه و Metadata.

Metadataهای ایجادشده شامل موارد زیر هستند:

  • pageId: شناسه صفحه Notion
  • createdTime: زمان ایجاد صفحه
  • pageTitle: عنوان صفحه

تنظیمات مهم:
داده ورودی از فیلد concatenated_content دریافت می‌شود. اطلاعات Metadata نیز با Expression از Node مربوط به Trigger استخراج می‌شوند.

نکات قابل تغییر:
می‌توانید Metadata بیشتری مانند نویسنده، دسته‌بندی، وضعیت محتوا یا URL صفحه به Document اضافه کنید.

دلیل استفاده:
Embedding فقط برای جست‌وجوی معنایی کافی نیست. Metadata کمک می‌کند بعداً بتوان منبع اطلاعات، عنوان صفحه یا سایر ویژگی‌های آن را شناسایی و فیلتر کرد.

6. Token Splitter

وظیفه Node:
این Node متن Document را به Chunkهای کوچک‌تر تقسیم می‌کند.

ورودی:
Document تولیدشده توسط Document Loader.

خروجی:
بخش‌های کوچک‌تر متن که برای ایجاد Embedding آماده هستند.

تنظیمات مهم:
در این Template مقدار Chunk Size برابر 256 و Chunk Overlap برابر 30 است.

Chunk Size مشخص می‌کند هر بخش تقریباً چه اندازه‌ای داشته باشد و Chunk Overlap باعث می‌شود بخشی از محتوای Chunk قبلی در Chunk بعدی نیز تکرار شود.

نکات قابل تغییر:
اگر متن‌های شما بسیار کوتاه هستند، می‌توان Chunk Size را کاهش داد. برای اسناد طولانی نیز می‌توان مقدار بزرگ‌تری انتخاب کرد؛ البته انتخاب اندازه Chunk باید با توجه به مدل Embedding و کاربرد نهایی سیستم انجام شود.

دلیل استفاده:
تبدیل یک صفحه بسیار طولانی به یک Embedding واحد معمولاً کیفیت جست‌وجوی معنایی را کاهش می‌دهد. تقسیم متن به بخش‌های منطقی باعث می‌شود بازیابی اطلاعات دقیق‌تر انجام شود.

7. Embeddings Google Gemini

وظیفه Node:
این Node متن را به بردار عددی یا Embedding تبدیل می‌کند.

ورودی:
Chunkهای متنی تولیدشده در فرآیند Document Loading.

خروجی:
Embedding مربوط به هر بخش از متن.

تنظیمات مهم:
مدل انتخاب‌شده در Workflow برابر models/text-embedding-004 است.

Credential:
برای اجرای این Node باید Credential مربوط به Google Gemini در n8n تنظیم شده باشد.

نکات قابل تغییر:
در صورت تغییر مدل Embedding باید سازگاری Dimension مدل جدید با Index در Pinecone بررسی شود.

دلیل استفاده:
Embedding مرحله‌ای است که محتوای زبان طبیعی را به یک نمایش عددی قابل مقایسه تبدیل می‌کند. همین بردارها امکان جست‌وجوی معنایی در Vector Store را فراهم می‌کنند.

8. Pinecone Vector Store

وظیفه Node:
آخرین بخش اصلی Workflow است و داده‌های برداری را در Pinecone ذخیره می‌کند.

ورودی:
این Node از سه مسیر اطلاعات دریافت می‌کند: Document، Text Splitter و Embedding.

خروجی:
رکوردهای برداری ذخیره‌شده در Index مربوط به Pinecone.

تنظیمات مهم:
حالت Node روی Insert قرار دارد و Index مورد استفاده notion-pages است.

Credential:
برای ارتباط با Pinecone باید Credential معتبر Pinecone در n8n تنظیم شود.

نکات قابل تغییر:
می‌توانید Index را تغییر دهید؛ اما Dimension Index باید با Dimension مدل Embedding هماهنگ باشد. همچنین در پروژه‌های بزرگ بهتر است برای منابع مختلف، Namespace یا ساختار Metadata مناسبی در نظر بگیرید.

دلیل استفاده:
Pinecone محل نگهداری Embeddingها است و در ادامه می‌تواند برای بازیابی اطلاعات مرتبط توسط یک سیستم RAG یا AI Agent استفاده شود.

ارتباط Nodeها چگونه کار می‌کند؟

ارتباط‌ های اصلی Template تبدیل Notion به Vector Store در n8n به این صورت هستند:

Notion - Page Added Trigger اطلاعات صفحه را به Notion - Retrieve Page Content می‌فرستد.

سپس خروجی آن وارد Filter Non-Text Content می‌شود تا تصاویر و ویدئوها حذف شوند.

بعد از آن، Summarize - Concatenate Notion's blocks content تمام محتوای قابل پردازش را ترکیب می‌کند.

این محتوای ترکیب‌شده وارد Pinecone Vector Store می‌شود و هم‌زمان برای ساخت Document در مسیر AI قرار می‌گیرد.

Create metadata and load content Document را ایجاد می‌کند و Token Splitter از طریق اتصال AI، نحوه تقسیم Document را مشخص می‌کند.

از طرف دیگر، Embeddings Google Gemini به عنوان سرویس تولید Embedding به Pinecone متصل است.

به این ترتیب Pinecone می‌داند که چگونه Document را تقسیم کرده و برای بخش‌های آن Embedding تولید کند.

نحوه شخصی‌سازی Workflow

یکی از مزیت‌های مهم این Template، امکان تغییر تقریباً تمام اجزای آن متناسب با پروژه است.

تغییر Promptها

در Workflow فعلی Prompt مستقیمی وجود ندارد؛ زیرا هدف آن تولید Embedding از محتوای Notion است، نه تولید متن توسط یک مدل زبانی. اگر در آینده AI Agent یا LLM به آن اضافه کنید، می‌توانید Prompt را در همان Node تنظیم کنید.

تغییر API و Credentialها

Credentialهای موجود در Template مربوط به حساب‌های اصلی سرویس‌ها هستند. بعد از Import باید آن‌ها را با Credential حساب خودتان جایگزین کنید.

تغییر مدل AI

مدل Embedding در Node مربوط به Google Gemini انتخاب شده است. در صورت استفاده از مدل دیگری باید علاوه بر تنظیم Node، Dimension و سازگاری Vector Store را نیز بررسی کنید.

تغییر Trigger

در این Workflow Trigger هر یک دقیقه Database Notion را بررسی می‌کند. می‌توانید Trigger را به روش دیگری مانند Webhook یا یک Trigger مناسب‌تر برای معماری پروژه خود تغییر دهید.

تغییر زمان‌بندی

مقدار Polling فعلی روی Every Minute است. در پروژه‌هایی که ایجاد صفحات با فاصله زمانی زیادی انجام می‌شود، می‌توان دفعات بررسی را کاهش داد تا مصرف منابع کمتر شود.

تغییر Label و Metadata

در این Template Metadata شامل شناسه، زمان ایجاد و عنوان صفحه است. می‌توانید فیلدهایی مانند دسته‌بندی، نویسنده، وضعیت انتشار و URL را نیز اضافه کنید.

تغییر شرایط فیلتر

در Filter فعلی تصویر و ویدئو حذف می‌شوند. می‌توانید نوع‌های دیگری از Block را نیز حذف یا فقط نوع خاصی از محتوا را نگه دارید.

تغییر مسیر اجرای Workflow

می‌توان Nodeهای دیگری مانند IF، Switch، Code، HTTP Request یا حتی یک AI Agent به Workflow اضافه کرد. برای مثال می‌توان قبل از ذخیره داده در Pinecone بررسی کرد که آیا صفحه شرایط لازم برای ورود به پایگاه دانش را دارد یا خیر.

مزایای استفاده از این Workflow

این Template چند مزیت مهم دارد:

  1. خودکارسازی فرآیند: صفحات جدید بدون ورود دستی به Vector Store منتقل می‌شوند.
  2. اتصال مستقیم Notion و Pinecone: نیازی به انتقال دستی محتوای صفحات نیست.
  3. پشتیبانی از جست‌وجوی معنایی: Embedding امکان بازیابی اطلاعات براساس مفهوم را فراهم می‌کند.
  4. استفاده از Metadata: اطلاعاتی مانند عنوان و شناسه صفحه همراه داده ذخیره می‌شوند.
  5. تقسیم هوشمند محتوا: Token Splitter متن را به Chunkهای قابل پردازش تبدیل می‌کند.
  6. قابل توسعه بودن: می‌توان Workflow را به سیستم‌های RAG و Agentهای هوش مصنوعی متصل کرد.
  7. حذف محتوای نامناسب: تصاویر و ویدئوها پیش از پردازش کنار گذاشته می‌شوند.
  8. مناسب برای پایگاه دانش: محتوای Notion می‌تواند به منبع دانش قابل جست‌وجو برای برنامه‌های AI تبدیل شود.

نکات مهم

  1. قبل از اجرای Workflow، Credential هر سه سرویس Notion، Google Gemini و Pinecone را بررسی کنید.
  2. مطمئن شوید Database مورد استفاده در Notion همان Database موردنظر شماست.
  3. Index انتخاب‌شده در Pinecone باید Dimension مناسب داشته باشد.
  4. تغییر مدل Embedding بدون بررسی Dimension می‌تواند باعث خطا شود.
  5. مقدار Chunk Size را براساس نوع و طول محتوای واقعی انتخاب کنید.
  6. Chunk Overlap را بیش از حد بالا نبرید؛ زیرا باعث افزایش تعداد Chunkها و مصرف منابع می‌شود.
  7. Metadata را از ابتدا با دقت طراحی کنید؛ زیرا در مراحل بازیابی اطلاعات بسیار مفید خواهد بود.
  8. اگر صفحات Notion بسیار بزرگ هستند، حجم داده و تعداد Chunkهای ایجادشده را زیر نظر داشته باشید.
  9. حذف تصاویر و ویدئوها به معنی پردازش محتوای آن‌ها نیست؛ این Workflow صرفاً روی محتوای متنی تمرکز دارد.
  10. قبل از استفاده در محیط Production، Workflow را با چند صفحه نمونه آزمایش کنید.
  11. اگر محتوای Notion ویرایش شود، منطق فعلی Workflow برای «صفحه جدید» طراحی شده و لزوماً به‌روزرسانی خودکار Vector موجود را مدیریت نمی‌کند.
  12. برای جلوگیری از داده‌های تکراری در پروژه‌های بزرگ، بهتر است منطق Update و Delete نیز در معماری نهایی در نظر گرفته شود.

خطاهای رایج (Troubleshooting)

خطا 1: اتصال Notion برقرار نمی‌شود

علت: Credential مربوط به Notion معتبر نیست یا دسترسی لازم به Database داده نشده است.

راه‌حل: Credential را دوباره تنظیم کنید و مطمئن شوید Integration مربوط به Notion به Database موردنظر دسترسی دارد.

خطا 2: محتوای صفحه دریافت نمی‌شود

علت: URL یا شناسه صفحه به‌درستی از Trigger منتقل نشده یا صفحه موردنظر برای Integration قابل دسترسی نیست.

راه‌حل: خروجی Notion - Page Added Trigger را بررسی کنید و مطمئن شوید URL صفحه معتبر است و دسترسی Integration به آن وجود دارد.

خطا 3: Pinecone Embedding را قبول نمی‌کند

علت: Dimension مدل Embedding با Dimension تعریف‌شده برای Index در Pinecone مطابقت ندارد.

راه‌حل: Dimension مدل Embedding و Index را بررسی کنید و در صورت تغییر مدل، Index سازگار ایجاد کنید.

خطا 4: اطلاعات غیرمتنی وارد فرآیند می‌شوند

علت: نوع جدیدی از Block در Notion استفاده شده که در شرایط Filter قرار نگرفته است.

راه‌حل: Node Filter Non-Text Content را بررسی کرده و برای نوع‌های اضافی شرط مناسب ایجاد کنید.

خطا 5: تعداد Chunkها بیش از حد زیاد است

علت: Chunk Size بسیار کوچک یا Chunk Overlap بسیار بزرگ تنظیم شده است.

راه‌حل: اندازه Chunk را افزایش دهید و در صورت امکان Overlap را کاهش دهید. سپس تعداد Embeddingهای ایجادشده و کیفیت بازیابی را مقایسه کنید.

خطا 6: عنوان صفحه در Metadata خطا ایجاد می‌کند

علت: ساختار Property مربوط به عنوان در صفحات Notion با Expression استفاده‌شده مطابقت ندارد.

راه‌حل: ساختار Property عنوان را در خروجی Trigger بررسی کنید و Expression مربوط به pageTitle را براساس ساختار واقعی Database اصلاح کنید.

جمع‌بندی

در این مقاله، یک Template تبدیل Notion به Vector Store در n8n را بررسی کردیم که می‌تواند پایه مناسبی برای ساخت سیستم‌های جست‌وجوی معنایی و RAG باشد. Workflow با Trigger مربوط به ایجاد صفحه در Notion شروع می‌شود، محتوای صفحه را دریافت می‌کند، Blockهای غیرمتنی را کنار می‌گذارد و بخش‌های متنی را با یکدیگر ترکیب می‌کند.

سپس متن به Document تبدیل شده و Metadata مهمی مانند شناسه صفحه، عنوان و زمان ایجاد به آن اضافه می‌شود. Token Splitter وظیفه تقسیم محتوا به Chunkهای کوچک‌تر را بر عهده دارد و Google Gemini برای این بخش‌ها Embedding ایجاد می‌کند. در نهایت، Pinecone این داده‌های برداری را ذخیره می‌کند تا در پروژه‌های بعدی قابل بازیابی باشند.

نکته مهم این است که این Workflow فقط یک انتقال ساده بین Notion و Pinecone نیست؛ بلکه یک Pipeline اولیه برای آماده‌سازی داده‌های متنی جهت استفاده در سیستم‌های هوش مصنوعی محسوب می‌شود. با اضافه کردن یک Retrieval Workflow، می‌توان داده‌های ذخیره‌شده را هنگام پرسش کاربر بازیابی کرد و آن‌ها را در اختیار یک LLM یا AI Agent قرار داد.

همچنین می‌توان Template را با اضافه کردن منطق Update، Delete، Metadata بیشتر، فیلترهای پیشرفته و سیستم‌های RAG توسعه داد و آن را به یک پایگاه دانش کاملاً خودکار تبدیل کرد.

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

آیا می‌توان به‌جای Notion از سرویس دیگری استفاده کرد؟

بله. معماری کلی Workflow به Notion وابسته نیست. می‌توان منبع داده را با Google Drive، فایل، دیتابیس، CMS یا API دیگری جایگزین کرد؛ کافی است محتوای متنی در قالب مناسب وارد بخش Document Loading شود.

آیا برای این Workflow حتماً به Pinecone نیاز داریم؟

برای همین Template، Pinecone به عنوان Vector Store انتخاب شده است؛ اما n8n از راهکارهای Vector Store دیگری نیز پشتیبانی می‌کند. بنابراین بسته به معماری پروژه می‌توان مقصد دیگری انتخاب کرد.

Token Splitter چه اهمیتی دارد؟

اگر یک صفحه طولانی را به‌صورت یکپارچه Embedding کنید، دقت بازیابی اطلاعات ممکن است کاهش پیدا کند. Token Splitter متن را به بخش‌های کوچک‌تر تقسیم می‌کند تا هر قسمت بتواند به شکل مستقل‌تر بازیابی شود.
GIT

Categories: , ,