Apresentamos o Eleven v4Conheça o Eleven v4, nosso modelo mais expressivo até agora.

Pular para o conteúdo

Adicione um Agente de Voz do Papai Noel ao seu app React em minutos

Publicado

OuvirOuça este artigo

Nesta temporada de festas, adicione o Papai Noel ao seu app.

Com a Agents Platform da ElevenLabs e o SDK @elevenlabs/react, você pode adicionar um agente de voz do Papai Noel ao seu app React em poucos minutos. Neste guia, vamos:

  1. Criar um Agente Papai Noel no painel da ElevenLabs
  2. Conectá-lo a um componente React usando WebRTC
  3. Adicionar um botão simples "Ligar para o Papai Noel"

1. Cadastre-se e abra a Agents Platform

  1. Cadastre-se / faça login na ElevenLabs.
  2. Na barra lateral esquerda, abra o seletor de plataforma na parte superior.
  3. Escolha Agents Platform.

Você verá uma barra lateral com Agentes, Base de conhecimento, Ferramentas e Vozes na seção "Criar".

2. Crie seu Agente Papai Noel

Agora, vamos criar um agente que se comporta como o Papai Noel e fala com uma voz de Papai Noel.

  1. Na barra lateral, clique em Agentes.
  2. Clique em + Novo Agente.
  3. Escolha Agente em branco para começar do zero.

Dê o nome: Papai Noel.

Prompt do sistema

No campo Prompt do sistema, cole o seguinte:

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.

Primeira mensagem

Defina Primeira mensagem como:

Ho, ho, ho! Feliz Natal, meu amigo. Me conte: qual é o seu nome?

É isso que os usuários ouvirão quando a chamada começar.

Voz

Na seção Voz:

  • Escolha “Jerry B. – Papai Noel”
  • ID da voz: MDLAMJ0jxkpYkjXbmG4t

Agora o Papai Noel vai realmente soar como o Papai Noel.

Segurança

Neste exemplo, vamos deixá-lo aberto:

  • Em Segurança, confirme que Ativar autenticação está desativado.

Para sua primeira demonstração, não há problema em deixar Ativar autenticação desativado para que qualquer pessoa possa se conectar ao Agente sem restrições. Isso torna a configuração inicial mais rápida e é ideal para protótipos rápidos, projetos de hackathon ou demonstrações internas.

No entanto, em qualquer aplicação de produção ou acessível externamente, você nunca deve deixar seu Agente aberto. Em vez disso, use o Endpoint de token da ElevenLabs para gerar tokens de acesso temporários e com escopo definido para cada sessão de usuário. Isso garante que você mantenha controle total sobre quem pode se conectar, por quanto tempo o acesso dura e quais ações o usuário pode realizar. Ativar a autenticação protege seu Agente contra chamadas não autorizadas, abusos ou uso fora dos limites pretendidos — e é altamente recomendado antes de publicar sua aplicação.

3. Pegue o ID do seu Agente

Na parte superior da página do Agente, você verá um campo ID do Agente.

Anote esse valor — vamos colá-lo no componente React em uma etapa posterior:

agentId: "<AGENT_ID>"

4. Instale o SDK para React

No seu projeto React / Next.js, instale o SDK React da ElevenLabs:

npm install @elevenlabs/react

Com isso pronto, podemos usar o hook useConversation para iniciar e encerrar chamadas de voz.

5. Adicione o botão "Ligar para o Papai Noel"

Crie um novo componente, por exemplo, CallSantaButton.tsx, e cole este código:

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

Agora substitua "<AGENT_ID>" pelo ID real do Agente que você copiou do painel.

Em seguida, renderize o botão em algum lugar da sua interface, por exemplo:

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. Experimente

Abra-o no navegador e clique em Iniciar chamada:

  1. Seu navegador solicitará permissão para usar o microfone.
  2. Uma sessão WebRTC começa com seu Agente Papai Noel.
  3. Você ouvirá:

    “Ho, ho, ho! Feliz Natal, meu amigo. Me conte: qual é o seu nome?”

A partir daí, o Papai Noel pedirá seu nome, sua lista de desejos e o que você fez este ano para continuar na Lista dos Bons.

Próximos passos

Quando o básico estiver funcionando, você pode:

  • Restringir o acesso ao Papai Noel com autenticação usando as configurações de Segurança do Agente
  • Alternar idiomas passando o idioma do usuário e deixando o prompt cuidar disso
  • Personalizar a interface com botões, animações ou uma tela completa de "Ligar para o Papai Noel"

Mas a integração principal é só:

  • Um Agente na Agents Platform
  • Um agentId
  • Um hook useConversation e um botão

É tudo o que você precisa para levar a magia conversacional do Papai Noel, em tempo real, ao seu app React.

Artigos relacionados

Crie com o áudio de IA da mais alta qualidade