SDK Python

SDK ElevenAgents: implante agentes de voz interativos e personalizados em minutos.

Consulte também a visão geral do ElevenAgents

Instalação

Instale o pacote Python elevenlabs no seu projeto:

pip install elevenlabs
# or
poetry add elevenlabs

Se quiser usar a implementação padrão de entrada/saída de áudio, você também precisará do extra pyaudio:

pip install "elevenlabs[pyaudio]"
# or
poetry add "elevenlabs[pyaudio]"

A instalação do pacote pyaudio pode exigir dependências adicionais do sistema.

Consulte o README do pacote PyAudio para mais informações.

Em sistemas baseados em Debian, você pode instalar as dependências com:

sudo apt-get update
sudo apt-get install libportaudio2 libportaudiocpp0 portaudio19-dev libasound-dev libsndfile1-dev -y

Uso

Neste exemplo, vamos criar um script simples que executa uma conversa com o agente do ElevenLabs Agents.

Primeiro, importe as dependências necessárias:

import os
import signal
from elevenlabs.client import ElevenLabs
from elevenlabs.conversational_ai.conversation import Conversation
from elevenlabs.conversational_ai.default_audio_interface import DefaultAudioInterface

Em seguida, carregue o ID do agente e a chave de API das variáveis de ambiente:

agent_id = os.getenv("AGENT_ID")
api_key = os.getenv("ELEVENLABS_API_KEY")

A chave de API é necessária apenas para agentes não públicos que têm autenticação ativada. Não é necessário defini-la para agentes públicos, e o código funcionará normalmente sem ela.

Em seguida, crie a instância do cliente ElevenLabs:

elevenlabs = ElevenLabs(api_key=api_key)

Agora, inicialize a instância Conversation:

conversation = Conversation(
# API client and agent ID.
elevenlabs,
agent_id,
# Assume auth is required when API_KEY is set.
requires_auth=bool(api_key),
# Use the default audio interface.
audio_interface=DefaultAudioInterface(),
# Simple callbacks that print the conversation to the console.
callback_agent_response=lambda response: print(f"Agent: {response}"),
callback_agent_response_correction=lambda original, corrected: print(f"Agent: {original} -> {corrected}"),
callback_user_transcript=lambda transcript: print(f"User: {transcript}"),
# Uncomment if you want to see latency measurements.
# callback_latency_measurement=lambda latency: print(f"Latency: {latency}ms"),
# Uncomment if you want to receive audio alignment data with character-level timing.
# callback_audio_alignment=lambda alignment: print(f"Alignment: {alignment.chars}"),
)

Estamos usando a DefaultAudioInterface, que usa os dispositivos padrão de entrada/saída de áudio do sistema para a conversa. Você também pode implementar sua própria interface de áudio criando uma subclasse de elevenlabs.conversational_ai.conversation.AudioInterface.

Agora podemos iniciar a conversa. Opcionalmente, recomendamos informar seus próprios IDs de usuários finais para associar conversas aos seus usuários.

conversation.start_session(
user_id=user_id # optional field
)

Para encerrar corretamente quando o usuário pressionar Ctrl+C, podemos adicionar um manipulador de sinal que chamará end_session():

signal.signal(signal.SIGINT, lambda sig, frame: conversation.end_session())

Por fim, esperamos a conversa terminar e exibimos o ID da conversa (que pode ser usado para revisar o histórico da conversa e fazer depuração):

conversation_id = conversation.wait_for_session_end()
print(f"Conversation ID: {conversation_id}")

Agora basta executar o script e começar a falar com o agente:

# For public agents:
AGENT_ID=youragentid python demo.py
# For private agents:
AGENT_ID=youragentid ELEVENLABS_API_KEY=yourapikey python demo.py