پرسش و پاسخ صوتی جلسات گذشته با OpenAI و Pinecone

پرسش و پاسخ صوتی جلسات گذشته با OpenAI و Pinecone

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

دانلود workflow

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

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

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

پرسش و پاسخ صوتی برای جلسات گذشته با استفاده از OpenAI و Pinecone

این گردش کار یک سیستم پرسش و پاسخ فعال با صدا برای یادداشت‌های جلسات گذشته شما را فعال می‌کند. شما می‌توانید با استفاده از صدای خود در مورد بحث‌های قبلی سؤال بپرسید و سیستم پاسخ‌های مختصر و واقعی را بر اساس داده‌های جلسه شما ارائه می‌دهد.

نام گردش کار: پرسیدن سؤالات از جلسات خود با استفاده از صدا و هوش مصنوعی

دسته‌بندی‌ها: اینترنال ویکی، هوش مصنوعی RAG

فناوری‌های کلیدی: OpenAI (تبدیل گفتار به متن، تبدیل متن به گفتار، جاسازی‌ها)، Azure OpenAI (مدل چت)، Pinecone (پایگاه داده برداری)

کاتالوگ Axeto.ai: https://axeto.ai/n8n

---

۱. نمای کلی گردش کار

این گردش کار برای پردازش پرسش‌های مبتنی بر صدا در مورد جلسات گذشته طراحی شده است. این الگو از الگوی تولید افزوده بازیابی (RAG) پیروی می‌کند تا اطمینان حاصل شود که پاسخ‌ها بر اساس محتوای خاص جلسه شما بنا شده‌اند.

عملکرد اصلی:

1. دریافت ورودی صوتی: ضبط صوتی یک سؤال را از طریق یک وب‌هوک دریافت می‌کند.

2. رونویسی صدا: سؤال گفتاری را با استفاده از سرویس رونویسی OpenAI به متن تبدیل می‌کند.

3. جاسازی و جستجو: یک جاسازی برداری از سؤال ایجاد می‌کند و از آن برای جستجوی شاخص Pinecone برای یادداشت‌های جلسه مرتبط استفاده می‌کند.

4. زمینه‌سازی: یادداشت‌های جلسه بازیابی شده را جمع‌آوری و در یک زمینه منسجم ادغام می‌کند.

5. تولید پاسخ: از یک مدل چت Azure OpenAI برای فرموله‌بندی پاسخی فقط بر اساس زمینه جلسه ارائه شده استفاده می‌کند.

6. ترکیب صدا: پاسخ متنی تولید شده را با استفاده از سرویس تبدیل متن به گفتار OpenAI دوباره به فرمت صوتی تبدیل می‌کند.

7. پاسخ‌دهی: پاسخ صوتی را به درخواست وب‌هوک اصلی برمی‌گرداند.

---

۲. جزئیات گره‌ها

۲.۱ دریافت ورودی: وب‌هوک

  • هدف: دریافت سؤال صوتی ورودی از کاربر.
  • گره‌ها:

* Receive Voice Question (n8n-nodes-base.webhook)

  • پیکربندی:

* HTTP Method: POST

* Path: meeting-sentiment-query

* Response Mode: responseNode (نیاز به گره Respond to Webhook در انتها دارد)

* Options: binaryData: false (توجه: اطمینان حاصل کنید که کلاینت داده‌های صوتی را به درستی برای رونویسی ارسال می‌کند.)

  • ورودی: درخواست HTTP POST خارجی حاوی داده‌های صوتی.
  • خروجی: داده‌های درخواست را به گره رونویسی منتقل می‌کند.
  • مشکلات احتمالی: پیکربندی نادرست binaryData یا ارسال داده‌های صوتی از سمت کلاینت می‌تواند منجر به شکست رونویسی شود اگر صدا به عنوان یک ویژگی باینری قابل دسترسی نباشد.

۲.۲ صدا به متن: رونویسی و اعتبارسنجی

  • هدف: تبدیل سؤال صوتی به متن و آماده‌سازی آن برای پردازش بیشتر.
  • گره‌ها:

* Transcribe Voice Question (@n8n/n8n-nodes-langchain.openAi)

* Extract Voice Question (n8n-nodes-base.code)

  • گره Transcribe Voice Question:

* Resource: Audio

* Operation: Transcribe

* Binary Property Name: file (انتظار داده‌های صوتی در $binary.file را دارد)

* Credentials: اعتبارنامه OpenAI API (مثلاً "OpenAi account 2")

* ورودی: داده‌های صوتی را از وب‌هوک دریافت می‌کند.

* خروجی: JSON حاوی متن رونویسی شده text.

* مشکلات احتمالی: $binary.file گمشده، فرمت‌های صوتی پشتیبانی نشده، خطاهای API یا اتمام زمان.

  • گره Extract Voice Question:

* هدف: رونویسی را اعتبارسنجی کرده و متن question و شناسه team را استخراج می‌کند.

* منطق کد: $json.text را از خروجی رونویسی می‌خواند. اگر text گمشده باشد یا رشته نباشد، خطا ایجاد می‌کند. همچنین یک فیلد team را استخراج می‌کند که در صورت عدم ارائه، به طور پیش‌فرض 'Test Team' است.

* خروجی: شیء JSON با فیلدهای question و team.

* مشکلات احتمالی: رونویسی که ساختارهای داده‌ای غیرمنتظره‌ای را برمی‌گرداند. team پیش‌فرض ممکن است در صورت عدم تنظیم صریح، همه پرس‌وجوها را به یک فضای نام هدایت کند.

۲.۳ جستجوی برداری: جاسازی‌ها و بازیابی

  • هدف: یافتن یادداشت‌های جلسه که از نظر معنایی شبیه به سؤال کاربر هستند.
  • گره‌ها:

* Generate Question Embedding (@n8n/n8n-nodes-langchain.embeddingsOpenAi)

* Search Meetings in Pinecone (@n8n/n8n-nodes-langchain.vectorStorePinecone)

  • گره Generate Question Embedding:

* هدف: یک نمایش برداری از سؤال رونویسی شده ایجاد می‌کند.

* Credentials: اعتبارنامه OpenAI API (مثلاً "OpenAi account 2")

* ورودی: به طور ضمنی از زمینه مورد فعلی (متن سؤال) استفاده می‌کند.

* خروجی: یک بردار جاسازی هوش مصنوعی، که از طریق ai_embedding به گره بعدی منتقل می‌شود.

* مشکلات احتمالی: گره قادر به تعیین متن برای جاسازی نیست، خطاهای OpenAI API.

  • گره Search Meetings in Pinecone:

* هدف: پایگاه داده برداری Pinecone را برای اسناد مرتبط جستجو می‌کند.

* Mode: Load (retrieve)

* Index: meeting-sentiment-index

* Namespace: {{ $json.team }} (از جداسازی داده‌های خاص تیم اطمینان حاصل می‌کند)

* Credentials: اعتبارنامه Pinecone API (مثلاً "PineconeApi account 2")

* ورودی: جاسازی سؤال را از طریق ai_embedding و داده‌های اصلی را از گره قبلی دریافت می‌کند.

* خروجی: اسناد بازیابی شده را برمی‌گرداند، معمولاً با محتوا در json.document.pageContent.

* مشکلات احتمالی: خطاهای پیکربندی فضای نام/شاخص، مشکلات احراز هویت Pinecone، نتایج خالی اگر اسناد مشابهی یافت نشد.

۲.۴ مونتاژ زمینه: ساخت زمینه RAG

  • هدف: ترکیب چندین یادداشت جلسه بازیابی شده در یک رشته زمینه واحد و قابل استفاده.
  • گره‌ها:

* Build Meeting Context (n8n-nodes-base.code)

  • منطق کد:

* تمام اسناد بازیابی شده ($input.all()) را جمع‌آوری می‌کند.

* item.json.document?.pageContent را از هر سند استخراج می‌کند.

* محتوای استخراج شده را با \n---\n به هم متصل می‌کند.

* یک شیء JSON واحد { context } را خروجی می‌دهد.

  • رفتار شکست: اگر هیچ سندی از Pinecone برگردانده نشود، خطا ایجاد می‌کند.
  • ورودی: نتایج از Search Meetings in Pinecone.
  • خروجی: یک شیء JSON حاوی رشته context تلفیقی.
  • مشکلات احتمالی: اسنادی که ساختار pageContent مورد انتظار را ندارند و منجر به زمینه خالی می‌شوند. زمینه‌های ترکیبی بسیار بزرگ ممکن است از محدودیت‌های مدل فراتر روند.

۲.۵ تولید پاسخ: عامل Azure OpenAI

  • هدف: تولید پاسخی واقعی به سؤال با استفاده از زمینه مونتاژ شده.
  • گره‌ها:

* AI Chat Model (@n8n/n8n-nodes-langchain.lmChatAzureOpenAi)

* Answer Question from Meetings (@n8n/n8n-nodes-langchain.agent)

  • گره AI Chat Model:

* هدف: بک‌اند مدل زبان چت را فراهم می‌کند.

* Model: GPT-4O-MINI

* Credentials: اعتبارنامه Azure OpenAI (مثلاً "Azure Open AI account")

* Connection: از طریق ai_languageModel به گره Answer Question from Meetings تغذیه می‌کند.

* مشکلات احتمالی: نام نادرست استقرار/مدل Azure، خطاهای احراز هویت، محدودیت‌های نرخ.

  • گره Answer Question from Meetings:

* هدف: عامل را برای تولید پاسخ هماهنگ می‌کند.

* Prompt Type: Define

* Prompt Instructions: "فقط با استفاده از زمینه جلسه ارائه شده پاسخ دهید. اگر اطلاعات در زمینه وجود ندارد، بیان کنید که آن اطلاعات را ندارید. یک پاسخ کوتاه و واضح ارائه دهید."

* متغیرهای تزریق شده:

* {{ $json.context }} (از Build Meeting Context)

* {{ $('Extract Voice Question').item.json.question }} (سؤال رونویسی شده اصلی)

* ورودی: زمینه را از Build Meeting Context و مدل زبان را از AI Chat Model دریافت می‌کند.

* خروجی: JSON حاوی پاسخ تولید شده، معمولاً در json.output.

* مشکلات احتمالی: وضوح نادرست متغیرهای تزریق شده، زمینه خالی/بسیار بزرگ که بر کیفیت پاسخ تأثیر می‌گذارد، عدم تطابق فیلد خروجی عامل.

۲.۶ تبدیل متن به گفتار و پاسخ‌دهی

  • هدف: تبدیل پاسخ متنی به گفتار و بازگرداندن آن به کاربر.
  • گره‌ها:

* Prepare Answer for Audio (n8n-nodes-base.code)

* Generate Spoken Answer (@n8n/n8n-nodes-langchain.openAi)

* Return Audio Response (n8n-nodes-base.respondToWebhook)

  • گره Prepare Answer for Audio:

* هدف: یک گره جایگزین برای تبدیل احتمالی داده‌ها قبل از TTS. در حال حاضر، یک فیلد ساختگی اضافه می‌کند.

* ورودی: خروجی از Answer Question from Meetings.

* خروجی: داده‌ها را به Generate Spoken Answer منتقل می‌کند.

* توصیه: در صورت نیاز، این گره را برای نگاشت صریح و اعتبارسنجی متن پاسخ ($json.output) تقویت کنید.

  • گره Generate Spoken Answer:

* هدف: پاسخ متنی را به یک فایل صوتی تبدیل می‌کند.

* Resource: Audio

* Input Text: {{ $json.output }} (انتظار متن پاسخ را در فیلد output دارد)

* Credentials: اعتبارنامه OpenAI API (مثلاً "OpenAi account 2")

* ورودی: پاسخ متنی را دریافت می‌کند.

* خروجی: داده‌های صوتی باینری و فراداده.

* مشکلات احتمالی: $json.output گمشده، خطاهای OpenAI API، فرمت‌های صوتی پشتیبانی نشده.

  • گره Return Audio Response:

* هدف: پاسخ صوتی نهایی را به کلاینتی که درخواست وب‌هوک را آغاز کرده است، ارسال می‌کند.

* ورودی: داده‌های صوتی باینری از Generate Spoken Answer.

* خروجی: پاسخ HTTP به فراخواننده وب‌هوک.

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

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

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

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

چه فناوری‌هایی در این گردش کار استفاده شده است؟

این گردش کار از OpenAI برای رونویسی صدا، تولید جاسازی و تبدیل متن به گفتار، و از Pinecone برای پایگاه داده برداری و جستجو استفاده می‌کند. همچنین از Azure OpenAI برای مدل چت بهره می‌برد.

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

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

چگونه می‌توانم این گردش کار را راه‌اندازی کنم؟

برای راه‌اندازی این گردش کار، نیاز به تنظیم اعتبارنامه‌های OpenAI و Pinecone، پیکربندی گره‌ها مطابق با مستندات و اطمینان از ارسال صحیح داده‌های صوتی به وب‌هوک دارید.

workflowهای مرتبط

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