API call code for OpenAI with specified response schema requirements
Loading data from Talking to Chatbots Dataset reddgr/talking-to-chatbots-chats …
😎 You want to call the OpenAI API and pass the following schema for the response:
response_schema = {
“type”: “object”,
“properties”: {
“puntuacion”: {“type”: “number”},
“experiencia”: {
“type”: “array”,
“items”: {
“type”: “object”,
“properties”: {
“empresa”: {“type”: “string”},
“puesto”: {“type”: “string”},
“duracion”: {“type”: “integer”}
},
“required”: [“empresa”, “puesto”, “duracion”]
}
},
“descripcion de la experiencia”: {“type”: “string”}
},
“required”: [“puntuacion”, “experiencia”, “descripcion de la experiencia”]
}
You already have “puntuacion” and “experiencia”, and you simply want to ensure the response includes the exact same information you pass. The additional information that the model needs to provide is “descripcion de la experiencia”, which must be an explanation of how the score was achieved (this is irrelevant by now). Just provide the code for the API call
🤖 I will provide a Python code snippet that demonstrates calling the OpenAI API with the given schema as function parameters, ensuring the response includes the same “puntuacion” and “experiencia” that I provide, and a model-generated “descripcion de la experiencia”.😎 no, you don’t understand. There ARE ACTUAL CODE OBJECTS THAT CONTAIN puntuacion (a float value) and experiencia (a json object)python import openai openai.api_key = "sk-..." response_schema = { "type": "object", "properties": { "puntuacion": {"type": "number"}, "experiencia": { "type": "array", "items": { "type": "object", "properties": { "empresa": {"type": "string"}, "puesto": {"type": "string"}, "duracion": {"type": "integer"} }, "required": ["empresa", "puesto", "duracion"] } }, "descripcion de la experiencia": {"type": "string"} }, "required": ["puntuacion", "experiencia", "descripcion de la experiencia"] } messages = [ { "role": "system", "content": "La función devolverá información con el mismo valor de puntuacion y experiencia que se le proporcione, y generará la descripcion de la experiencia explicando la manera en que se obtuvo la puntuación." }, { "role": "user", "content": "La puntuacion es 85, la experiencia es la siguiente: empresa=ACME, puesto=Desarrollador, duracion=24; empresa=GlobalCorp, puesto=Analista, duracion=12; proporcionar la descripcion de la experiencia." } ] functions = [ { "name": "respuesta_formateada", "description": "Devuelve un objeto con la puntuacion, la experiencia y la descripcion de la experiencia.", "parameters": response_schema } ] response = openai.ChatCompletion.create( model="gpt-4-0613", messages=messages, functions=functions, function_call={"name": "respuesta_formateada"} ) print(response)
🤖 I will provide a Python code snippet that uses already defined variables for puntuacion (a float) and experiencia (a JSON array), and makes a function call to the OpenAI API with the given schema. The code ensures that the response includes the exact puntuacion and experiencia that I pass, and that the model generates the descripcion de la experiencia.python import openai openai.api_key = "sk-..." # Estos valores ya existen en el código puntuacion = 85.0 experiencia = [ {"empresa": "ACME", "puesto": "Desarrollador", "duracion": 24}, {"empresa": "GlobalCorp", "puesto": "Analista", "duracion": 12} ] response_schema = { "type": "object", "properties": { "puntuacion": {"type": "number"}, "experiencia": { "type": "array", "items": { "type": "object", "properties": { "empresa": {"type": "string"}, "puesto": {"type": "string"}, "duracion": {"type": "integer"} }, "required": ["empresa", "puesto", "duracion"] } }, "descripcion de la experiencia": {"type": "string"} }, "required": ["puntuacion", "experiencia", "descripcion de la experiencia"] } messages = [ { "role": "system", "content": ( "La función devolverá un objeto que incluya exactamente la misma " "puntuacion y experiencia proporcionadas, y además generará la " "descripcion de la experiencia explicando cómo se obtuvo la puntuación." ) }, { "role": "user", "content": ( "La puntuacion es {puntuacion}, la experiencia es: {exp}. " "Proporcionar la descripcion de la experiencia." ).format(puntuacion=puntuacion, exp=experiencia) } ] functions = [ { "name": "respuesta_formateada", "description": "Devuelve el objeto con puntuacion, experiencia y descripcion de la experiencia", "parameters": response_schema } ] response = openai.ChatCompletion.create( model="gpt-4-0613", messages=messages, functions=functions, function_call={"name": "respuesta_formateada"} ) print(response)
Hugging Face Dataset Metrics
All the conversation prompts, responses, and metrics are available to download and explore on Hugging Face dataset reddgr/talking-to-chatbots-chats: