انتقل إلى المحتوى الرئيسي

أداة الصوت لمواقع الويب

ضع زر محادثة على موقعك ليتحدث الزوار مع وكيلك. أعدّه، واختر المواقع المسموح بها، وثبّت الكود، وافهم تأثيره على رصيدك.

ما الذي ستحققه

ستضيف زرًا عائمًا إلى موقعك. يضغط الزائر عليه ويسمح بالميكروفون ويتحدث مع الوكيل نفسه الذي تجرّبه في لوحة التحكم: التعليمات نفسها والصوت والمعرفة والأدوات. لا توجد نسخة ثانية من الوكيل تحتاج إلى تحديثها.

المتطلبات

  • وكيل منشور. الوكيل غير المنشور لا يعرض شيئًا للزوار.
  • رصيد في مساحة عملك، أو دقائق مجانية متبقية في الخطة المجانية. راجع كيف يؤثر على رصيدك أدناه.
  • موقع يمكنك إضافة سطر من الكود إليه، ويعمل عبر https. لا تسمح المتصفحات بالميكروفون إلا في الصفحات الآمنة.

تشغيلها

  1. افتح الوكيل، واختر تبويب Website ثم بطاقة Voice Widget. (البطاقة الأخرى Website Form هي نموذج معاودة الاتصال: راجع نموذج طلب معاودة الاتصال لموقعك.)
  2. في تبويب Configuration وتحت Website اكتب عنوان موقعك (مثل example.com) ثم اضغط Enter أو Add. كرّر ذلك لكل موقع سيعرض الأداة. يظهر كل موقع كصف في القائمة، وتزيل علامة × في الصف ذلك الصف.
  3. فعّل Show the widget on my website.
  4. انتظر ظهور Widget settings saved في أعلى يمين Live Preview.

لا يوجد زر حفظ. يُحفظ كل تغيير تلقائيًا بعد لحظة من توقفك عن الكتابة. وإذا تعذر حفظ شيء بعد (مثل أن يكون المفتاح مفعّلًا دون إدراج أي موقع)، يظهر إشعار قابل للإغلاق أعلى الإعدادات يذكر السبب. وتعرض الزاوية Saving مع نقاط متحركة ثم Widget settings saved. وبمجرد حفظ تغيير والمفتاح مفعّل، تصبح الأداة فعّالة للزوار.

لإيقافها لاحقًا، أطفئ المفتاح وانتظر Widget settings saved. تُرفض المكالمات الجديدة فورًا، ويختفي الزر من الصفحات خلال دقائق (تحتفظ المتصفحات بالإعدادات حتى 30 ثانية وبالسكربت حتى خمس دقائق). لا تُقطع المكالمة الجارية.

يمكن لأعضاء مساحة عملك رؤية التبويب، لكن المالك أو المسؤول فقط يستطيع تغييره.

اختيار المظهر

افتح تبويب Appearance للأيقونة والموضع والألوان. أما النصوص (العنوان ونص الزر ورسالة الترحيب ورابط الخصوصية) فهي في تبويب Configuration أسفل Website.

  • Icon: هاتف أو ميكروفون أو محادثة.
  • Button colour وIcon colour: الزر الدائري والأيقونة التي عليه.
  • Panel colour: خلفية اللوحة المنبثقة. يتكيّف النص والحدود والدرجات الفاتحة داخلها تلقائيًا، فاللوحة الداكنة تحمل نصًا فاتحًا. وتحفظ Phynxa الألوان التي تختارها كما هي، فراجع المعاينة للتأكد من أن الأيقونة والزر واضحان.
  • Position: أسفل اليمين أو أسفل اليسار.
  • Widget title وButton label: عنوان اللوحة ونص الزر الذي يبدأ المكالمة.
  • Greeting message: تُعرض في اللوحة قبل بدء المكالمة. أما ما ينطق به الوكيل فهو جملته الافتتاحية الخاصة، التي تُضبط في تبويب Assistant.
  • Privacy policy link (اختياري): عنوان https يظهر أسفل اللوحة.

Live Preview بجانب الإعدادات هي الأداة الفعلية مرسومة على صفحة تجريبية. لا يمكن بدء مكالمات من المعاينة.

اختيار المواقع المسموح بها

تعمل الأداة في المواقع التي تدرجها فقط. أما صفحة في أي موقع آخر يحمل الكود فلا تحصل على شيء. ويمكنك لصق عدة عناوين دفعة واحدة في الخانة، مفصولة بمسافات أو فواصل.

ما تكتبهما يسمح به
example.comhttps://example.com فقط
www.example.comhttps://www.example.com فقط
*.example.comكل النطاقات الفرعية (app.example.com، shop.example.com) لكن ليس example.com نفسه
example.com:8443ذلك العنوان على ذلك المنفذ

قواعد مهمة:

  • لا يُوثق بالنطاقات الفرعية أبدًا إلا إذا كتبت سطر *.. إذا أردت النطاق الأساسي ونطاقاته الفرعية فأضف السطرين.
  • تعمل مواقع https فقط. يُرفض http.
  • تُنظَّف العناوين عند الحفظ: تُزال الأحرف الكبيرة وhttps:// في البداية وأي مسار.
  • تُرفض عناوين IP، وكذلك أسطر *. التي تشمل نطاقًا عامًا كاملًا مثل *.com أو *.co.uk.
  • يمكنك إدراج ما يصل إلى 20 موقعًا.
  • للتجربة على حاسوبك، يمكن لمن يدير خادم Phynxa أن يسمح بـ localhost (راجع لمن يدير الخادم). وهو متوقف افتراضيًا.

ما الذي يستطيع فحص الموقع فعله وما لا يستطيعه

تخبر المتصفحات الخادم من أي موقع جاء الطلب، ولا تستطيع صفحة في موقع آخر تغيير ذلك. لذلك لا يمكن لموقع غيرك "استعارة" أداتك. أما برنامج ليس متصفحًا فيمكنه ادعاء أنه أي موقع، فالقائمة ليست قفلًا أمام شخص مصمم. ما يحدّ من ذلك هو كل ما عداها: كل عنوان وكل أداة لا يمكنهما بدء إلا عددًا محدودًا من المكالمات في الدقيقة، ولا يمكن فتح سوى القليل منها في وقت واحد، والمكالمات أقصر من مكالمات الهاتف، وكل مكالمة تحتاج إلى حجز رصيد أولًا. إذا رأيت مكالمات لا تعرفها، فأوقف الأداة وراسل الدعم.

ثبّت الأداة في موقعك

التثبيت يعني لصق جزء قصير من الكود في موقعك. اتبع الخطوات الأربع بالترتيب.

الخطوة 1. احصل على الكود

  1. في Phynxa افتح Voice agents واختر وكيلك وافتح تبويب Website.
  2. تأكد من أن موقعك مدرج في تبويب Configuration وأن المفتاح مفعّل (راجع تشغيلها أعلاه).
  3. افتح تبويب Embed Code واضغط Copy.

يبدو الكود هكذا، مع معرّف الأداة الخاص بك. يحتوي فقط على معرّف الأداة العام. لا توجد مفاتيح ولا كلمات مرور، والمعرّف وحده لا يتيح لأحد إجراء مكالمة: تُفحص كل مكالمة مقابل قائمة مواقعك ومفتاحك.

html
<script
  src="https://your-phynxa-address/widget.js"
  data-widget-id="wgt_..."
  async
></script>

الخطوة 2. الصقه في موقعك

اعثر على نوع موقعك أدناه واتبع خطواته. في كل الحالات يوضع الكود في كل صفحة تريد ظهور الزر فيها، وأفضل مكان له هو قبل وسم الإغلاق </body> مباشرة (التذييل، أو "نهاية body").

موقع مكوّن من ملفات (HTML عادي)

  1. افتح ملف صفحتك، مثل index.html، في محرر نصوص. وإذا كانت كل صفحاتك تشترك في قالب أو ملف تذييل واحد، فافتحه هو بدلًا من ذلك، ليظهر الزر في كل الصفحات.
  2. ابحث عن السطر الذي فيه </body> قرب النهاية.
  3. الصق الكود في السطر الذي فوقه مباشرة.
  4. احفظ الملف وارفعه إلى استضافتك (عبر FTP أو مدير ملفات الاستضافة أو بالطريقة التي تنشر بها عادة).

Next.js

  1. افتح app/layout.tsx (App Router). وفي Pages Router افتح pages/_app.tsx.
  2. أضف في الأعلى import Script from "next/script";.
  3. داخل <body> وبعد {children} أضف Script الموضح أدناه، بعنوانك ومعرّفك. وفي pages/_app.tsx ضعه بعد <Component {...pageProps} />.
  4. احفظ وانشر كالمعتاد.
tsx
import Script from "next/script";

export default function RootLayout({ children }: { children: React.ReactNode }) {
  return (
    <html lang="en">
      <body>
        {children}
        <Script
          src="https://your-phynxa-address/widget.js"
          data-widget-id="wgt_..."
          strategy="afterInteractive"
        />
      </body>
    </html>
  );
}

React (‏Vite أو Create React App)

  1. الأسهل: افتح index.html (في مجلد المشروع مع Vite، وفي مجلد public مع Create React App) والصق كود الخطوة 1 قبل </body> مباشرة.
  2. أعد البناء وانشر موقعك.

وإذا فضّلت إضافته بالكود، فضع هذا المكوّن مرة واحدة في مكوّنك الرئيسي (App.tsx):

tsx
import { useEffect } from "react";

export function VoiceWidget() {
  useEffect(() => {
    const script = document.createElement("script");
    script.src = "https://your-phynxa-address/widget.js";
    script.dataset.widgetId = "wgt_...";
    script.async = true;
    document.body.appendChild(script);
    return () => script.remove();
  }, []);
  return null;
}

WordPress

  1. في لوحة إدارة WordPress اذهب إلى Plugins, Add New Plugin.
  2. ابحث عن WPCode (‏WPCode Insert Headers and Footers) ثم ثبّته وفعّله.
  3. اذهب إلى Code Snippets, Header & Footer.
  4. الصق الكود في خانة Footer واضغط Save Changes.

Shopify

  1. في لوحة إدارة Shopify اذهب إلى Online Store, Themes.
  2. بجانب القالب المنشور اضغط ... واختر Edit code.
  3. افتح layout/theme.liquid.
  4. الصق الكود في السطر الذي فوق </body> مباشرة واضغط Save.

Wix

  1. في لوحة موقعك اذهب إلى Settings, Custom Code (يحتاج إلى خطة مدفوعة مع نطاق مربوط).
  2. اضغط Add Custom Code والصق الكود. سمّه "Phynxa voice widget".
  3. تحت Add Code to Pages اختر All pages. وتحت Place Code in اختر Body - end.
  4. اضغط Apply ثم انشر موقعك.

Squarespace

  1. اذهب إلى Settings, Developer Tools, Code Injection (وفي المواقع الأقدم Settings, Advanced, Code Injection). يحتاج إلى خطة تسمح بحقن الكود.
  2. الصق الكود في خانة Footer.
  3. اضغط Save.

Webflow

  1. افتح Site settings, Custom code (يحتاج إلى خطة موقع مدفوعة).
  2. الصق الكود في خانة Footer code.
  3. اضغط Save ثم انشر موقعك.

Google Tag Manager

  1. أنشئ Tag جديدة من نوع Custom HTML والصق الكود.
  2. اختر المشغّل All Pages.
  3. احفظ ثم اضغط Submit وانشر الحاوية.

أي منشئ مواقع آخر

ابحث عن إعداد اسمه "custom code" أو "code injection" أو "header and footer" أو "scripts". اختر موضع التذييل أو نهاية body والصق الكود واحفظ. وإذا لم تجد شيئًا من ذلك، فأرسل كود الخطوة 1 إلى من يعتني بموقعك واطلب منه إضافته قبل </body> في كل الصفحات.

تتغير أسماء القوائم من حين لآخر. إذا لم يطابق أحدها ما تراه، فابحث عن الكلمات نفسها بالقرب منه.

الخطوة 3. انشر موقعك

لصق الكود لا يكفي وحده. في معظم المنصات لا يرى الزوار التغيير إلا بعد أن تنشره أو تنشره على الخادم أو ترفعه. افعل ذلك الآن. وإذا كنت تستخدم إضافة تخزين مؤقت أو CDN فامسح ذاكرتها المؤقتة.

الخطوة 4. تحقق من أنها تعمل

  1. افتح موقعك في نافذة متصفح عادية، على أحد العناوين التي أدرجتها. حدّث الصفحة عدة مرات إن لم ترَ تغييرًا.
  2. ابحث عن الزر الدائري في الزاوية التي اخترتها.
  3. اضغط عليه ثم اضغط زر البدء واسمح بالميكروفون وقل مرحبًا. يجب أن يرد الوكيل.
  4. عند العودة إلى Phynxa افتح تبويب Embed Code وانظر إلى لوحة Installation أسفل الكود: يتحول Not seen yet إلى Installed مع عنوان الموقع. اضغط Check again إن لم يتغير بعد. نسخ الكود لا يُحتسب: لا يتغير إلا بعد أن يحمّل متصفح زائر صفحتك التي تحمل الكود.

إذا لم يظهر الزر، فراجع استكشاف الأخطاء أدناه.

إذا كان موقعك يستخدم Content Security Policy

قد تحجب السياسة الصارمة الأداة. اسمح بعنوان Phynxa للسكربتات (script-src) وللاتصالات بما فيها wss: (connect-src). تحمّل الأداة مساعد الصوت من العنوان نفسه كملف سكربت عادي، لا من عنوان blob:.

ما الذي يراه الزائر

  1. زر دائري صغير في الزاوية التي اخترتها، وبجانبه ملصق صغير بعنوان أداتك.
  2. الضغط عليه يفتح لوحة مدمجة فيها عنوانك وتحيتك في فقاعة محادثة وزر بدء دائري كبير يحمل نص زرك تحته.
  3. الضغط على زر البدء يطلب مكالمة من الخادم. عندها فقط يطلب المتصفح الميكروفون، وتعرض اللوحة اسمح بالوصول إلى الميكروفون ما دامت نافذة المتصفح نفسه مفتوحة. لا يُسجَّل ولا يُرسل أي شيء قبل أن يسمح الزائر.
  4. يتحدث الزائر ويسمع الوكيل. تعرض اللوحة ما إذا كان المساعد يستمع أو يفكر أو يتحدث، ومؤقت المكالمة، وآخر جملة قالها الوكيل كنص. وتتيح الأزرار الدائرية في الأسفل كتم الميكروفون أو إنهاء المكالمة. وإغلاق اللوحة ينهي المكالمة أيضًا.
  5. عندما ينهي الوكيل المكالمة أو يُبلغ الحد الزمني، تعرض اللوحة انتهت المكالمة مع زر إغلاق. والضغط على الزر الدائري مرة أخرى يبدأ مكالمة جديدة.

تذكر اللوحة أنه مساعد ذكاء اصطناعي وأن المحادثة تُفرَّغ نصيًا. لا تسجل Phynxa صوت المكالمات؛ بل تحتفظ بالنص، ويظهر في History كأي مكالمة أخرى. إذا احتجت إلى إبلاغ الزوار بأكثر من ذلك فأضف رابط سياسة الخصوصية.

تتبع عبارات اللوحة لغة الوكيل حيث تتوفر لدى Phynxa (الإنجليزية والإسبانية والعربية)؛ وتعرض اللغات الأخرى الإنجليزية.

المكالمات في سجلك

تظهر مكالمة الموقع في History بوسم Website والموقع الذي جاءت منه. وكل ما عدا ذلك يعمل كما في المكالمات الأخرى: النص والملخص والتكلفة واستخدام الأدوات والـ webhook. اتجاه المكالمة هو widget في بيانات الـ webhook.

إذا احتاج الزائر إلى شخص

التحويل إلى شخص غير متاح في مكالمات المواقع. فالزائر في متصفح، ولا يوجد خط هاتفي يمكن نقله إلى فريقك. وإذا طلب الزائر التحدث إلى شخص، يخبره الوكيل أنه لا يستطيع التحويل من هناك ويواصل المساعدة. أما تمرير المكالمة إلى وكيل آخر في مساحة عملك فمتاح في هذه المكالمات.

وللوصول بالزائر إلى شخص بعد ذلك، يمكنك:

  • أن تجعل الوكيل يجمع اسم الزائر ورقم هاتفه عبر نموذج، ليتصل به فريقك لاحقًا. راجع النماذج والمواعيد.
  • أن تضيف إجراء Slack، ليصل فريقك تنبيه في قناة أو برسالة مباشرة عندما يحتاج زائر إلى شخص. راجع Slack.
  • أن تضع ساعات العمل ورقم الهاتف والبريد الإلكتروني في تعليمات الوكيل، ليتمكن من إخبار الزائر بكيفية الوصول إليك. راجع التعليمات وجملة الافتتاح.

ولا يزال التحويل إلى شخص يعمل في المكالمات الهاتفية على رقم Twilio. راجع التحويلات على الهاتف.

كيف يؤثر على رصيدك

تستخدم مكالمات المواقع سعر الدقيقة نفسه لمكالماتك الأخرى، محسوبًا من نموذج الوكيل نفسه وتعرّفه على الكلام وصوته. لا تُضاف أي رسوم جديدة للأداة.

  • قبل اتصال المكالمة، تحجز Phynxa رصيدًا لأول مرحلة منها، تمامًا كمكالمة الهاتف، وتزيده أثناء المكالمة. وعند انتهائها تُحاسَب بالتكلفة الفعلية ويُفرج عن الباقي. ولا يمكن لانقطاع مكرر أن يحاسب مرتين.
  • إذا لم يكن الرصيد كافيًا، يرى الزائر "This voice assistant cannot take calls right now". ولا يُخبَر بخطتك أو رصيدك.
  • في الخطة Free تُحتسب مكالمات المواقع من دقائق المكالمات الفعلية (5 دقائق)، لا من دقائق الاختبار.
  • يُنهي إعداد Longest call (10 دقائق افتراضيًا) المكالمة بلطف عند هذا الطول. وتحتفظ مكالمات الهاتف بحدها الأطول.
  • يسري حد خطتك للمكالمات المتزامنة على الأداة أيضًا، ولكل أداة سقفها الخاص للمكالمات المفتوحة. ويُطلب ممن يصل والأداة ممتلئة أن يحاول بعد دقيقة. وتنتظر معاودة الاتصال من نموذج الموقع حتى يتوفر مكان فارغ بدلًا من الاتصال بشخص سيُرفض بعد ذلك: راجع استخدامها مع نموذج معاودة الاتصال.

استكشاف الأخطاء

الزر لا يظهر. افحص بالترتيب: المفتاح مفعّل ويظهر Widget settings saved؛ الوكيل منشور؛ عنوان الصفحة مدرج في Website تمامًا (www. يُحتسب؛ وhttp لا)؛ الكود موجود في الصفحة (اعرض مصدر الصفحة وابحث عن widget.js)؛ الصفحة لا تحجب السكربت بسياسة Content Security Policy؛ ولا يزيله مانع إعلانات أو خصوصية.

"Not seen yet" بعد التثبيت. تأكد من أنك نشرت موقعك (الخطوة 3)، ثم افتح صفحة من الموقع المسموح به تحمل الكود في نافذة عادية، ثم اضغط Check again. قد تكون الصفحة المخزنة مؤقتًا هي القديمة.

الميكروفون محظور. تذكر اللوحة ذلك. اضغط أيقونة القفل أو الكاميرا في شريط عنوان المتصفح، واسمح بالميكروفون للموقع، ثم اضغط حاول مرة أخرى. وعلى الهاتف تحقق أيضًا من إذن المتصفح في إعدادات الهاتف. وقد يمنعه أيضًا تطبيق آخر يستخدم الميكروفون (مثل مكالمة فيديو).

"تعذر الاتصال". انقطع اتصال الزائر بالإنترنت، أو شيء بينه وبين Phynxa (جدار حماية في شركة، سياسة صارمة) يحجب الاتصال. يجب السماح بـ WebSockets (wss:).

انقطعت المكالمة. اضغط إعادة الاتصال. يبدأ هذا مكالمة جديدة؛ ولا يمكنه متابعة القديمة، وتُحاسَب الجديدة كأي مكالمة أخرى.

تقول إن المتصفح لا يدعم المكالمات الصوتية. يحتاج الزائر إلى إصدار حديث من Chrome أو Edge أو Firefox أو Safari، في صفحة https.

لا صوت من الوكيل. افحص مستوى صوت الجهاز وأن التبويب غير مكتوم. تحتاج بعض الهواتف إلى لمس الشاشة أولًا، وهو ما يفعله زر البدء.

استخدامها مع نموذج معاودة الاتصال

يمكنك تشغيل أداة الصوت ونموذج معاودة الاتصال على الموقع نفسه في الوقت نفسه. هما منفصلان: لكل منهما مفتاحه وإعداداته ومواقعه المسموح بها وشيفرته، ويمكن تشغيل أحدهما أو إيقافه دون المساس بالآخر.

  • ثبّت الشيفرتين. الصق شيفرة أداة الصوت وشيفرة النموذج في الصفحات نفسها (مثلًا كلتاهما قبل </body> مباشرة). يرسم كل سكربت زره داخل حاويته المعزولة، فلا يستطيع أحدهما تغيير مظهر الآخر ولا مظهر صفحتك. ولصق أي منهما مرتين يُظهره مرة واحدة.
  • زران في زاوية واحدة. إذا كان كلاهما على الجانب نفسه من النافذة يُوضع زر الصوت تلقائيًا فوق زر معاودة الاتصال بمسافة 12 بكسل، فلا يتراكبان أبدًا. وإذا كانا على جانبين مختلفين فلا يتحرك شيء. لوضع زر بنفسك أضف data-offset-x وdata-offset-y (من 0 إلى 200 بكسل من الزاوية) إلى شيفرته. ولإيقاف الترتيب التلقائي لأحدهما أضف data-stack="off" إلى شيفرته: يحتفظ هذا الزر بالإزاحات التي أعطيتها له تمامًا، ويتجاهله الآخر.
  • النوافذ المنبثقة. فتح النموذج بينما لوحة الصوت مفتوحة لا يغلق اللوحة ولا ينهي مكالمة: يُفتح النموذج في وسط الصفحة فوقها. وإغلاق أحدهما يترك الآخر كما كان. تستمر المكالمة الصوتية بينما يملأ الزائر النموذج، ويمكن إرسال طلب معاودة اتصال واللوحة الصوتية مفتوحة.
  • مواقع مختلفة. تتحقق كل ميزة من قائمتها الخاصة بالمواقع المسموح بها، فقد يكون الموقع مسموحًا لإحداهما دون الأخرى.
  • حدود مشتركة. تستخدم كلتاهما رصيد مساحة العمل نفسه وحد خطتك للمكالمات المتزامنة. وتنتظر معاودة الاتصال (تبقى Pending في تبويب Callbacks) ما دامت كل المكالمات التي تسمح بها خطتك مفتوحة، بما فيها المكالمات الصوتية على موقعك، وتنطلق فور انتهاء إحداها.
  • إيقاف إحداهما. أوقف Show the widget on my website لإيقاف زر الصوت، أو Enable Website Form لإيقاف النموذج، وانتظر رسالة الحفظ. وتستمر الأخرى في العمل. قد يحتفظ المتصفح بإعدادات أداة الصوت حتى 30 ثانية، فقد يستغرق اختفاء زرها هذه المدة.
  • إذا اختفى زر أو غطّاه شيء. تحقق من مفتاح تلك الميزة ومواقعها المسموح بها، ثم اعرض مصدر الصفحة وابحث عن widget.js وform.js. وإذا وقع زر تحت إشعار ملفات تعريف الارتباط أو شريط دردشة فحرّكه بـ data-offset-y. وإذا غطّى شيء في صفحتك الزرين فارفع data-z-index في وسم كل سكربت.

إيقافها أو إزالتها

  • إيقافها مؤقتًا: أطفئ Show the widget on my website وانتظر Widget settings saved. يمكن أن يبقى الكود في موقعك؛ فهو لا يفعل شيئًا.
  • إزالتها: احذف الكود من صفحاتك. حذف الوكيل يحذف أداته أيضًا؛ وحينها لا يعرض الكود القديم شيئًا.

لمن يدير الخادم

  • لا حاجة إلى إعداد إضافي في التثبيت العادي. تستخدم صفحات الأداة ومكالماتها العنوان نفسه الذي تستخدمه لوحة التحكم، وإعداد الـ proxy المرفق يوجّه /api/* و/ws/* إلى الخلفية.
  • يسمح WIDGET_ALLOW_LOCALHOST=1 لصفحات localhost باستخدام أداة تدرج localhost. اتركه غير مضبوط في الإنتاج.
  • WIDGET_MAX_CONCURRENT (الافتراضي 10) هو عدد مكالمات المواقع التي يمكن لأداة واحدة فتحها في وقت واحد. ويمكن لكل عنوان أن يفتح مكالمتين.
  • يجب أن يكون SERVER_SECRET نفسه في كل نسخة، وأن يُضبط REDIS_URL عند تشغيل أكثر من نسخة، كي يعمل رمز المكالمة ذو الاستخدام الواحد والحدود عبر كل النسخ. وبدون Redis يُحسب كل منها لكل نسخة.
  • تُقدَّم الملفات الثلاثة widget.js وwidget-voice.js وwidget-worklet.js من الواجهة الأمامية مع تخزين مؤقت قصير ووصول مفتوح عبر الأصول، وهو ما يحتاجه مساعد الصوت.
  • تبقى مفاتيح المزودين (التعرف على الكلام، نموذج اللغة، الصوت) على الخادم. ولا يستلم متصفح الزائر أيًا منها.

حدود معروفة

  • يجري الصوت الفوري عبر WebSocket، كما في مكالمة الاختبار في لوحة التحكم. لا يوجد WebRTC، لذا قد تبدو الشبكات الضعيفة جدًا متقطعة.
  • لا يمكن استئناف مكالمة انقطعت، بل إعادة بدئها فقط.
  • لم تُفحص Phynxa مع كل المتصفحات والهواتف. إذا أخطأت الأداة في أحدها فأخبرنا به.
  • لم يراجع متحدث أصلي عبارات اللوحة بالإسبانية والعربية.

هل في هذه الصفحة ما لا يطابق ما تراه في لوحة التحكم؟ أخبرنا.