Instalación de la Biblioteca OpenAI
Antes de comenzar a utilizar la API Respuestas, es necesario asegurarse de tener instalada la última versión de la biblioteca OpenAI para Python.
Esto se puede lograr utilizando el siguiente comando en la terminal: pip install --upgrade openai rich
Este comando actualiza la biblioteca OpenAI a la versión más reciente y también instala la biblioteca 'rich', que se utiliza para mejorar la visualización de los resultados en la terminal. Una vez que la biblioteca OpenAI está instalada, se puede importar en el código Python utilizando la siguiente instrucción: from openai import OpenAI
Esta instrucción permite acceder a todas las funcionalidades de la biblioteca OpenAI, incluyendo la API Respuestas.
Configuración del Cliente OpenAI
Para poder utilizar la API Respuestas, es necesario configurar un cliente OpenAI con la clave de API correspondiente. La clave de API se puede obtener creando una cuenta en el sitio web de OpenAI y generando una nueva clave en la sección de configuración de la API.
El siguiente código muestra cómo configurar el cliente OpenAI: client = OpenAI(api_key=API_KEY, max_retries=3)
En este código, 'API_KEY' debe ser reemplazado por la clave de API real. El parámetro 'max_retries' especifica el número máximo de intentos para una llamada de función en caso de fallo. Esto ayuda a garantizar la robustez y la confiabilidad de la aplicación. Una vez que el cliente OpenAI está configurado, se puede utilizar para interactuar con la API Respuestas y realizar solicitudes a los modelos de lenguaje de OpenAI.
Creación de una Respuesta con la API Respuestas
El siguiente código muestra cómo crear una respuesta utilizando la API Respuestas: response = client.responses.create( model="gpt-4o-mini", input="What NBA games were played last night?", instructions="Replace with one sentence in a sarcastic tone", tools=[{"type": 'web_search_preview'}], parallel_tool_calls=False, store=True, user='JJ', reasoning={"effort": 'medium'} )
En este código, se especifican varios parámetros para controlar el comportamiento del modelo de lenguaje. El parámetro 'model' especifica el modelo de lenguaje que se utilizará, en este caso 'gpt-4o-mini'. El parámetro 'input' especifica la pregunta o la solicitud que se enviará al modelo de lenguaje. El parámetro 'instructions' especifica las instrucciones adicionales que se deben seguir al generar la respuesta. El parámetro 'tools' especifica qué herramientas se deben utilizar al generar la respuesta, en este caso la herramienta de búsqueda web. El parámetro 'parallel_tool_calls' especifica si las llamadas de herramientas se deben realizar en paralelo o en serie. El parámetro 'store' especifica si la interacción se debe almacenar en el panel de control de OpenAI. El parámetro 'user' especifica el identificador único del usuario final. El parámetro 'reasoning' especifica el nivel de esfuerzo que se debe dedicar al razonamiento. Una vez que se ha creado la respuesta, se puede acceder al texto de la respuesta utilizando la siguiente instrucción: print(response.output_text)
Esta instrucción imprimirá el texto de la respuesta en la terminal.
Utilización de la Búsqueda de Archivos
Para utilizar la herramienta de búsqueda de archivos, primero se debe crear un almacén vectorial y cargar los archivos relevantes. Esto se puede hacer en el panel de control de OpenAI, en la sección de almacenamiento. Una vez que se ha creado el almacén vectorial y se han cargado los archivos, se puede utilizar la herramienta de búsqueda de archivos especificando el tipo de herramienta como 'file_search' y proporcionando el ID del almacén vectorial. El siguiente código muestra cómo utilizar la herramienta de búsqueda de archivos: response = client.responses.create( model="gpt-4o-mini", input="Tell me about the place at 3758 Polton Place Way", tools=[{"type": 'file_search', 'vector_store_ids': ['vs_67dd8bedf881913d8515285bb7e']}], store=True, user='JJ', reasoning={"effort": 'medium'} )
En este código, se especifica el tipo de herramienta como 'file_search' y se proporciona el ID del almacén vectorial en el parámetro 'vector_store_ids'. Cuando se envía esta solicitud, el modelo de lenguaje buscará en los archivos del almacén vectorial información relevante para la pregunta y generará una respuesta basada en los resultados de la búsqueda.
Gestión del Estado de la Conversación
Para gestionar el estado de la conversación, se puede utilizar el parámetro 'previous_response_id' para especificar el ID de la respuesta anterior en la conversación. Esto permite al modelo de lenguaje tener en cuenta el contexto de la conversación al generar nuevas respuestas. El siguiente código muestra cómo gestionar el estado de la conversación: response_id = None while True: user_input = Prompt.ask("User") response = client.responses.create( model="gpt-4o-mini", input=user_input, instructions="Replace with one sentence", parallel_tool_calls=False, previous_response_id=response_id, store=True, user='JJ' ) response_id = response.id print(response.usage) print("Agent: ", response.output_text)
En este código, se crea una variable 'response_id' para almacenar el ID de la respuesta anterior. En cada iteración del bucle, se especifica el valor de 'response_id' en el parámetro 'previous_response_id' al crear una nueva respuesta. Esto permite al modelo de lenguaje tener en cuenta el contexto de la conversación al generar nuevas respuestas.