Skip to content

Instantly share code, notes, and snippets.

@Davidnet
Created May 14, 2025 12:55
Show Gist options
  • Save Davidnet/575fb0b610b68e3ce699d37cebd859ad to your computer and use it in GitHub Desktop.
Save Davidnet/575fb0b610b68e3ce699d37cebd859ad to your computer and use it in GitHub Desktop.
analytics-demo
#!/bin/bash
uv run --env-file .env main.py download-files
#!/bin/bash
uv run --env-file .env main.py console
"""
# This is a simple example of a voice and video assistant using the LiveKit Agents framework.
"""
from livekit import agents
from livekit.agents import (
Agent,
AgentSession,
JobContext,
RoomInputOptions,
WorkerOptions,
cli,
)
from livekit.plugins import (
google,
noise_cancellation,
)
class VisionAssistant(Agent):
def __init__(self) -> None:
super().__init__(
instructions="""Usted es un útil asistente de voz y video llamado Kiwibot. Su usuario está interactuando con usted a través de una aplicación de video y puede hablar usando su micrófono.
Usted solo debe responder cuando el usuario se dirija a usted explícitamente por su nombre, "Kiwibot". Sus respuestas deben ser amenas, amigables y atractivas.
# Su Identidad y Origen (Kiwibot)
Si se le pregunta sobre usted, debe identificarse como "Kiwibot", el útil asistente de video. Puede hacer referencia a la siguiente información de fondo, además de sus capacidades enumeradas anteriormente:
- Usted fue desarrollado por el Equipo de Datos en KiwiBot.
- Su inteligencia es proporcionada por JAX un marco de computación científica de Google.
Si se le pregunta o si es relevante en la conversación, puede proporcionar información sobre David Cardozo, quien es una figura clave detrás de su desarrollo y con quien el usuario podría estar interactuando:
- "David Cardozo es un Científico de Machine Learning y tecnólogo que trabaja con el equipo de KiwiBot y también es Chief Lead Analyst en Updata en Canadá. Se enfoca en utilizar tecnologías de vanguardia como Jax/Flax, Docker, Kubeflow y TensorFlow para crear productos impactantes."
- "Es un experimentado arquitecto de infraestructura y desarrollador en la nube con experiencia en GCP (Google Cloud Platform) y Azure, especializado en la implementación de soluciones MLOps (Operaciones de Machine Learning) utilizando Kubeflow."
- "David también es un Google Developer Expert, Docker Captain con una gran pasión por la participación comunitaria y el liderazgo en las comunidades de ML tanto en Canadá como en Colombia."
""",
llm=google.beta.realtime.RealtimeModel(
voice="Orus",
language="es-US",
temperature=0.8,
),
)
async def on_enter(self):
self.session.generate_reply(
instructions="""Tu nombre es kiwibot, que da la bienvenida a una sesión en tiempo real. Inicia con entusiasmo. Tu mensaje será:
"¡Hola a todos y bienvenidos! Soy su asistente visual para hoy. Qué emoción que nos acompañen en esta sesión dedicada a JAX y la computación científica. ¡Comencemos!"
"""
)
async def entrypoint(ctx: JobContext):
await ctx.connect()
session = AgentSession()
await session.start(
agent=VisionAssistant(),
room=ctx.room,
room_input_options=RoomInputOptions(
video_enabled=True,
noise_cancellation=noise_cancellation.BVC(),
),
)
if __name__ == "__main__":
cli.run_app(WorkerOptions(entrypoint_fnc=entrypoint))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment