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

في هذا البرنامج التعليمي، سنرشدك عبر عملية إنشاء تطبيق ويب يسهل التفاعلات الصوتية في الوقت الفعلي مع وكلاء الذكاء الاصطناعي باستخدام 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
ناقش مشروعك معنا
نحن هنا للمساعدة في احتياجات تطوير الويب الخاصة بك. حدد موعدًا لمناقشة مشروعك وكيف يمكننا مساعدتك.
دعنا نجد أفضل الحلول لاحتياجاتك.
مقالات ذات صلة

الدليل التفصيلي لتثبيت وهيكلة تطبيقك في Next.js لأداء أمثل
الدليل التفصيلي لتثبيت وهيكلة تطبيقك في Next.js لأداء أمثل: عزز تطبيق Next.js الخاص بك باستخدام هذا الدليل الشامل حول التثبيت وأفضل الممارسات لهيكلة مشروعك لتحقيق الأداء الأمثل.

بناء تطبيق متعدد المستأجرين مع Next.js
تعلم كيفية بناء تطبيق متعدد المستأجرين كامل باستخدام Next.js وVercel والتقنيات الحديثة الأخرى.

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