Created
May 14, 2025 12:55
-
-
Save Davidnet/575fb0b610b68e3ce699d37cebd859ad to your computer and use it in GitHub Desktop.
analytics-demo
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
uv run --env-file .env main.py download-files |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
uv run --env-file .env main.py console |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
""" | |
# 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