{"id":25,"date":"2025-10-23T10:25:20","date_gmt":"2025-10-23T10:25:20","guid":{"rendered":"https:\/\/pulki.es\/blog\/?p=25"},"modified":"2025-10-23T10:25:20","modified_gmt":"2025-10-23T10:25:20","slug":"conversacion-con-la-api-de-openai","status":"publish","type":"post","link":"https:\/\/pulki.es\/blog\/index.php\/2025\/10\/23\/conversacion-con-la-api-de-openai\/","title":{"rendered":"Conversaci\u00f3n con la API de OpenAI"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Cuando conversamos con ChatGPT, cada respuesta del modelo puede ser influenciada por las interacciones previas con el usuario. En la API de OpenAI, una <a href=\"https:\/\/platform.openai.com\/docs\/api-reference\/conversations\/create\">conversaci\u00f3n<\/a> busca emular esta caracter\u00edstica. En la siguiente entrada, veremos c\u00f3mo crear una conversaci\u00f3n y c\u00f3mo integrarla a nuestras consultas para tener una interacci\u00f3n contexto-dependiente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em><strong>Creando una conversaci\u00f3n&#8230;<\/strong><\/em><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">El primer paso para que las respuestas del modelo dependan del historial de conversaci\u00f3n es crear una conversaci\u00f3n. Para llevar a cabo esto, siguiendo la <a href=\"https:\/\/platform.openai.com\/docs\/api-reference\/conversations\/create\">documentaci\u00f3n oficial<\/a>, una consulta tipo podr\u00eda ser:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl https:\/\/api.openai.com\/v1\/conversations \\<br>-H \"Content-Type: application\/json\" \\<br>-H \"Authorization: Bearer $OPENAI_API_KEY\" \\<br>-d '{<br>\"metadata\": {\"topic\": \"demo\"},<br>\"items\": &#91;<br>{<br>\"type\": \"message\",<br>\"role\": \"user\",<br>\"content\": \"Hello!\"<br>}<br>]<br>}'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">donde $OPENAI_API_KEY es nuestra API KEY. En este sentido, al ejecutarla, una respuesta tipo podr\u00eda tener el siguiente formato, <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>{\n  \"id\": \"conv_123\",\n  \"object\": \"conversation\",\n  \"created_at\": 1741900000,\n  \"metadata\": {\"topic\": \"demo\"}\n}<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">de esta respuesta, y para efectos de esta entrada, s\u00f3lo nos interesa el id, que en este caso es \u00abconv_123\u00bb. Una vez guardado, basta con usar ese id en cada consulta con <em>Responses API<\/em>. En la siguiente secci\u00f3n mostramos una consulta tipo usando el id de la conversaci\u00f3n.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong><em>Consultando Responses API con contexto&#8230;<\/em><\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Siguiendo el ejemplo de la <a href=\"https:\/\/platform.openai.com\/docs\/api-reference\/responses\/create\">documentaci\u00f3n<\/a>, s\u00f3lo basta con a\u00f1adir la clave <em>conversation<\/em> al <em>payload<\/em>, con el valor de nuestro id:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>curl https:\/\/api.openai.com\/v1\/responses \\\n  -H \"Content-Type: application\/json\" \\\n  -H \"Authorization: Bearer $OPENAI_API_KEY\" \\\n  -d '{\n    \"model\": \"gpt-4.1\",\n    \"conversation\" : \"conv_123\",\n    \"input\": \"Tell me a three sentence bedtime story about a unicorn.\"\n  }'<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">As\u00ed, el modelo responder\u00e1 con contexto, pero este es finito: cada modelo tiene una ventana de contexto m\u00e1xima. Si la conversaci\u00f3n la rebasa, los mensajes m\u00e1s antiguos quedan fuera y el modelo deja de tenerlos en cuenta.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Jos\u00e9 Miguel Mu\u00f1oz Urra \u2013\u00a0<a href=\"mailto:jmunozu@pulki.es\">jmunozu@pulki.es<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Cuando conversamos con ChatGPT, cada respuesta del modelo puede ser influenciada por las interacciones previas con el usuario. En la API de OpenAI, una conversaci\u00f3n busca emular esta caracter\u00edstica. En la siguiente entrada, veremos c\u00f3mo crear una conversaci\u00f3n y c\u00f3mo integrarla a nuestras consultas para tener una interacci\u00f3n contexto-dependiente. Creando una conversaci\u00f3n&#8230; El primer paso [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-25","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/pulki.es\/blog\/index.php\/wp-json\/wp\/v2\/posts\/25","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/pulki.es\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/pulki.es\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/pulki.es\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/pulki.es\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=25"}],"version-history":[{"count":1,"href":"https:\/\/pulki.es\/blog\/index.php\/wp-json\/wp\/v2\/posts\/25\/revisions"}],"predecessor-version":[{"id":26,"href":"https:\/\/pulki.es\/blog\/index.php\/wp-json\/wp\/v2\/posts\/25\/revisions\/26"}],"wp:attachment":[{"href":"https:\/\/pulki.es\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=25"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/pulki.es\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=25"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/pulki.es\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=25"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}