Ejemplo: Podcast Inteligente 🎙#
Descripción
🎙️Pódcast de IA - Conversaciones de voz multiagente en el chip M2 Max
Idiomas compatibles:
AI_Podcast.py
AI_Podcast_ZH.py
La versión en inglés involucra tecnología:
Xinference como plataforma
Explicación detallada sobre las funciones de demostración:
Inicia XInference, despliega los modelos Wizardlm y Vicuna. Inicia la sala de chat especificando los nombres de los dos modelos e indicándoles que hay un usuario humano llamado «username», donde «username» es proporcionado por la entrada del usuario. Luego inicializa un historial de chat vacío para la sala de chat.
Almacena la grabación en un archivo usando un dispositivo de audio, luego transcribe el archivo a una cadena de texto legible por humanos con Whisper de OpenAI.
Basado en la cadena del mensaje de entrada, determina con qué agentes (modelos) desea conversar el usuario. Invoca a estos agentes objetivo y utiliza la cadena de entrada del usuario y el historial de chat como entrada para que el modelo genere el contenido correspondiente.
Cuando el resultado del modelo esté listo, utiliza el comando «Say» de macOS para generar audio a través del altavoz. Cada agente tiene su propia voz al hablar.
Almacenar la entrada del usuario y la respuesta del agente en el historial del chat, y ejecutar un bucle recursivo del programa hasta que el usuario diga explícitamente una palabra como «adiós» en su respuesta.
Características destacadas de Xinference:
Con el sistema distribuido de Xinference, podemos desplegar fácilmente dos modelos diferentes en la misma sesión y en la misma «sala de chat». Con recursos suficientes, este marco puede desplegar simultáneamente cualquier cantidad de modelos.
Usando Xinference, solo necesitas agregar unas pocas líneas de código para implementar modelos fácilmente. Por ejemplo, para iniciar el modelo vicuna en la demostración, solo necesitas:
args = parser.parse_args() endpoint = args.endpoint client = Client(endpoint) model_a = "vicuna-v1.3" model_a_uid = client.launch_model( model_name=model_a, model_format="ggmlv3", model_size_in_billions=7, quantization="q4_0", n_ctx=2048, ) model_a_ref = client.get_model(model_a_uid)
Luego, el cliente de Xinference gestionará la «descarga y el almacenamiento en caché del modelo objetivo», la «configuración del entorno y los procesos para el modelo» y la «ejecución del servicio en el endpoint seleccionado». Ahora estás listo para interactuar con tu modelo LLM.
Video de demostración original
Código fuente
AI_podcast (versión en inglés)
AI Podcast (versión en chino)