Noticias

Lleve la interacción multimodal en tiempo real a sus aplicaciones de IA con Cloudflare Calls

Published

on

OpenAI anunció soporte para WebRTC en su API en tiempo real el 17 de diciembre de 2024. Combinando su API en tiempo real con Llamadas de Cloudflare le permite crear experiencias que no eran posibles unos días antes.

Anteriormente, las interacciones con IA de audio y vídeo eran en gran medida un jugador: solo una persona podría interactuar con la IA a menos que estuvieras en la misma habitación física. Ahora, las aplicaciones creadas con Cloudflare Calls y la API en tiempo real de OpenAI ahora pueden admitir que múltiples usuarios en todo el mundo vean e interactúen simultáneamente con una IA de voz o video.

Haz que tu IA se una a tus videollamadas

Esto es lo que esto significa en la práctica: ahora puedes invitar a ChatGPT a tu próxima videoconferencia:

Construimos esto en nuestro El naranja se encuentra La aplicación de demostración sirve como inspiración para lo que es posible, pero las oportunidades son mucho más amplias.

En un futuro no muy lejano, todas las empresas podrían tener una ‘IA corporativa’ a la que inviten a sus reuniones internas que sea segura, privada y tenga acceso a los datos de su empresa. Imagine este tipo de interacciones de audio y vídeo en tiempo real con la IA de su empresa:

“Hola ChatGPT, ¿tenemos algún ticket de Jira abierto sobre esto?”

“Hola, empresa AI, ¿quiénes son los competidores en el espacio que hacen Y?”

“AI, ¿XYZ es un gran cliente? ¿Cuánto más gastaron con nosotros en comparación con el año pasado?”

Existen oportunidades similares si su aplicación está diseñada para consumidores: las transmisiones y transmisiones en vivo globales pueden volverse mucho más interactivas. El juego de misterio y asesinato del vídeo de arriba es sólo un ejemplo: puedes crear el tuyo propio para jugar en vivo con tus amigos en diferentes ciudades.

Estas experiencias multimedia interactivas son posibles gracias a la adopción por parte de la industria de WebRTCque significa comunicación web en tiempo real.

Históricamente, muchas experiencias de productos en tiempo real han utilizado enchufes web en lugar de WebRTC. Los Websockets funcionan a través de una única conexión TCP persistente establecida entre un cliente y un servidor. Esto es útil para mantener una sincronización de datos para aplicaciones de chat basadas en texto o mantener el estado del juego en tu videojuego favorito. Cloudflare tiene un amplio soporte para Websockets a través de nuestra red así como en nuestro portal AI.

Si estuviera creando una aplicación de chat antes de WebSockets, probablemente haría que su aplicación del lado cliente sondeara el servidor cada n segundos para ver si hay nuevos mensajes para mostrar. WebSockets eliminó esta necesidad de realizar encuestas. En cambio, el cliente y el servidor establecen una conexión persistente y de larga duración para enviar y recibir mensajes.

Sin embargo, una vez que varios usuarios en distintas geografías interactúan simultáneamente con voz y video, pequeños retrasos en la sincronización de datos pueden convertirse en experiencias de producto inaceptables. Imagine crear una aplicación que realice traducción de audio en tiempo real. Con WebSockets, necesitaría fragmentar la entrada de audio, de modo que cada fragmento contenga entre 100 y 500 milisegundos de audio. Ese tamaño de fragmentación, junto con el bloqueo de cabecera de línease convierte en el umbral de latencia para su capacidad de ofrecer una experiencia multimodal en tiempo real a sus usuarios.

WebRTC resuelve este problema al tener soporte nativo para pistas de audio y video a través de canales basados ​​en UDP directamente entre usuarios, eliminando la necesidad de fragmentación. Esto le permite transmitir datos de audio y video a un modelo de IA desde múltiples usuarios y recibir datos de audio y video del modelo de IA en tiempo real.

Distribución de IA en tiempo real mediante llamadas de Cloudflare

Históricamente, configurar la infraestructura subyacente para WebRTC (servidores para enrutamiento de medios, retransmisiones TURN, disponibilidad global) podía ser un desafío.

Llamadas de Cloudflare maneja la totalidad de esta complejidad para los desarrolladores, permitiéndoles aprovechar WebRTC sin necesidad de preocuparse por los servidores, las regiones o el escalado. Cloudflare Calls funciona como una red de malla única que conecta automáticamente a cada usuario a un servidor cercano a él. Las llamadas pueden conectarse directamente con otros servicios basados ​​en WebRTC, como OpenAI, lo que le permite entregar el resultado con una latencia casi nula a cientos o miles de usuarios.

La privacidad y la seguridad también son estándar: todo el tráfico de video y audio que pasa a través de Cloudflare Calls está encriptado de forma predeterminada. En esta demostración en particular, vamos un paso más allá al crear un botón que le permite decidir cuándo permitir que ChatGPT escuche e interactúe con los participantes de la reunión, lo que le permite ser más granular y específico en su postura de privacidad y seguridad.

Cómo conectamos las llamadas de Cloudflare a la API en tiempo real de OpenAI

Cloudflare Calls tiene tres componentes básicos: Aplicaciones, sesiones y pistas:

“A Sesión en Cloudflare Calls se correlaciona directamente con una WebRTC PeerConnection. Representa el establecimiento de un canal de comunicación entre un cliente y el centro de datos de Cloudflare más cercano, según lo determinado por el enrutamiento anycast de Cloudflare…

Dentro de una sesión, puede haber una o más Pistas. … [which] alinearse con el concepto MediaStreamTrack, facilitando la transmisión de audio, video o datos”.

Para incluir ChatGPT en nuestra demostración de videoconferencia, necesitábamos agregar ChatGPT como pista en un curso sesión. Para hacer esto, nos conectamos a la API en tiempo real en El naranja se encuentra:

// Connect Cloudflare Calls sessions and tracks like a switchboard
async function connectHumanAndOpenAI(
	humanSessionId: string,
	openAiSessionId: string
) {
	const callsApiHeaders = {
		Authorization: `Bearer ${APP_TOKEN}`,
		'Content-Type': 'application/json',
	}
	// Pull OpenAI audio track to human's track
	await fetch(`${callsEndpoint}/sessions/${humanSessionId}/tracks/new`, {
		method: 'POST',
		headers: callsApiHeaders,
		body: JSON.stringify({
			tracks: [
				{
					location: 'remote',
					sessionId: openAiSessionId,
					trackName: 'ai-generated-voice',
					mid: '#user-mic',
				},
			],
		}),
	})
	// Pull human's audio track to OpenAI's track
	await fetch(`${callsEndpoint}/sessions/${openAiSessionId}/tracks/new`, {
		method: 'POST',
		headers: callsApiHeaders,
		body: JSON.stringify({
			tracks: [
				{
					location: 'remote',
					sessionId: humanSessionId,
					trackName: 'user-mic',
					mid: '#ai-generated-voice',
				},
			],
		}),
	})
}

Este código configura el enrutamiento bidireccional entre la sesión del humano y ChatGPT, lo que permitiría a los humanos escuchar ChatGPT y ChatGPT escuchar a los humanos.

Puede revisar todo el código de esta aplicación de demostración en GitHub.

Ofrezca llamadas de Cloudflare + API en tiempo real OpenAI demostración y prueba usted mismo y revise cómo se construyó a través de el código fuente en GitHub. Entonces comienza hoy con Llamadas de Cloudflare para llevar IA interactiva en tiempo real a sus aplicaciones y servicios.

Leave a Reply

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Trending

Exit mobile version