Vi presenterar Eleven v4Möt Eleven v4, vår mest uttrycksfulla modell hittills.

Hoppa till innehållet

Lägg till en tomteröst-agent i din React-app på några minuter

Publicerad

LyssnaLyssna på den här artikeln

Den här julen kan du lägga till tomten i din app.

Med ElevenLabs Agents Platform och @elevenlabs/react-SDK:t kan du lägga till en tomte röstagent i din React-app på bara några minuter. I den här guiden ska vi:

  1. Skapa en tomteagent i ElevenLabs kontrollpanel
  2. Koppla den till en React-komponent med WebRTC
  3. Lägga till en enkel knapp för ”Ring tomten”

1. Registrera dig och öppna Agents Platform

  1. Registrera dig / logga in på ElevenLabs.
  2. Öppna plattformsväxlaren högst upp i vänster sidofält.
  3. Välj Agents Platform.

Du bör se ett sidofält med Agents, Knowledge Base, Tools och Voices under avsnittet ”Build”.

2. Skapa din tomteagent

Nu skapar vi en agent som beter sig som tomten och talar med en tomteröst.

  1. Klicka på Agents i sidofältet.
  2. Klicka på + New Agent.
  3. Välj Blank Agent för att börja från grunden.

Namnge den till Santa.

Systemprompt

Klistra in följande i fältet System Prompt:

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.

Första meddelandet

Ställ in First Message på:

Ho, ho, ho! God jul, min vän. Säg mig, vad heter du?

Det här är vad användarna hör när samtalet startar.

Röst

I avsnittet Voice:

  • Välj ”Jerry B. – Santa Claus”
  • Röst-ID: MDLAMJ0jxkpYkjXbmG4t

Nu kommer tomten faktiskt att låta som tomten.

Säkerhet

I det här exemplet lämnar vi den öppen:

  • Under Security kontrollerar du att Enable authentication är av.

För din första demo går det bra att lämna Enable Authentication avstängt, så att vem som helst kan ansluta till agenten utan begränsningar. Det gör onboarding snabbare och passar bra för snabba prototyper, hackathonprojekt eller interna presentationer.

Men för alla produktions- eller externt tillgängliga appar bör du aldrig lämna agenten öppen. Använd i stället ElevenLabs Token Endpoint för att skapa kortlivade åtkomsttoken med begränsad behörighet för varje användarsession. Då behåller du full kontroll över vem som kan ansluta, hur länge åtkomsten gäller och vilka åtgärder användaren får utföra. När du aktiverar autentisering skyddar du agenten mot obehöriga samtal, missbruk och användning utanför dina avsedda gränser — och det rekommenderas starkt innan du går live.

3. Hämta ditt agent-ID

Längst upp på agentsidan ser du ett fält för Agent ID.

Notera det här värdet — vi klistrar in det i vår React-komponent i ett senare steg:

agentId: "<AGENT_ID>"

4. Installera React SDK:t

Installera ElevenLabs React SDK i ditt React-/Next.js-projekt:

npm install @elevenlabs/react

När det är klart kan vi använda hooken useConversation för att starta och avsluta röstsamtal.

5. Lägg till knappen ”Ring tomten”

Skapa en ny komponent, till exempel CallSantaButton.tsx, och klistra in den här koden:

"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>
  );
}

Byt nu ut "<AGENT_ID>" mot det faktiska agent-ID:t som du kopierade från kontrollpanelen.

Rendera sedan knappen någonstans i ditt UI, till exempel:

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. Prova själv

Öppna sidan i webbläsaren och klicka på Start Call:

  1. Webbläsaren ber om behörighet till mikrofonen.
  2. En WebRTC-session startar med din tomteagent.
  3. Du hör:

    ”Ho, ho, ho! God jul, min vän. Säg mig, vad heter du?”

Därefter frågar tomten efter ditt namn, din önskelista och vad du har gjort i år för att hamna på snällistan.

Nästa steg

När grunderna fungerar kan du:

  • Skydda tomten med autentisering med agentens säkerhetsinställningar
  • Byta språk genom att skicka användarens språkversion och låta prompten hantera det
  • Anpassa UI:t med egna knappar, animationer eller en komplett skärm för ”Ring tomten”

Men själva kärnintegrationen är bara:

  • En agent i Agents Platform
  • Ett agentId
  • En useConversation-hook och en knapp

Det är allt du behöver för att få in tomtemagi i realtid med naturliga samtal i din React-app.

Liknande artiklar

Skapa med AI-ljud av högsta kvalitet