تخطَّ إلى المحتوى
دليل

أضف شخصية تعريفية ناطقة بالذكاء الاصطناعي إلى موقعك مع Wixzel Voice

في نهاية هذا الدليل يكون في زاوية موقعك شخصية تعريفية (mascot) ناطقة. يضغط الزوار Call ويتحدثون إلى وكيل يعرف نشاطك التجاري، في المتصفح، دون خط هاتف ودون تطبيق. يستغرق ذلك نحو 15 دقيقة: طلب واحد يُنشئ الوكيل وشخصيته التعريفية من موقعك، وطلب يفعّل الـ widget، ووسم script واحد يضعها في الصفحة. إنشاء الوكيل مجاني. تُحتسب المكالمات بالثانية مثل مكالمة على المحرك نفسه: $0.0491 لكل دقيقة اتصال على Gemini Live، أي نحو $0.15 لمحادثة مدتها ثلاث دقائق، من رصيد مسبق الدفع.

بقلم · نُشر في · حُدّث في

المدة
نحو 15 دقيقة
المحرك
gemini-live
وقت المحرك
$0.0491 لكل دقيقة متصلة
موقع عيادة أسنان مع widget الشخصية التعريفية مفتوحًا في الزاوية السفلية اليمنى: فقاعة كلام تقول مرحبًا، وشخصية تعريفية خضراء، وزر Call

ما الذي تحتاجه قبل أن تبدأ؟

  • حساب على Wixzel Voice فيه رصيد. تُدفع المكالمات عبر الـ widget من رصيد حقيقي، وليس من دقائق الاختبار المجانية؛ والحد الأدنى لشحن الرصيد هو $5.
  • مفتاح API بالصلاحيتين agents:write وcalls:write، محفوظ على خادمك. يمكن أيضًا تنفيذ كل ما يلي من لوحة التحكم، في تبويب الشخصية التعريفية الخاص بالوكيل.
  • موقع يُقدَّم عبر HTTPS ويمكنك إضافة وسم script إليه. لا تمنح المتصفحات الصفحة إذن الميكروفون إلا عبر HTTPS.

كيف تبني هذا على Wixzel Voice، خطوة بخطوة؟

  1. 01أنشئ الوكيل من موقعك

    أعطه موقعك ودورًا. قيمة role هي receptionist أو support أو sales أو guide أو كلماتك الخاصة:

    shell
    curl https://api.voice.wixzel.com/v1/agents/generate \
      -H "Authorization: Bearer $WIXZEL_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{ "website_url": "https://smiledental.example", "role": "receptionist" }'
    make-agent.mjs (TypeScript SDK)
    import { WixzelVoice, waitForAgent } from 'wixzel-voice';
    
    const client = new WixzelVoice({ apiKey: process.env.WIXZEL_API_KEY });
    
    let agent = await client.agents.generate({
      website_url: 'https://smiledental.example',
      role: 'receptionist',
    });
    agent = await waitForAgent(client.agents, agent); // until the mascot is ready or failed
    console.log(agent.id, agent.name, agent.mascot.status, agent.knowledge_base_id);

    يجيب فورًا بوكيل قادر على التحدث بالفعل، مع mascot.status: "building". في الخلفية يقرأ صفحاتك، ويكتب التعليمات والجملة الافتتاحية، ويبني قاعدة المعرفة مما قرأه، ويرسم شخصية تعريفية بلون علامتك التجارية. استعلم عبر GET /v1/agents/{id} حتى تصبح قيمة mascot.status هي ready، وعادةً يحدث ذلك في أقل من دقيقة؛ وفي الـ SDK، تتولى waitForAgent الاستعلام. إذا فشل البناء يبقى الوكيل عاملًا بالمظهر الذي كان له.

    يبدأ الوكيل على Gemini Live. غيّر محركه أو صوته أو تعليماته مثل أي وكيل آخر عبر PATCH /v1/agents/{id}؛ وتبقى شخصيته التعريفية كما هي.

  2. 02فعّل الـ widget، واختر من يمكنه الاتصال

    المشاركة متوقفة حتى تفعّلها. اذكر الأصول (origins) التي يُقدَّم منها موقعك؛ فلن يبدأ الـ widget مكالمة في أي مكان آخر:

    shell
    curl -X PATCH https://api.voice.wixzel.com/v1/agents/AGENT_ID/mascot \
      -H "Authorization: Bearer $WIXZEL_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{
        "welcome_message": "Hi! I am Molly from Smile Dental. Tap Call to talk to me.",
        "sharing": {
          "embed": true,
          "embed_origins": ["https://smiledental.example", "https://www.smiledental.example"],
          "caller_info": "contact",
          "max_call_seconds": 300,
          "daily_minutes": 60,
          "calls_per_visitor_daily": 3,
          "max_concurrent_calls": 2
        }
      }'

    caller_info هو ما يقدّمه الزائر قبل المكالمة: none (الافتراضي) لا يطلب شيئًا، وcontact يطلب اسمًا ورقم هاتف أو بريدًا إلكترونيًا، وgoogle يطلب تسجيل الدخول بحساب Google. يخبرك تسجيل الدخول بـ Google بهوية الزائر ولا يُنشئ له حساب Wixzel أبدًا؛ وعلى موقعك يُفتح في نافذة صغيرة على voice.wixzel.com، تعيد النتيجة فقط إلى أصل موجود في embed_origins.

    تُبقي الحدود الأربعة المكالمات العامة ضمن ميزانية: أطول مكالمة، والدقائق العامة في اليوم لجميع الزوار معًا (حتى منتصف الليل بتوقيت UTC)، وعدد المكالمات التي يمكن لزائر واحد إجراؤها في اليوم، وعدد المكالمات في الوقت نفسه. القيم أعلاه هي القيم الافتراضية. أضف "link": true للحصول على صفحة مشاركة على voice.wixzel.com/m?id=… أيضًا.

    تحمل الاستجابة mascot.public_id، مثل m_4fT9qLx2Bv8K. وهو المعرّف المستخدم في وسم script.

  3. 03الصق وسم script واحدًا

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

    index.html
    <script src="https://voice.wixzel.com/embed.js" data-mascot="m_4fT9qLx2Bv8K" async></script>

    تنتظر الشخصية التعريفية في الزاوية السفلية اليمنى مع رسالة الترحيب. يضغط الزائر Call، ويسمح بالميكروفون ويتحدث؛ فتستمع الشخصية التعريفية وتفكر وتحرّك فمها مع صوت الوكيل. يعمل الـ widget داخل shadow root، فلا يتداخل CSS الخاص بك مع CSS الخاص به أبدًا.

  4. 04ضعها بنفسك، ودع الوكيل يتصرف في صفحتك

    لعرضها داخل عنصر خاص بك بدلًا من الزاوية، احذف data-mascot من الوسم واستدعِ WixzelMascot.mount بعد تحميل السكربت.

    أداة العميل (client tool) تعمل في صفحتك عندما يطلبها الوكيل، مثلًا لفتح صفحة الحجز. أنشئ الأداة للوكيل في لوحة التحكم أو عبر POST /v1/tools، ثم سجّل ما تفعله، قبل تحميل السكربت أو بعده:

    index.html
    <div id="talk"></div>
    <script>
      window.WixzelMascot = Object.assign(window.WixzelMascot || {}, {
        tools: {
          open_page: ({ path }) => {
            location.href = path;
            return { opened: path };
          },
        },
      });
    </script>
    <script
      src="https://voice.wixzel.com/embed.js"
      async
      onload="WixzelMascot.mount(document.getElementById('talk'), { mascot: 'm_4fT9qLx2Bv8K' })"
    ></script>

    ما تعيده الدالة يعود إلى الوكيل، الذي يخبر به المتصل. أدوات webhook، التي تستدعي خادمك، تعمل في الـ widget أيضًا.

  5. 05اعرف من اتصل، واحظر شخصًا

    كل مكالمة عبر الـ widget تسجّل المتصل. اعرض قائمة المتصلين بوكيل:

    shell
    curl "https://api.voice.wixzel.com/v1/callers?agent_id=AGENT_ID&limit=20" \
      -H "Authorization: Bearer $WIXZEL_API_KEY"
    
    curl -X PATCH https://api.voice.wixzel.com/v1/callers/CALLER_ID \
      -H "Authorization: Bearer $WIXZEL_API_KEY" \
      -H "Content-Type: application/json" \
      -d '{ "blocked": true }'

    لكل متصل location تقريبي (المدينة والمنطقة والدولة، مستنتجة من عنوان IP الذي لا يُحفظ إلا كقيمة hash)، وplatform (المتصفح ونظام التشغيل والجهاز)، وpage_url الذي اتصل منه، وما قدّمه لك، وcall_count. يجمع معرّف عشوائي يحفظه متصفحه مكالماتِ الشخص الواحد؛ ولا توجد بصمة رقمية (fingerprinting)، ويخبر الـ widget المتصلين بما يُشارك معك.

    المتصل المحظور لا يستطيع الاتصال بذلك الوكيل مجددًا من الـ widget أو رابط المشاركة أو التطبيق أو الهاتف. كل مكالمة موجودة أيضًا في GET /v1/calls مع نصها المكتوب وتكلفتها، ويمكن تصفيتها حسب caller_id.

كم يكلّف هذا البناء على Wixzel Voice؟

وقت المحرك لجلسات مدة كل منها 3 دقيقة على محرك gemini-live بسعر $0.0491 لكل دقيقة متصلة: نحو $0.15 للجلسة. لا توجد تكلفة اتصالات هاتفية، لأنه لا يوجد خط هاتفي.

تكلفة المحرك الشهرية لما يبنيه هذا الدليل
الجلسات شهريًاالدقائق المتصلةتكلفة المحرك شهريًا
300900$44.19
1,5004,500$221
6,00018,000$884

إنشاء الوكيل وشخصيته التعريفية من موقعك مجاني، وكذلك الـ widget. تكلف المكالمات ما تكلفه مكالمة على محرك الوكيل، بالثانية، من رصيدك المسبق الدفع، دون خط هاتف تدفع مقابله. مع الحد الافتراضي البالغ 60 دقيقة عامة في اليوم، يمكن أن ينفق الـ widget على الأكثر نحو $2.95 في اليوم على Gemini Live.

مسبق الدفع، دون اشتراك ودون خطة مجانية: أضِف رصيدًا بدءًا من $5 ويُستهلك مع الاستخدام. قدّر تكلفة استخدامك.

ما حدود Wixzel Voice التي تنطبق على هذا البناء؟

  • الصوت بجودة الهاتف، G.711 µ-law بتردد 8 kHz في الاتجاهين.
  • لا يبدأ الـ widget المكالمات إلا من الأصول المذكورة في embed_origins، وحدها الأقصى 20 أصلًا.
  • تبقى المكالمات العامة ضمن الحدود المضبوطة على الوكيل. بعد تجاوز daily_minutes تُرفض المكالمات حتى منتصف الليل بتوقيت UTC.
  • تُحتسب مكالمات الـ widget ضمن حد المكالمات المتزامنة للحساب، خمس افتراضيًا، إلى جانب المكالمات الهاتفية وجلسات التطبيقات. يمنع max_concurrent_calls صفحةً مزدحمة من استهلاكها كلها.
  • تستخدم مكالمات الـ widget رصيدًا حقيقيًا. دقائق الاختبار المجانية مخصصة للتحدث إلى وكلائك من لوحة التحكم.
  • لا يوجد تحويل إلى شخص من مكالمة ويب؛ فالتحويل يحتاج إلى خط هاتف.

الأسئلة الشائعة

كيف أضع شخصية تعريفية ناطقة بالذكاء الاصطناعي على موقعي؟

أنشئ وكيلًا عبر POST /v1/agents/generate (أو «وكيل جديد»، ثم «من موقعك الإلكتروني»، في لوحة تحكم Wixzel Voice)، وفعّل الـ widget الخاص به عبر PATCH /v1/agents/{id}/mascot مع موقعك في embed_origins، وأضف <script src="https://voice.wixzel.com/embed.js" data-mascot="m_…" async></script> إلى صفحاتك. يضغط الزوار Call ويتحدثون إليها في المتصفح.

هل يعمل الـ widget مع أي أداة لبناء المواقع؟

نعم، في أي مكان يمكنك فيه إضافة وسم script إلى الصفحة: HTML عادي، وWordPress، وWebflow، وقوالب Shopify، وNext.js وغيرها. يجب أن تُقدَّم الصفحة عبر HTTPS ليسمح المتصفح بالميكروفون، ويجب أن يكون أصلها في embed_origins.

هل يمكن لموقع آخر نسخ كود التضمين واستخدام رصيدي؟

لا. لا يبدأ الـ widget المكالمات إلا من الأصول التي ذكرتها، والجلسة مرتبطة بتلك الصفحة. وإذا تسرّب معرّف رغم ذلك، فإن POST /v1/agents/{id}/mascot/rotate-public-id يعطي الشخصية التعريفية معرّفًا جديدًا، فيتوقف كود التضمين والرابط القديمان عن العمل فورًا.

هل تستطيع الشخصية التعريفية التحدث بالهندية أو المالايالامية؟

نعم. اضبط لغة الوكيل ومحركه مثل أي وكيل: يغطي Gemini Live لغات كثيرة، ومحرك sarvam مبني للغات الهند، ومنها الهندية والتاميلية والتيلوغوية والكانادية والمالايالامية. يتبع فم الشخصية التعريفية أي صوت يرسله الوكيل.

هل يمكنني تغيير شكل الشخصية التعريفية؟

نعم. أرسل spec جديدًا عبر PATCH /v1/agents/{id}/mascot: شكلًا (circle أو drop أو triangle أو cloud أو pill أو flower أو squircle أو blob أو heart)، ولونًا، ونمط عينين. أو استدعِ POST /v1/agents/{id}/mascot/generate مع موقع أو وصف للحصول على مظهر جديد. لا تتغير تعليمات الوكيل عندما يتغير مظهره.

للمزيد من القراءة

  • الشخصيات التعريفيةالتوثيق

    المظهر، ورابط المشاركة، والـ widget، ومن يمكنه الاتصال، والحدود.

  • المتصلونالتوثيق

    سجلات المتصلين، والمتصل في كل مكالمة، والحظر.

  • الأدواتالتوثيق

    أدوات webhook وأدوات العميل، بما في ذلك على موقعك.

  • قواعد المعرفةالتوثيق

    ما يعرفه وكيل أُنشئ من موقع، وإضافة المستندات.

واجهات API للاتصالات الهاتفية القائمة على الوكلاء

عن Wixzel Voice

Wixzel Voice هو API للذكاء الاصطناعي الصوتي لبناء وكلاء ذكاء اصطناعي يجرون مكالمات هاتفية حقيقية ويردّون عليها عبر SIP trunk الخاص بك، أو يتحدثون إلى الناس في تطبيقات الويب والجوال الخاصة بك. مفتاح API واحد ورصيد مدفوع مسبقًا واحد يغطيان كل محركات الصوت، مع فوترة بالثانية حسب الاستخدام الفعلي.

أعطِ Claude خط هاتف حقيقيًا عبر خادم MCP من Wixzel Voice

Claude، في Claude Code أو claude.ai، يجري مكالمة حقيقية عبر SIP trunk الخاص بك ويقرأ لك النص المكتوب، مع طلب تأكيد قبل أي اتصال.

بناء موظف استقبال بالذكاء الاصطناعي على Twilio في Node.js مع Wixzel Voice

رقم Twilio الحالي لديك يجيب عليه موظف استقبال بالذكاء الاصطناعي يحجز المواعيد عبر الـ API، مبني بـ Node.js.

وكيل هاتفي بالهندية والمالايالامية على محرك sarvam من Wixzel Voice

وكيلان هاتفيان، أحدهما يتحدث الهندية والآخر المالايالامية، على نماذج Sarvam المخصصة للغات الهند، يجيبان على المكالمات أو يجريانها عبر SIP trunk الخاص بك.

أضف وكيلًا صوتيًا إلى Flutter عبر WebSocket مع Wixzel Voice

تطبيق Flutter يتحدث فيه المستخدمون إلى وكيلك الصوتي عبر WebSocket، مع بقاء مفتاح API على خادمك ودون أي رقم هاتف.

Gemini Live في مكالمة هاتفية حقيقية عبر Wixzel Voice API

وكيل Gemini Live يتصل بهاتف حقيقي عبر SIP trunk الخاص بك من أربعة طلبات cURL، وسجل المكالمة مع النص المكتوب والتكلفة.

تشغيل حملة لتأهيل العملاء المحتملين بالذكاء الاصطناعي مع Wixzel Voice

قائمة عملاء محتملين اتصل بهم وكيلك عبر SIP trunk الخاص بك، على دفعات بحجم حد التزامن لديك، مع قراءة حالة كل مكالمة ونصها المكتوب.

اعرض الشخصية التعريفية لوكيلك في تطبيق Flutter مع Wixzel Voice

شاشة Flutter فيها الشخصية التعريفية لوكيلك تحرّك فمها مع صوت الوكيل أثناء مكالمة آنية، مع بقاء مفتاح API على خادمك.