بناء تطبيق ذكاء اصطناعي محادثي مع Next.js

Anis MarrouchiAI Bot
بواسطة Anis Marrouchi & AI Bot ·

جاري تحميل مشغل تحويل النص إلى كلام الصوتي...

في هذا البرنامج التعليمي، سنرشدك عبر عملية إنشاء تطبيق ويب يسهل التفاعلات الصوتية في الوقت الفعلي مع وكلاء الذكاء الاصطناعي باستخدام Next.js وElevenLabs. سيسمح هذا التطبيق للمستخدمين بالمشاركة في محادثات صوتية طبيعية مع وكيل ذكاء اصطناعي يمكنه الاستماع والفهم والاستجابة باستخدام تركيب الصوت.

المتطلبات الأساسية

للبدء، تأكد من توفر ما يلي:

  • إعداد وكيل ElevenLabs وفقاً للدليل الرسمي.
  • تثبيت npm على جهازك المحلي.
  • معرفة أساسية بـ TypeScript أو JavaScript.

الإعداد

الخطوة 1: إنشاء مشروع Next.js جديد

افتح الطرفية وشغل الأمر التالي لإنشاء مشروع Next.js جديد:

npm create next-app my-conversational-agent

اتبع تعليمات الإعداد الافتراضية المقدمة من الأمر.

الخطوة 2: الانتقال إلى دليل المشروع

غيّر الدليل إلى المشروع المنشأ حديثاً:

cd my-conversational-agent

الخطوة 3: تثبيت تبعية ElevenLabs

ثبت حزمة ElevenLabs React:

npm install @11labs/react

الخطوة 4: اختبار الإعداد

شغل خادم التطوير للتأكد من أن كل شيء يعمل:

npm run dev

الخطوة 5: إنشاء مكون المحادثة

أنشئ ملفاً جديداً components/Conversation.tsx:

'use client';
 
import { useConversation } from '@11labs/react';
import { useCallback, useState } from 'react';
 
export function Conversation() {
  const [transcript, setTranscript] = useState<string[]>([]);
 
  const conversation = useConversation({
    onConnect: () => console.log('متصل'),
    onDisconnect: () => console.log('غير متصل'),
    onMessage: (message) => {
      setTranscript((prev) => [...prev, `الذكاء الاصطناعي: ${message.message}`]);
    },
    onError: (error) => console.error('خطأ في المحادثة:', error),
  });
 
  const startConversation = useCallback(async () => {
    try {
      await navigator.mediaDevices.getUserMedia({ audio: true });
      await conversation.startSession({
        agentId: process.env.NEXT_PUBLIC_ELEVENLABS_AGENT_ID!,
      });
    } catch (error) {
      console.error('فشل بدء المحادثة:', error);
    }
  }, [conversation]);
 
  const stopConversation = useCallback(async () => {
    await conversation.endSession();
  }, [conversation]);
 
  return (
    <div className="flex flex-col items-center gap-6 p-6">
      <h2 className="text-2xl font-bold">محادثة صوتية في الوقت الفعلي</h2>
 
      <div className="flex gap-4">
        <button
          onClick={startConversation}
          disabled={conversation.status === 'connected'}
          className="px-6 py-3 bg-green-500 text-white rounded-lg disabled:bg-gray-300"
        >
          بدء المحادثة
        </button>
        <button
          onClick={stopConversation}
          disabled={conversation.status !== 'connected'}
          className="px-6 py-3 bg-red-500 text-white rounded-lg disabled:bg-gray-300"
        >
          إنهاء المحادثة
        </button>
      </div>
 
      <div className="text-center">
        <p className="text-lg">
          الحالة: <span className="font-semibold">{conversation.status}</span>
        </p>
        <p className="text-sm text-gray-600">
          {conversation.isSpeaking ? 'الذكاء الاصطناعي يتحدث...' : 'جاري الاستماع...'}
        </p>
      </div>
 
      <div className="w-full max-w-md h-64 overflow-y-auto border rounded p-4">
        {transcript.map((line, idx) => (
          <p key={idx} className="mb-2">{line}</p>
        ))}
      </div>
    </div>
  );
}

الخطوة 6: تحديث الصفحة الرئيسية

حدث app/page.tsx لتضمين مكون المحادثة:

import { Conversation } from '@/components/Conversation';
 
export default function Home() {
  return (
    <main className="min-h-screen flex items-center justify-center">
      <Conversation />
    </main>
  );
}

الخطوة 7: إعداد متغيرات البيئة

أنشئ ملف .env.local وأضف معرف وكيل ElevenLabs:

NEXT_PUBLIC_ELEVENLABS_AGENT_ID=your_agent_id_here

الميزات

يتضمن التطبيق النهائي:

  • تحويل الكلام إلى نص في الوقت الفعلي: التقاط إدخال المستخدم الصوتي
  • استجابات الذكاء الاصطناعي: معالجة وتوليد استجابات ذكية
  • تحويل النص إلى كلام: تركيب صوتي طبيعي للاستجابات
  • واجهة مستخدم تفاعلية: تحكم بسيط في المحادثة

الخاتمة

لقد قمت ببناء تطبيق ذكاء اصطناعي محادثي كامل يتيح للمستخدمين إجراء محادثات صوتية طبيعية مع وكيل ذكاء اصطناعي. يمكنك توسيع هذا التطبيق بإضافة ميزات مثل تاريخ المحادثة وتخصيص الوكيل والمزيد.


المرجع: توثيق ElevenLabs


هل تريد قراءة المزيد من الدروس التعليمية؟ تحقق من أحدث درس تعليمي لدينا على بناء أنظمة ذكاء اصطناعي متعددة الوكلاء باستخدام n8n: دليل شامل للأتمتة الذكية.

ناقش مشروعك معنا

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

دعنا نجد أفضل الحلول لاحتياجاتك.

مقالات ذات صلة

دليل تكامل Twilio

دليل شامل لدمج وكيل الذكاء الاصطناعي المحادثي مع Twilio باستخدام JavaScript.

10 د قراءة·