Refactor code structure for improved readability and maintainability
This commit is contained in:
@@ -0,0 +1,57 @@
|
||||
# prueba_agente_tts.py
|
||||
import os
|
||||
import asyncio
|
||||
from livekit.agents import WorkerOptions, Worker, JobContext, AgentSession, Agent
|
||||
from livekit.plugins import openai
|
||||
|
||||
LIVEKIT_URL = "ws://192.168.1.131:7880"
|
||||
LIVEKIT_API_KEY = "devkey"
|
||||
LIVEKIT_API_SECRET = "secret"
|
||||
ROOM_NAME = "mi_sala_prueba"
|
||||
PARTICIPANT_IDENTITY = "agente_tts"
|
||||
|
||||
OPENAI_API_KEY = os.getenv("OPENAI_API_KEY", "sk-...tu_clave...")
|
||||
os.environ["OPENAI_API_KEY"] = OPENAI_API_KEY
|
||||
|
||||
|
||||
async def entrypoint(ctx: JobContext):
|
||||
print("🎙️ Conectando agente al room LiveKit...")
|
||||
await ctx.connect()
|
||||
print(f"✅ Conectado a la sala: {ctx.room.name}")
|
||||
|
||||
# Crear el modelo TTS
|
||||
tts_model = openai.realtime.RealtimeModel(
|
||||
model="gpt-4o-realtime-preview-2024-12-17",
|
||||
voice="alloy",
|
||||
)
|
||||
|
||||
# Crear agente
|
||||
agent = Agent(instructions="Eres un agente TTS de prueba con voz de OpenAI.")
|
||||
session = AgentSession(agent=agent, llm=tts_model)
|
||||
|
||||
await session.start(room=ctx.room)
|
||||
print("🗣️ Agente hablando...")
|
||||
await session.generate_reply(text="Hola, soy el agente TTS de LiveKit.")
|
||||
await asyncio.sleep(5)
|
||||
print("👋 Cerrando sesión del agente.")
|
||||
await session.close()
|
||||
|
||||
|
||||
async def main():
|
||||
opts = WorkerOptions(
|
||||
entrypoint_fnc=entrypoint,
|
||||
api_key=LIVEKIT_API_KEY,
|
||||
api_secret=LIVEKIT_API_SECRET,
|
||||
ws_url=LIVEKIT_URL,
|
||||
)
|
||||
|
||||
worker = Worker(opts)
|
||||
# 🔥 Esta es la línea correcta para unir al agente al room directamente
|
||||
await worker.run_in_room(
|
||||
room_name=ROOM_NAME,
|
||||
participant_identity=PARTICIPANT_IDENTITY,
|
||||
)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(main())
|
||||
Reference in New Issue
Block a user