Del curso: Desarrollar aplicaciones basadas en LLMs con LanChain, Semantic Kernel y Prompt Flow

OpenAI: Chat Completions

Los modelos de text generation de OpenAI generan salidas de texto en respuesta a sus entradas. Las entradas de estos modelos se denominan prompts. Diseñar un prompt es básicamente como programamos estos modelos de lenguaje, generalmente proporcionando instrucciones o algunos ejemplos de cómo completar con éxito una tarea. Para utilizar uno de estos modelos a través de la API de OpenAI, enviarás una solicitud que contenga primero tu kit de OpenAI y, además, los inputs o prompts que le enviarás al modelo, y recibirás una respuesta que contendrá la salida del mismo. En este caso, se le especifica al sistema que es un asistente de poesía y se le pide que componga un poema que explique el concepto de recursividad en programación. La respuesta, la salida del modelo, no será otro que el poema compuesto, en este caso. Los modelos de generación de texto están disponibles a través de la API de Chat Completions. El endpoint de Chat Completions toma el modelo que vamos a utilizar, en este caso, GPT-3.5 Turbo, y además una lista de mensajes. Y devuelve, efectivamente, la salida, la respuesta generada por el modelo. Aunque el formato del chat está diseñado para facilitar conversaciones de múltiples turnos, también es igualmente útil para tareas de un solo turno sin conversación. Una llamada de ejemplo a la API de Chat Completions se ve de esta manera. La entrada principal es el parámetro de mensajes; deben ser un conjunto de mensajes donde cada objeto tiene un rol, ya sea sistema, usuario o asistente, y además, un contenido. Las conversaciones pueden ser tan breves como un solo mensaje o incluir muchos intercambios de ida y vuelta. Normalmente, una conversación se formatea con un mensaje del sistema primero, seguido de mensajes alternos de usuario y asistente. El mensaje de sistema ayuda a establecer el comportamiento del asistente. Por ejemplo, puedes modificar la personalidad del asistente o proporcionar instrucciones específicas sobre cómo debe comportarse a lo largo de la conversación. Sin embargo, ten en cuenta que el mensaje del sistema es opcional y el comportamiento del modelo sin un mensaje del sistema probablemente será similar al uso de un mensaje genérico, como el de «Eres un asistente servicial, eres un asistente útil». Los mensajes de usuario proporcionan solicitudes o comentarios para que el asistente responda. En este caso, le podemos preguntar al modelo quién ganó la Copa del Mundo en 2018. Los mensajes del asistente almacenan respuestas previas del asistente, pero también pueden ser escritos por ti para dar ejemplos de comportamiento deseado. En este caso, le vamos a decir al modelo quién ganó la Copa del Mundo en 2018, «Francia ganó la Copa del Mundo en 2018», y así le damos información de cómo queremos que se comporte. Incluir el historial de conversaciones es importante cuando las instrucciones del usuario hacen referencia a mensajes anteriores. Si luego le preguntamos dónde se jugó, en este ejemplo, la pregunta final solo tiene sentido en el contexto de los mensajes anteriores sobre la Copa del Mundo de 2018. Dado que los modelos no tienen memoria de solicitudes pasadas, toda la información relevante debe proporcionarse como parte del historial de conversación en cada solicitud, y así obtendrás una respuesta contextualizada como la siguiente. «La Copa del Mundo de 2018 se jugó en Rusia», efectivamente, a la que estamos haciendo referencia en los mensajes anteriores. Y aquí tienes tu primera llamada con Chat Completions.

Contenido