Hoppa till navigering

Python SDK

ElevenAgents SDK: driftsätt anpassade, interaktiva röstagentar på några minuter.

Installation

Installera Python-paketet elevenlabs i ditt projekt:

pip install elevenlabs
# or
poetry add elevenlabs

Om du vill använda standardimplementeringen för ljudin- och utmatning behöver du även tillägget pyaudio:

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

Installationen av paketet pyaudio kan kräva ytterligare systemberoenden.

Se README för PyAudio-paketet för mer information.

På Debian-baserade system kan du installera beroendena med:

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

Användning

I det här exemplet skapar vi ett enkelt skript som kör en konversation med ElevenLabs Agents-agenten.

Importera först nödvändiga beroenden:

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

Läs sedan in agent-ID:t och API-nyckeln från miljövariabler:

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

API-nyckeln krävs endast för icke-offentliga agenter som har autentisering aktiverad. Du behöver inte ange den för offentliga agenter, och koden fungerar bra utan den.

Skapa sedan klientinstansen ElevenLabs:

elevenlabs = ElevenLabs(api_key=api_key)

Nu initierar vi instansen 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}"),
)

Vi använder DefaultAudioInterface, som använder systemets standardenheter för ljudin- och utmatning för konversationen. Du kan också implementera ditt eget ljudgränssnitt genom att ärva från elevenlabs.conversational_ai.conversation.AudioInterface.

Nu kan vi starta konversationen. Du kan även ange dina egna slutanvändar-ID:n för att koppla konversationer till dina användare.

conversation.start_session(
user_id=user_id # optional field
)

För att få en ren avstängning när användaren trycker på Ctrl+C kan vi lägga till en signalhanterare som anropar end_session():

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

Till sist väntar vi på att konversationen ska avslutas och skriver ut konversations-ID:t (som kan användas för att granska konversationshistoriken och felsöka):

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

Det enda som återstår är att köra skriptet och börja prata med agenten:

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