Next.js में Agents Platform के साथ डेटा संग्रह और विश्लेषण
Next.js में Agents Platform के साथ डेटा संग्रह और विश्लेषण
Agents Platform और Next.js का इस्तेमाल करके पोस्ट-कॉल वेबहुक में डेटा इकट्ठा करें और उसका विश्लेषण करें।
ट्यूटोरियल · इसमें माना गया है कि आपने ElevenAgents क्विकस्टार्ट पूरा कर लिया है और आपका Next.js प्रोजेक्ट सेट अप है।
परिचय
इस ट्यूटोरियल में, आप सीखेंगे कि ऐसा वॉइस एजेंट कैसे बनाएं जो बातचीत के ज़रिए यूज़र से जानकारी इकट्ठा करता है, फिर डेटा का विश्लेषण करके उसे संरचित रूप में निकालता है और पोस्ट-कॉल वेबहुक के ज़रिए आपके एप्लिकेशन को भेजता है।
ज़रूरी चीज़ें
- API key वाला एक ElevenLabs अकाउंट। API key
- आपकी मशीन पर Node.js v18 या उससे नया वर्ज़न इंस्टॉल होना चाहिए।
सेटअप
नया Next.js प्रोजेक्ट बनाएं
हम आपके एप्लिकेशन की शुरुआत के लिए हमारा v0.dev Agents Platform टेम्पलेट इस्तेमाल करने की सलाह देते हैं। यह ElevenLabs एजेंट के पहले से इंटीग्रेट किए हुए, प्रोडक्शन के लिए तैयार Next.js एप्लिकेशन का टेम्पलेट है।
Agents Platform सेट अप करें
इंस्टॉलेशन और कॉन्फ़िगरेशन के लिए हमारी Next.js गाइड देखें। फिर एडवांस्ड सुविधाएं बनाने के लिए यहां वापस आएं।
एजेंट कॉन्फ़िगरेशन
क्लाइंट टूल सेट अप करें
चरणों के बीच जाने के लिए यह क्लाइंट टूल सेट अप करें:
- नाम:
set_ui_state- विवरण: अलग-अलग UI स्टेट के बीच जाने के लिए इस क्लाइंट-साइड टूल का इस्तेमाल करें।
- रिस्पॉन्स का इंतज़ार करें:
true - रिस्पॉन्स टाइमआउट (सेकंड): 1
- पैरामीटर:
- डेटा टाइप: string
- आइडेंटिफ़ायर: step
- ज़रूरी: true
- वैल्यू टाइप: LLM Prompt
- विवरण: UI में जाने का चरण। सिर्फ़ उन्हीं चरणों का इस्तेमाल करें जो सिस्टम प्रॉम्प्ट में तय किए गए हैं!
अपने एजेंट की वॉइस सेट करें
Voice टैब पर जाएं और अपने एजेंट की वॉइस सेट करें। Agents Platform के लिए सुझाई गई वॉइस की सूची आपको Conversational Voice Design दस्तावेज़ में मिल सकती है।
मूल्यांकन मानदंड सेट करें
Analysis टैब पर जाएं और नया मूल्यांकन मानदंड जोड़ें।
- नाम:
all_data_provided- प्रॉम्प्ट: मूल्यांकन करें कि क्या यूज़र ने उस एजेंट का विवरण दिया है जिसे वे बनाना चाहते हैं, साथ ही उस वॉइस का विवरण भी दिया है जो एजेंट में होनी चाहिए।
डेटा संग्रह कॉन्फ़िगर करें
आप बातचीत से डेटा निकालने के लिए पोस्ट-कॉल विश्लेषण का इस्तेमाल कर सकते हैं। Analysis टैब में, Data Collection के तहत ये आइटम जोड़ें:
- आइडेंटिफ़ायर:
voice_descriptiondata-type:String- विवरण: यूज़र एजेंट के लिए जैसी वॉइस चाहते हैं उसके विवरण के आधार पर, वॉइस का संक्षिप्त विवरण बनाएं, जिसमें उपलब्ध होने पर उम्र, एक्सेंट, टोन और व्यक्तित्व शामिल हों।
- आइडेंटिफ़ायर:
agent_descriptiondata-type:String- विवरण: यूज़र जिस एजेंट को डिज़ाइन करना चाहते हैं, उसके विवरण के आधार पर ऐसा प्रॉम्प्ट बनाएं जिसका इस्तेमाल किसी मॉडल को एजेंट के रूप में काम करने के लिए ट्रेन करने में किया जा सके।
पोस्ट-कॉल वेबहुक कॉन्फ़िगर करें
कॉल खत्म होने और विश्लेषण व डेटा एक्सट्रैक्शन के चरण पूरे होने पर आपको सूचित करने के लिए पोस्ट-कॉल वेबहुक का इस्तेमाल होता है।
इस उदाहरण में पोस्ट-कॉल वेबहुक ये कुछ काम करता है:
voice_descriptionके आधार पर कस्टम वॉइस डिज़ाइन बनाता है।- यूज़र के दिए गए
agent_descriptionके आधार पर उनके लिए ElevenLabs एजेंट बनाता है। - Redis में स्टोर की गई बातचीत की स्टेट से नॉलेज बेस दस्तावेज़ हासिल करता है और नॉलेज बेस को एजेंट से अटैच करता है।
- यूज़र को ईमेल भेजता है, ताकि उन्हें पता चल सके कि उनका कस्टम ElevenLabs एजेंट चैट करने के लिए तैयार है।
लोकल रूप से चलाते समय, अपने लोकल सर्वर को इंटरनेट पर एक्सपोज़ करने के लिए आपको ngrok जैसे टूल की ज़रूरत होगी।
Agents Platform सेटिंग्स पर जाएं और Post-Call Webhook के तहत नया वेबहुक बनाकर अपना ngrok URL पेस्ट करें: https://<your-url>.ngrok-free.app/api/convai-webhook।
वेबहुक सेव करने के बाद आपको वेबहुक सीक्रेट मिलेगा। इसे सुरक्षित रूप से स्टोर करें, क्योंकि बाद में आपको इसे अपनी .env फ़ाइल में सेट करना होगा।
एडवांस्ड सुविधाएं इंटीग्रेट करें
बातचीत की स्टेट स्टोर करने के लिए Redis डेटाबेस सेट अप करें
इस उदाहरण में हम बातचीत की स्टेट स्टोर करने के लिए Redis का इस्तेमाल कर रहे हैं। इससे कॉल खत्म होने के बाद हम बातचीत की स्टेट से नॉलेज बेस दस्तावेज़ हासिल कर सकते हैं।
अगर आप Vercel पर डिप्लॉय कर रहे हैं, तो Upstash for Redis इंटीग्रेशन कॉन्फ़िगर कर सकते हैं। वैकल्पिक रूप से, आप मुफ़्त Upstash अकाउंट के लिए साइन अप करके नया डेटाबेस बना सकते हैं।
पोस्ट-कॉल ईमेल भेजने के लिए Resend सेट अप करें
इस उदाहरण में हम यूज़र को पोस्ट-कॉल ईमेल भेजने के लिए Resend का इस्तेमाल कर रहे हैं। इसके लिए आपको मुफ़्त Resend अकाउंट बनाना होगा और नई API key सेट अप करनी होगी।
एनवायरनमेंट वेरिएबल सेट करें
अपने प्रोजेक्ट के रूट में .env फ़ाइल बनाएं और ये वेरिएबल जोड़ें:
सुरक्षा और ऑथेंटिकेशन कॉन्फ़िगर करें
अपने ElevenLabs एजेंट को सुरक्षित रखने के लिए, आपको एजेंट कॉन्फ़िगरेशन के Security टैब में ऑथेंटिकेशन चालू करना होगा।
ऑथेंटिकेशन चालू होने के बाद, एजेंट के साथ बातचीत शुरू करने के लिए आपको सुरक्षित सर्वर-साइड एनवायरनमेंट में एक साइन किया हुआ URL बनाना होगा। Next.js में, आप नया API रूट सेट अप करके ऐसा कर सकते हैं।
बातचीत सेशन शुरू करें
बातचीत शुरू करने के लिए, पहले साइन किया हुआ URL पाने के लिए अपना API रूट कॉल करें, फिर बातचीत सेशन सेट अप करने के लिए useConversation हुक इस्तेमाल करें।
क्लाइंट टूल और डायनामिक वेरिएबल
पहले एजेंट कॉन्फ़िगरेशन में, आपने एजेंट को अलग-अलग UI स्टेट के बीच जाने देने के लिए set_ui_state क्लाइंट टूल रजिस्टर किया था। इसे एक साथ काम करने के लिए, आपको क्लाइंट टूल का इंप्लीमेंटेशन conversation.startSession ऑप्शन में पास करना होगा।
यहीं पर आप बातचीत में डायनामिक वेरिएबल भी पास कर सकते हैं।
नॉलेज बेस में दस्तावेज़ अपलोड करना
Training चरण में, एजेंट यूज़र से दस्तावेज़ अपलोड करने या ऐसी सार्वजनिक वेबसाइटों के URL सबमिट करने के लिए कहेगा जिनकी जानकारी उनके एजेंट के लिए उपलब्ध होनी चाहिए। यहां आप बैकग्राउंड में दस्तावेज़ अपलोड करने के लिए Next.js 15 के नए after फ़ंक्शन का इस्तेमाल कर सकते हैं।
फ़ॉर्म सबमिट होने पर नॉलेज बेस बनाने के लिए नया upload सर्वर एक्शन बनाएं। सभी नॉलेज बेस दस्तावेज़ बनने के बाद, बातचीत ID और नॉलेज बेस ID को Redis डेटाबेस में स्टोर करें।
कॉल के बाद वाले वेबहुक को संभालना
कॉल खत्म होने और विश्लेषण व डेटा एक्सट्रैक्शन के चरण पूरे होने पर कॉल के बाद वाला वेबहुक ट्रिगर होता है।
यहां कुछ चरण होते हैं:
- वेबहुक सीक्रेट सत्यापित करें और वेबहुक पेलोड बनाएं।
voice_descriptionके आधार पर एक कस्टम वॉइस डिज़ाइन बनाएं।- यूज़र के दिए गए
agent_descriptionके आधार पर उनके लिए एक ElevenLabs एजेंट बनाएं। - Redis में स्टोर किए गए कन्वर्सेशन स्टेट से नॉलेज बेस दस्तावेज़ प्राप्त करें और नॉलेज बेस को एजेंट से अटैच करें।
- यूज़र को यह बताने के लिए ईमेल भेजें कि उनका कस्टम ElevenLabs एजेंट चैट के लिए तैयार है।
अब हर चरण को विस्तार से देखते हैं।
वेबहुक सीक्रेट सत्यापित करें और वेबहुक पेलोड बनाएं
वेबहुक रिक्वेस्ट मिलने पर, हम पहले वेबहुक सीक्रेट सत्यापित करते हैं और वेबहुक पेलोड बनाते हैं।
voice_description के आधार पर कस्टम वॉइस डिज़ाइन बनाएं
वेबहुक पेलोड से मिले voice_description का इस्तेमाल करके, हम कस्टम वॉइस डिज़ाइन बनाते हैं।
Redis में स्टोर किए गए कन्वर्सेशन स्टेट से नॉलेज बेस दस्तावेज़ प्राप्त करें
दस्तावेज़ अपलोड होने में वेबहुक डेटा विश्लेषण से ज़्यादा समय लग सकता है, इसलिए दस्तावेज़ अपलोड होने तक हमें Redis में कन्वर्सेशन स्टेट को पोल करना होगा।
यूज़र के दिए गए agent_description के आधार पर उनके लिए ElevenLabs एजेंट बनाएं
यूज़र के दिए गए agent_description के आधार पर उनके लिए ElevenLabs एजेंट बनाएं और नए बनाए गए वॉइस डिज़ाइन व नॉलेज बेस को एजेंट से अटैच करें।
यूज़र को बताने के लिए ईमेल भेजें कि उनका कस्टम ElevenLabs एजेंट चैट के लिए तैयार है
एजेंट बनने के बाद, आप यूज़र को यह बताने के लिए ईमेल भेज सकते हैं कि उनका कस्टम ElevenLabs एजेंट चैट के लिए तैयार है।
ईमेल टेम्पलेट को वाइब डिज़ाइन करने के लिए आप Resend टीम के आसान टूल new.email का इस्तेमाल कर सकते हैं। टेम्पलेट से संतुष्ट होने पर, एक नया कंपोनेंट बनाएं और एजेंट ID को प्रॉप के रूप में जोड़ें।
ऐप चलाएं
ऐप को लोकल रूप से शुरू से अंत तक चलाने के लिए, पहले आपको Next.js डेवलपमेंट सर्वर चलाना होगा। फिर एक अलग टर्मिनल में वेबहुक हैंडलर को इंटरनेट पर एक्सपोज़ करने के लिए ngrok टनल चलाएं।
- टर्मिनल 1:
- Next.js डेवलपमेंट सर्वर शुरू करने के लिए
pnpm devचलाएं।
- Next.js डेवलपमेंट सर्वर शुरू करने के लिए
- टर्मिनल 2:
- वेबहुक हैंडलर को इंटरनेट पर एक्सपोज़ करने के लिए
ngrok http 3000चलाएं।
- वेबहुक हैंडलर को इंटरनेट पर एक्सपोज़ करने के लिए
अब http://localhost:3000 खोलें और अपनी वॉइस के साथ अपना कस्टम ElevenLabs एजेंट डिज़ाइन करना शुरू करें!