Poznaj Eleven v4Poznaj Eleven v4, nasz najbardziej emocjonalny model.

Przejdź do treści

Dodaj agenta głosowego Świętego Mikołaja do swojej aplikacji React w kilka minut

Opublikowano

PosłuchajPosłuchaj tego artykułu

W te święta dodaj Mikołaja do swojej aplikacji.

Dzięki Agents Platform od ElevenLabs i pakietowi @elevenlabs/react SDK możesz dodać agenta głosowego Świętego Mikołaja do aplikacji React w zaledwie kilka minut. W tym poradniku:

  1. Utworzysz agenta Mikołaja w panelu ElevenLabs
  2. Połączysz go z komponentem React przez WebRTC
  3. Dodasz prosty przycisk „Zadzwoń do Mikołaja”

1. Zarejestruj się i otwórz Agents Platform

  1. Zarejestruj się / zaloguj się w ElevenLabs.
  2. Na lewym pasku bocznym otwórz u góry przełącznik platformy.
  3. Wybierz Agents Platform.

Zobaczysz pasek boczny z pozycjami Agents, Knowledge Base, Tools i Voices w sekcji „Build”.

2. Utwórz agenta Mikołaja

Teraz utworzymy agenta, który zachowuje się jak Mikołaj i mówi jego głosem.

  1. Na pasku bocznym kliknij Agents.
  2. Kliknij + New Agent.
  3. Wybierz Blank Agent, aby zacząć od zera.

Nazwij go: Mikołaj.

Prompt systemowy

W polu System Prompt wklej poniższy tekst:

You are a helpful assistant. You are Santa Claus, a jolly, warm, and humorous character from the North Pole. Christmas is just around the corner, and you love reminding everyone of the festive season with your hearty "Ho, ho, ho!" You are deeply in love with Mrs. Claus, often mentioning her incredible cookies.

When speaking to someone, keep your answers short and magical—just one festive sentence. Make it your top priority to ask for their name to check your naughty or nice list. Once you have their name, immediately ask about their wish-list, as it's crucial for your preparations. Always be warm and gentle.

Once their name and wish-list are covered, guide the conversation toward learning more about what they've done throughout the year and why they believe they deserve to be on Santa's Nice List. Use this opportunity to celebrate their kindness or achievements, reinforcing the importance of spreading goodness and holiday cheer. You also love asking about their plans for the holidays and showing genuine interest in their answers. Compliment them if you know they've done something kind or helpful recently, reinforcing the importance of spreading goodness.

Talk about your favorite gifts you've delivered or share quick, magical details about life at the North Pole, like mischievous elves or your reindeer team. Sprinkle in lighthearted jokes about your endless to-do list or how you struggle to resist cookies left out for you on Christmas Eve. Always express how much you love seeing people happy during the holidays and how their smiles make all your efforts worthwhile.

If the user makes a request involving inappropriate, harmful, or dangerous items such as weapons or items that go against the spirit of Christmas. Politely remind the user to make kind and festive wishes instead.

End every conversation with a warm farewell, suggesting you must return to your holiday preparations to ensure everyone gets their gifts on time. Wish them a Merry Christmas and encourage them to spread kindness and holiday cheer. Stay cheerful, engaging, and full of festive energy, spreading Christmas magic through humor, warmth, and storytelling.

Be sure to maintain the conversation in the user's selected language.

Pierwsza wiadomość

Ustaw First Message na:

Ho, ho, ho! Wesołych Świąt, mój przyjacielu. Powiedz, jak masz na imię?

To usłyszą użytkownicy po rozpoczęciu rozmowy.

Głos

W sekcji Voice:

  • Wybierz „Jerry B. – Santa Claus”
  • ID głosu: MDLAMJ0jxkpYkjXbmG4t

Teraz Mikołaj będzie naprawdę brzmiał jak Mikołaj.

Zabezpieczenia

W tym przykładzie pozostawimy dostęp otwarty:

  • W sekcji Security upewnij się, że Enable authentication jest wyłączone.

W pierwszym demo możesz spokojnie zostawić opcję Enable Authentication wyłączoną, aby każdy mógł bez ograniczeń połączyć się z agentem. Przyspiesza to rozpoczęcie pracy i sprawdza się w szybkich prototypach, projektach hackathonowych oraz prezentacjach wewnętrznych.

Jednak w każdej aplikacji produkcyjnej lub dostępnej z zewnątrz nigdy nie zostawiaj agenta otwartego. Zamiast tego użyj Token Endpoint ElevenLabs, aby generować krótkotrwałe tokeny dostępu o określonym zakresie dla każdej sesji użytkownika. Dzięki temu w pełni kontrolujesz, kto może się połączyć, jak długo trwa dostęp i jakie działania użytkownik może wykonywać. Włączenie uwierzytelniania chroni agenta przed nieautoryzowanymi połączeniami, nadużyciami i użyciem poza ustalonymi limitami — zdecydowanie zalecamy to przed wdrożeniem.

3. Skopiuj ID agenta

U góry strony agenta zobaczysz pole Agent ID.

Zapisz tę wartość — w kolejnym kroku wkleimy ją do komponentu React:

agentId: "<AGENT_ID>"

4. Zainstaluj React SDK

W projekcie React / Next.js zainstaluj React SDK ElevenLabs:

npm install @elevenlabs/react

Teraz możemy użyć hooka useConversation do rozpoczynania i kończenia rozmów głosowych.

5. Dodaj przycisk „Zadzwoń do Mikołaja”

Utwórz nowy komponent, np. CallSantaButton.tsx, i wklej ten kod:

"use client";

import { useConversation } from "@elevenlabs/react";
import { useCallback, useState } from "react";

export function CallButton() {
  const [hasPermission, setHasPermission] = useState(false);
  const [permissionError, setPermissionError] = useState<string | null>(null);

  const conversation = useConversation();

  const requestMicrophonePermission = useCallback(async () => {
    try {
      await navigator.mediaDevices.getUserMedia({ audio: true });
      setHasPermission(true);
      setPermissionError(null);
      return true;
    } catch {
      setPermissionError("Microphone access is required");
      return false;
    }
  }, []);

  const startCall = useCallback(async () => {
    const permitted = hasPermission || (await requestMicrophonePermission());
    if (!permitted) return;

    try {
      await conversation.startSession({
        agentId: "<AGENT_ID>",
        connectionType: "webrtc",
      });
    } catch (error) {
      console.error("Failed to start conversation:", error);
    }
  }, [conversation, hasPermission, requestMicrophonePermission]);

  const endCall = useCallback(async () => {
    await conversation.endSession();
  }, [conversation]);

  const isConnected = conversation.status === "connected";

  return (
    <div className="flex flex-col items-center gap-4">
      <button
        onClick={isConnected ? endCall : startCall}
        className={`px-6 py-3 rounded-lg text-white font-medium ${
          isConnected
            ? "bg-red-600 hover:bg-red-700"
            : "bg-green-600 hover:bg-green-700"
        }`}
      >
        {isConnected ? "End Call" : "Start Call"}
      </button>

      {isConnected && (
        <p className="text-sm text-gray-600">
          {conversation.isSpeaking ? "Agent speaking..." : "Listening..."}
        </p>
      )}

      {permissionError && (
        <p className="text-sm text-red-500">{permissionError}</p>
      )}
    </div>
  );
}

Teraz zastąp "<AGENT_ID>" rzeczywistym ID agenta skopiowanym z panelu.

Następnie wyrenderuj przycisk w dowolnym miejscu interfejsu, na przykład:

import { CallButton } from "./CallSantaButton";

export default function HomePage() {
  return (
    <main className="min-h-screen flex flex-col items-center justify-center gap-6">
      <h1 className="text-3xl font-bold text-center">
        Call Santa 🎅
      </h1>
      <p className="text-gray-600">
        Press the button and talk to Santa in real time.
      </p>
      <CallButton />
    </main>
  );
}

6. Wypróbuj

Otwórz aplikację w przeglądarce i kliknij Start Call:

  1. Przeglądarka poprosi o dostęp do mikrofonu.
  2. Rozpocznie się sesja WebRTC z agentem Mikołaja.
  3. Usłyszysz:

    „Ho, ho, ho! Wesołych Świąt, mój przyjacielu. Powiedz, jak masz na imię?”

Potem Mikołaj zapyta o twoje imię, listę życzeń i to, co zrobiłeś w tym roku, by znaleźć się na Liście Grzecznych Dzieci.

Co dalej

Gdy podstawy już działają, możesz:

  • Ograniczyć dostęp do Mikołaja uwierzytelnianiem w ustawieniach Security agenta
  • Zmieniać języki przez przekazanie lokalizacji użytkownika i obsłużenie jej w prompcie
  • Dostosować wygląd interfejsu własnymi przyciskami, animacjami lub pełnym ekranem „Zadzwoń do Mikołaja”

Podstawowa integracja to jednak tylko:

  • Jeden agent w Agents Platform
  • Jedno agentId
  • Hook useConversation i przycisk

Tyle wystarczy, by wnieść magię rozmów z Mikołajem w czasie rzeczywistym do aplikacji React.

Podobne artykuły

Twórz z najwyższej jakości audio AI