Tendría sentido usar el número de teléfono aquí, pero solo usaría una marca de tiempo, porque yo sería el único que llamaría de todos modos. Y luego, en la configuración de WebSocket, solo tengo un callback cuando el socket está abierto. Cuando está cerrado, vamos a formatearlo un poco. Y luego la parte interesante sucede aquí, cuando llega un mensaje. Paso la carga útil JSON, y luego cuando el mensaje es del tipo prompt, que será mayormente así. De todos modos, registro esto en la consola, y por ahora, tengamos una respuesta codificada que diga que es una gran pregunta. Y luego lo registro en la consola, y simplemente lo transmito de vuelta. Y lo que también hago es registrar los otros tipos para que los veas, pero no tenemos que preocuparnos por ellos por ahora.
Bien, vamos a ejecutarlo. Ejecuto mi servidor. Expongo este puerto a internet, y si voy aquí a mi configuración, ves que cada vez que una llamada llega a un número de teléfono, se conecta a mi servidor WebSocket. Esto es lo que uso 11 Labs para texto a voz. Esta idea particular de la voz, y esta es la frase inicial. Vamos a llamarlo, y esperemos que funcione. ¿Está el audio? Déjame comprobar. Esa es una gran pregunta. Oye, ¿cuál es la capital de Francia? Esa es una gran pregunta. Ves, siempre obtengo la misma respuesta de vuelta. ¿Por qué? Porque no hago nada aquí. Solo digo que devuelva una respuesta estática, pero viste qué tan rápida fue la latencia. Entonces, si miro los registros, ves que el texto a voz, y voz a texto sucedieron instantáneamente. Ahora, vamos a involucrar algo de IA aquí, y si profundizo en eso, eso se importa automáticamente.
Ves, ¿qué hago aquí? Bueno, tengo una declaración if para ver si ya conozco este ID de conversación. Si no lo conozco, solo uso el GPT4 o mini model. Agrego un prompt del sistema, y el prompt del usuario. Agrego una herramienta de búsqueda web, y me aseguro de almacenar el historial en el lado del servidor en OpenAI, y luego si la respuesta regresa, la guardo. Así que, cuando hago otra pregunta la próxima vez, la declaración if se activa aquí, y luego puedo referirme a la conversación anterior, así que no tengo que llevar ese array de mensajes todo el tiempo. Solo tengo que agregar el prompt más reciente. Intentémoslo de nuevo. Reinicio el servidor.
Comments