Python SDK

ElevenAgents SDK: Stellen Sie angepasste, interaktive Sprach-Agenten in wenigen Minuten bereit.

Installation

Installieren Sie das Python-Paket elevenlabs in Ihrem Projekt:

pip install elevenlabs
# or
poetry add elevenlabs

Wenn Sie die Standardimplementierung für Audioeingabe und -ausgabe verwenden möchten, benötigen Sie außerdem das Extra pyaudio:

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

Für die Installation des Pakets pyaudio sind möglicherweise zusätzliche Systemabhängigkeiten erforderlich.

Weitere Informationen finden Sie in der README des PyAudio-Pakets.

Auf Debian-basierten Systemen können Sie die Abhängigkeiten wie folgt installieren:

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

Verwendung

In diesem Beispiel erstellen wir ein einfaches Skript, das eine Unterhaltung mit dem ElevenLabs Agents-Agenten ausführt.

Importieren Sie zunächst die erforderlichen Abhängigkeiten:

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

Laden Sie anschließend die Agent-ID und den API-Schlüssel aus Umgebungsvariablen:

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

Der API-Schlüssel ist nur für nicht öffentliche Agents mit aktivierter Authentifizierung erforderlich. Für öffentliche Agents müssen Sie ihn nicht festlegen; der Code funktioniert auch ohne ihn.

Erstellen Sie dann die Client-Instanz ElevenLabs:

elevenlabs = ElevenLabs(api_key=api_key)

Initialisieren Sie nun die Instanz 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}"),
)

Wir verwenden DefaultAudioInterface, das für die Unterhaltung die Standardgeräte des Systems für Audioein- und -ausgabe nutzt. Sie können auch eine eigene Audioschnittstelle implementieren, indem Sie elevenlabs.conversational_ai.conversation.AudioInterface als Unterklasse verwenden.

Jetzt können wir die Unterhaltung starten. Optional empfehlen wir, eigene Endnutzer-IDs zu übergeben, um Unterhaltungen Ihren Nutzern zuzuordnen.

conversation.start_session(
user_id=user_id # optional field
)

Um ein sauberes Herunterfahren zu ermöglichen, wenn der Nutzer Ctrl+C drückt, können wir einen Signal-Handler hinzufügen, der end_session() aufruft:

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

Abschließend warten wir, bis die Unterhaltung endet, und geben die Unterhaltungs-ID aus. Diese kann verwendet werden, um den Gesprächsverlauf zu überprüfen und Fehler zu beheben:

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

Nun müssen Sie nur noch das Skript ausführen und mit dem Agenten sprechen:

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