<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/" version="2.0">
    <channel>
        
        <title>
            <![CDATA[ chatgpt - freeCodeCamp.org ]]>
        </title>
        <description>
            <![CDATA[ Descubre miles de cursos de programación escritos por expertos. Aprende Desarrollo Web, Ciencia de Datos, DevOps, Seguridad y obtén asesoramiento profesional para desarrolladores. ]]>
        </description>
        <link>https://www.freecodecamp.org/espanol/news/</link>
        <image>
            <url>https://cdn.freecodecamp.org/universal/favicons/favicon.png</url>
            <title>
                <![CDATA[ chatgpt - freeCodeCamp.org ]]>
            </title>
            <link>https://www.freecodecamp.org/espanol/news/</link>
        </image>
        <generator>Eleventy</generator>
        <lastBuildDate>Mon, 25 May 2026 15:27:06 +0000</lastBuildDate>
        <atom:link href="https://www.freecodecamp.org/espanol/news/tag/chatgpt/rss.xml" rel="self" type="application/rss+xml" />
        <ttl>60</ttl>
        
            <item>
                <title>
                    <![CDATA[ Cómo integrar ChatGPT con Google Sheets usando Google Apps Script ]]>
                </title>
                <description>
                    <![CDATA[ Bienvenido a este tutorial sobre cómo integrar ChatGPT con Google Spreadsheets usando la API de GPT y Google Apps Script. Crearemos dos fórmulas personalizadas, GPT_SUMMARY y GPT_SIMPLIFY. Puedes usar  GPT_SUMMARY para resumir un pasaje grande o un texto en viñetas para una fácil lectura. Y puedes usar GPT_SIMPLIFY para ]]>
                </description>
                <link>https://www.freecodecamp.org/espanol/news/como-integrar-chatgpt-con-google-sheets-usando-google-apps-script/</link>
                <guid isPermaLink="false">664d686426bf7b0404c5d9ec</guid>
                
                    <category>
                        <![CDATA[ chatgpt ]]>
                    </category>
                
                <dc:creator>
                    <![CDATA[ Elias Ezequiel Pereyra Gomez ]]>
                </dc:creator>
                <pubDate>Tue, 18 Jun 2024 01:31:57 +0000</pubDate>
                <media:content url="https://www.freecodecamp.org/espanol/news/content/images/2024/05/GPT-IN-SHeets.png" medium="image" />
                <content:encoded>
                    <![CDATA[ <p data-test-label="translation-intro">
        <strong>Artículo original:</strong> <a href="https://www.freecodecamp.org/news/create-chat-gpt-formulas-in-google-sheets/" target="_blank" rel="noopener noreferrer" data-test-label="original-article-link">How to Integrate ChatGPT with Google Sheets Using Google Apps Script</a>
      </p><p>Bienvenido a este tutorial sobre cómo integrar ChatGPT con Google Spreadsheets usando la API de GPT y Google Apps Script.</p><p>Crearemos dos fórmulas personalizadas, <code>GPT_SUMMARY</code> y <code>GPT_SIMPLIFY</code>. Puedes usar <code>GPT_SUMMARY</code> para resumir un pasaje grande o un texto en viñetas para una fácil lectura. Y puedes usar <code>GPT_SIMPLIFY</code> para simplificar el Inglés (o Español) que sea fácil de leer.</p><p>También crearemos menús con acceso a funciones que realizan las mismas tareas que las fórmulas. Luego discutiremos los pros y contras de usar fórmulas versus menús.</p><p>Al final de este tutorial, entenderás cómo usar ChatGPT en Google Sheets con Google Apps Script. También serás capaz de modificar las fórmulas y menús para conseguir según tus propias necesidades, tales como crear CVs, publicaciones de redes sociales, o cartas de presentación.</p><p>Puedes encontrar el código fuente de este proyecto en <a href="https://github.com/nibukdk/GPT_Google_Sheets_Integration">este</a> repo en Github.</p><p>Si quieres seguirlo con una versión en vídeo de este artículo, aquí lo tienes:</p><figure class="kg-card kg-embed-card" data-test-label="fitted">
        <div class="fluid-width-video-container">
          <div style="padding-top: 56.17977528089888%;" class="fluid-width-video-wrapper">
            <iframe width="356" height="200" src="https://www.youtube.com/embed/DlcJv97TZhE?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen="" title="How to Integrate ChatGPT with Google Sheets Using Apps Script?" name="fitvid0" style="box-sizing: inherit; margin: 0px; padding: 0px; border: 0px; font-style: inherit; font-variant: inherit; font-weight: inherit; font-stretch: inherit; line-height: inherit; font-family: inherit; font-optical-sizing: inherit; font-kerning: inherit; font-feature-settings: inherit; font-variation-settings: inherit; font-size: 27.5px; vertical-align: middle; position: absolute; top: 0px; left: 0px; width: 720px; height: 404.484px;"></iframe>
          </div>
        </div>
      </figure><h3 id="pre-requisitos"><strong>Pre-requisitos</strong></h3><p>Este tutorial no es para principiantes en Apps Script o JavaScript. No estaré explicando cada método o clase usada en el código. Esto tampoco es un tutorial sobre cómo usar y optimizar ChatGPT – sino que nos enfocaremos en cómo integrar ChatGPT en Google Sheets.</p><h4 id="-para-qui-n-es-este-tutorial"><strong>¿Para quién es este tutorial?</strong></h4><p>Este tutorial es para usuarios intermedios a avanzados quienes tienen un entendimiento básico de Apps Script y JavaScript. Si eres nuevo a cualquiera de estos lenguajes, te recomiendo que comiences con un tutorial de principiantes antes de intentar este tutorial.</p><h2 id="paso-1-obt-n-la-clave-de-la-api-de-chatgpt"><strong>Paso 1 – Obtén la clave de la API de ChatGPT</strong></h2><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1689645559540/943d9a3e-d326-4cd9-ab45-0866898110d2.png" class="kg-image" alt="Get ChatGpt API Keys" width="1747" height="992" loading="lazy"><figcaption>Obtén la clave de la API de ChatGpt</figcaption></figure><p>Primero, si todavía no tienes una cuenta en OpenAI, necesitarás <a href="https://auth0.openai.com/u/signup/identifier?state=hKFo2SBWU2Y5U0ZjYXlDWG5LU0xhdmxhd1pCVW1wQ2ppUUp3eKFur3VuaXZlcnNhbC1sb2dpbqN0aWTZIERpalA1aER5X3hGdEl0TzlRdnlud3FJQ2NlcDduNm4zo2NpZNkgRFJpdnNubTJNdTQyVDNLT3BxZHR3QjNOWXZpSFl6d0Q">crear</a> una. Una vez que tengas una cuenta, puedes crear un nueva clave API yendo a la sección de claves API en la pestaña User (Usuario).</p><p>Haz clic en el botón Crear nueva clave secreta y copia la clave después que haya sido creado. <em>No serás capaz de ver esta clave API nuevamente, </em>así que asegúrate de copiarlo a un lugar seguro.</p><h2 id="paso-2-obt-n-los-datos-de-la-api-de-chatgpt-con-apps-script"><strong>Paso 2 – Obtén los datos de la API de ChatGpt con Apps Script</strong></h2><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1689558938459/8586ac7a-9b41-41ef-9dcd-c4297436912d.png" class="kg-image" alt="8586ac7a-9b41-41ef-9dcd-c4297436912d" width="2227" height="1027" loading="lazy"><figcaption>Muestra de una Hoja de Cálculo</figcaption></figure><p>Le puse el nombre <code>GPT_Integration</code> a mi hoja de cálculo con tres columnas: <strong>Passage</strong> (Pasaje), <strong>Simplified Passage</strong> (Pasaje Simplificado), y <strong>Summarized Text</strong> (Texto Resumido).</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1689559154810/de6ba3ed-a5af-4a23-ab45-e64bd39a48e6.png" class="kg-image" alt="How to Open Apps Script Code Editor From Spreadsheet" width="668" height="482" loading="lazy"></figure><p>Abramos el app script para ésta hoja de cálculo, renómbralo a <code>GPT_Integration</code>, y también renombra el archivo existente a <code>utils.gs</code>. Crearemos una función llamada <code>fetchData</code> allí.</p><pre><code class="language-javascript">const CHAT_GPT_API_KEY = "pega tu clave API aquí"
const BASE_URL = "https://api.openai.com/v1/chat/completions";


function fetchData(systemContent, userContent) {
  try {
    const headers = {
      "Content-Type": "application/json",
      "Authorization": `Bearer ${CHAT_GPT_API_KEY}`
    };

    const options = {
      headers,
      method: "GET",
      muteHttpExceptions: true,
      payload: JSON.stringify({
        "model": "gpt-3.5-turbo",
        "messages": [{
          "role": "system",
          "content": systemContent,
        },
        {
          "role": "user",
          "content": userContent
        },
        ],
        "temperature": 0.7
      })
    };

    const response = JSON.parse(UrlFetchApp.fetch(BASE_URL, options));
    //console.log(response);
    //console.log(response.choices[0].message.content)
    return response.choices[0].message.content;
  } catch (e) {
    console.log(e)
    SpreadsheetApp.getActiveSpreadsheet().toast("Ocurrió algún error. Por favor verifica tu fórmula o intenta nuevamente más tarde.");
    return "Ocurrió algún error. Por favor verifica tu fórmula o intenta nuevamente más tarde.";
  }
}</code></pre><p>Aquí hay algunos puntos claves a observar en el código de arriba:</p><ol><li>Pega la clave API que creaste anteriormente dentro de las comillas.</li><li>Estaremos usando la API de Chat Completions. Puedes encontrar más detalles <a href="https://platform.openai.com/docs/api-reference/chat/create">aquí</a>.</li><li>Los modelos de ChatGPT tienen diferentes roles, tales como sistema, usuario, y asistente.</li><li>El parámetro <code>systemContent</code> es donde provees un juego de roles para el sistema de GPT. Por ejemplo, podrías decir: "Eres un profesor experto en álgebra" o "Eres un escritor experto en CV".</li><li>El parámetro <code>userContent</code> es donde provees tareas a realizar para el modelo. En nuestro caso, proveeremos pasajes largos desde la hoja de cálculo para resumir y simplificar.</li><li>Estaremos usando el <a href="https://platform.openai.com/docs/models/gpt-3-5">modelo turbo GPT 3.5</a>.</li><li>Estamos silenciando las <code>HTTPExceptions</code> así podemos usar nuestro propio mensaje de error en el bloque catch.</li><li>La cadena de error es útil cuando afrontamos errores tales como <a href="https://platform.openai.com/docs/guides/rate-limits/what-are-the-rate-limits-for-our-api">Rate Limit Exceed</a>.</li></ol><p>Estamos devolviendo el contenido del objeto response de GPT que luego será manejado por nuestras fórmulas.</p><p>El objeto response de ChatGPT tiene la siguiente estructura:</p><pre><code class="language-json">{
  "id": "chatcmpl-123",
  "object": "chat.completion",
  "created": 1677652288,
  "choices": [{
    "index": 0,
    "message": {
      "role": "assistant",
      "content": "\n\nHola! ¿en qué te puedo ayudar hoy?",
    },
    "finish_reason": "stop"
  }],
  "usage": {
    "prompt_tokens": 9,
    "completion_tokens": 12,
    "total_tokens": 21
  }
}</code></pre><p>Lee más sobre cómo usar la URLFetchApp desde <a href="https://developers.google.com/apps-script/reference/url-fetch/url-fetch-app">aquí</a>.</p><h2 id="paso-3-integrar-chatgpt-como-una-f-rmula-de-sheets"><strong>Paso 3 – Integrar ChatGpt como una fórmula de sheets</strong></h2><h3 id="f-rmula-gpt-simplify"><strong>Fórmula GPT SIMPLIFY</strong></h3><p>Nuevamente, para la fórmula personalizada, crearemos un nuevo archivo llamado <code>formula</code> y luego crearemos una función llamada <code>GPT_SIMPLIFY</code>.</p><pre><code class="language-javascript">/**
 * Simplifica el párrafo dado en el término de layman.
 * @param {String} input El valor a simplificar.
 * @return Texto Simplificado.
 * @customfunction
 */
function GPT_SIMPLIFY(input) {
  console.log(input)
  const systemContent = "Simplificar el texto dado en términos de layman. Recuerda que el lector/a no es un experto en español.";
  return Array.isArray(input) ?
    input.flat().map(text =&gt; fetchData(systemContent, text)) :
    fetchData(systemContent, input);

}</code></pre><ol><li>La fórmula <code>GPT_SIMPLIFY</code> simplifica cualquier texto que se provea como entrada. La entrada a esta función son datos que vienen de la hoja de cálculos. Cuando seleccionas un rango, una celda, o múltiples celdas, los datos en el rango serán proveídos automáticamente por la hoja de cálculo a esta fórmula.</li><li>El <code>systemContent</code> se define para que se pase como el primer parámetro a la función <code>fetchData(systemContent,userContent)</code>.</li><li>Estamos verificando si la entrada es un Arreglo porque los datos que se pasan a esta función puede ser un arreglo anidado o sólo una cadena si seleccionamos múltiples celdas o una sola, respectivamente, en la hoja de cálculos.</li></ol><p>Puedes leer más sobre funciones personalizadas en esta <a href="https://developers.google.com/apps-script/guides/sheets/functions?hl=es-419">página</a>.</p><p>Ahora, adelante y aplica esta fórmula en tu hoja de cálculo. Copié algo de texto de un libro que estoy leyendo en la primer columna y apliqué la fórmula en la segunda columna llamada "Simplify Passage", así <code>=GPT_SIMPLIFY(A2)</code> para la segunda celda.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://www.freecodecamp.org/news/content/images/2023/07/gpt_simplify_formula.png" class="kg-image" alt="gpt_simplify_formula" width="600" height="400" loading="lazy"><figcaption>Aplicación de la Fórmula <code>GPT_SIMPLIFY</code></figcaption></figure><p>Nota: Asegúrate de refrescar la hoja de cálculo antes de que apliques la fórmula para sincronizar con los últimos cambios en el script.</p><h3 id="gpt-summary"><strong>GPT SUMMARY</strong></h3><p>Para resumir la fórmula, copiaremos la función <code>simplify</code> y algunas otras cosas, como puedes ver en el código de abajo.</p><pre><code class="language-javascript">/**
 * Resume el párrafo dado. Provee viñetas de 3 a 5
 *
 * @param {String} input El valor a resumir.
 * @return Texto Resumido.
 * @customfunction
 */
function GPT_SUMMARY(input) {
  console.log(input)
  const systemContent = "Resume el texto dado. Provee al menos entre 3 y casi 5 viñetas.";
  return Array.isArray(input) ?
    input.flat().map(text =&gt; fetchData(systemContent, text)) :
    fetchData(systemContent, input);

}</code></pre><p>Lo principal a notar aquí es el contenido distinto del sistema.</p><p><strong>Nota</strong>: Ya que esto no es un tutorial sobre cómo usar ChatGpt de forma óptima, proveí instrucciones como el contenido de sistema en vez de un juego de roles, y luego proveí los datos en el contenido de usuario. Puedo improvisar al suministrar roles en el contenido de sistema, y tareas así también como datos como dos roles de usuarios distintos en nuestra función <code>FetchData()</code>.</p><h3 id="error-de-l-mite-de-velocidad-de-gpt"><strong>Error de límite de velocidad de GPT</strong></h3><p>Para usuarios gratuitos, el límite de velocidad para usar la API es de <strong>3 minutos</strong>. Como tal, cuando aplicas estas fórmulas en más de tres celdas, encontrarás el error. Afortunadamente, la ejecución no se detendrá porque estamos ejecutando una cadena de error desde los datos de petición, el cual se guardarán en esas celdas.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1689574131023/70e326ac-33bd-4d75-96db-208fc27b5859.png" class="kg-image" alt="GPT Rate Limit Error" width="2178" height="321" loading="lazy"><figcaption>API rate limit error</figcaption></figure><h3 id="auto-refresco-y-error"><strong>Auto refresco y error</strong></h3><p>Además, la característica de auto-refresco de la fórmula puede forzar la re-aplicación de la fórmula en celdas que ya tienen valores satisfactorios cuando sea que las celdas fuentes se actualicen, en nuestro caso las celdas en la columna "A".</p><p>Cuando agregamos un límite de velocidad por encima del auto-refresco, puede causar una adivinanza. Técnicamente puedes hacer cambios en funciones personalizadas para acomodar tales circunstancias, pero, me gusta mantener las fórmulas livianas y eficientes. Así que, recomiendo que creemos menús personalizados y apliquemos estas funciones manualmente.</p><h2 id="paso-4-integrar-la-api-chat-de-gpt-en-funciones-de-men-de-hoja-de-estilo"><strong>Paso 4 – Integrar la API Chat de GPT en funciones de menú de hoja de estilo</strong></h2><h3 id="gpt-simplify-menu"><strong>GPT Simplify Menu</strong></h3><p>Primero, creemos otro archivo llamado <code>menu</code>. Luego, crearemos la función <code>gptSimplifyMenu</code> el cual será una alternativa a la fórmula <code>GPT_SIMPLIFY</code>.</p><pre><code class="language-javascript">
/**
 * Simplifica el párrafo dado en términos de layman.
 * @customfunction
 */
function gptSimplifyMenu() {
  try {
    // obtiene hojas y datos
    const ss = SpreadsheetApp.getActiveSheet();
    const data = ss.getDataRange().getValues();
    const lastRow = data.length;
    const lastCol = data[0].length;

    // define el role play de gpt
    const systemContent = "Simplificar el texto dado en términos de layman. Recuerda que el lector no es un experto en inglés.";


    for (let i = 1; i &lt; data.length; i++) {
      // solamente simplifica si todavía no está simplificado o si un error ocurrió previamente
      if (data[i][1] === "" || data[i][1] === "Ocurrió Algún Error. Por favor verifica tu fórmula o intenta nuevamente más tarde.") {
        data[i][1] = fetchData(systemContent, data[i][0]);
        console.log(data[i][1]);

      }
    }

    ss.getRange(1, 1, lastRow, lastCol).setValues(data);
  } catch (e) {
    console.log(e)
    SpreadsheetApp.getActiveSpreadsheet().toast("Ocurrió algún error. Por favor verifica tu fórmula o intenta nuevamente más tarde.");

  }
}</code></pre><p>Puntos claves que son distintos de entender en este código son:</p><ol><li>Estamos codificando a mano las fuentes de los datos, tales como <code>data[i][1]</code>, el cual se refiere a la segunda columna (es decir "Simplified Passage") como se muestra en la hoja de cálculo en la imagen de arriba. Esto significa que si estás usando algunas otras columnas para guardar los datos de ChatGPT, entones tendrás que hacer cambios según la columna.</li><li>Solamente solicitamos los datos cuando la celda target esté vacía o contiene un mensaje de error. Esto ayuda en evitar llamadas a la API innecesariamente.</li></ol><h3 id="agregar-una-funci-n-personalizada-como-un-men-de-la-hoja-de-c-lculo"><strong>Agregar una función personalizada como un menú de la hoja de cálculo</strong></h3><p>La función está lista para ser probada, pero todavía no aparecerá en la hoja de cálculo. Para hacerlo, necesitaremos proveer las siguientes instrucciones.</p><pre><code class="language-javascript">
/**
 * Menu crea la UI del menu en la hoja de cálculo.
 */
function createCustomMenu() {
   // define el ui del menú 
  let menu = SpreadsheetApp.getUi().createMenu("GPT Functions");
   // agrega la función al menú
   menu.addItem("GPT SIMPLIFY", "gptSimplifyMenu");
   // agrega el menú a la ui de la hoja de cálculo
  menu.addToUi();
}

/**
 * Disparador OnOpen que crea el menú
 * @param {Dictionary} e
 */
function onOpen(e) {
  createCustomMenu();
}</code></pre><p>En <code>createCustomMenu()</code>:</p><ol><li>Definimos menu con <code><a href="https://developers.google.com/apps-script/reference/base/ui#createmenucaption" rel="noopener noreferrer nofollow">SpreadsheetApp.getUi().createMenu("GPT Functions")</a></code> como Funciones de GPT, el título que aparece en la pestaña de la hoja de cálculo.</li><li>Agregamos una función al menú con <code>menu.addItem("GPT SIMPLIFY", "gptSimplifyMenu")</code>, donde el primer parámetro es el título para mostrar y el segundo es la función a llamarse cuando se presione.</li><li>Agrega el menú a la UI con <code>menu.addToUi()</code>.</li></ol><p>El disparador <a href="https://developers.google.com/apps-script/guides/triggers#onopene" rel="noopener noreferrer nofollow">onOpen</a> se ejecuta automáticamente cuando sea que el documento adjunto al script se recargue y como tal agregará un menú a la hoja de cálculo como se muestra en la imagen de abajo.</p><figure class="kg-card kg-image-card kg-width-wide"><img src="https://cdn.hashnode.com/res/hashnode/image/upload/v1689573996102/660acf86-567e-4261-96db-2a8ed1c2182c.png" class="kg-image" alt="GPT Function Menu" width="1009" height="236" loading="lazy"></figure><p>Adelante e intenta la fórmula – se aplicará solamente si la celda está vacía o pre-cargada con un mensaje de error.</p><h3 id="men-de-resumen-de-gpt"><strong>Menú de resumen de GPT</strong></h3><p>Haremos algunos cambios menores después de copiar la función <code>simplify</code> como se muestra abajo:</p><pre><code class="language-javascript">/**
 * Resume el párrafo dado. Provee de 3 a 5 viñetas
 * @customfunction
 */
function gptSummaryMenu() {
  try {
    // obtiene las hojas y los datos
    const ss = SpreadsheetApp.getActiveSheet();
    const data = ss.getDataRange().getValues();
    const lastRow = data.length;
    const lastCol = data[0].length;

    // define el rol de juego de gpt
    const systemContent = "Resume el texto dado. Provee al menos 3 y máximo 5 viñetas.";


    for (let i = 0; i &lt; data.length; i++) {
      console.log(`Inside gptSummaryMenu() for loop`)

      if (i == 0) continue;
      // solamente resume si no está resumida todavía o un error ocurrió previamente
      if (data[i][2] === "" || data[i][2] === "Ocurrió Algún Error. Por favor verifica tu fórmula o intenta nuevamente más tade.") {
        data[i][2] = fetchData(systemContent, data[i][0]);
        console.log(data[i][2]);
      }
    }

    ss.getRange(1, 1, lastRow, lastCol).setValues(data);
  } catch (e) {
    console.log(e)
    SpreadsheetApp.getActiveSpreadsheet().toast("Ocurrió algún error. Por favor verifica tu fórmula o intenta nuevamente más tarde.");
  }
}</code></pre><ol><li>El rol de sistema ha sido modificado para que abarque instrucciones de resumen.</li><li>La columna <code>target</code> para guardar datos es ahora la columna tercera.</li><li>La cadena <code>doc</code> ha sido modificada también.</li></ol><p>En cuanto para agregar esta función al menú, te lo dejaré a ti.</p><h2 id="consejos-para-modificar-el-c-digo"><strong>Consejos para modificar el código</strong></h2><p>Todo lo que necesitas hacer para tu propia fórmula como <code>=GPT_COVER_LETTER_CREATOR()</code> son las siguientes modificaciones:</p><h3 id="para-solicitar-datos"><strong>Para solicitar datos</strong></h3><p>Puedes cambiar la <code>Descripción del Contenido del Sistema debería</code> para cumplir tus requisitos, como "You write an expert cover letter for software developers".</p><p>Agrega una función más en el arreglo de mensajes:</p><pre><code class="language-json">// de esto 
[{
          "role": "system",
          "content": systemContent,
        },
        {
          "role": "user",
          "content": userContent
        },
        ], 

// a
[{
          "role": "system",
          "content": "Escribes una carta de presentación  experta para desarrolladores de software",
        },
        {
          "role": "user",
          "content": "Escríbeme una carta de presentación para este anuncio de trabajo"
        },
        {
          "role": "user",
          "content": userContent // este es el anuncio de trabajo desde la hoja de cálculo
        },
        ],</code></pre><p>También puedes agregar otro ítem de lista para incluir tus habilidades y experiencias.</p><h3 id="otras-funciones"><strong>Otras funciones</strong></h3><p>Asegúrate que tu celdas/columnas fuentes y celdas/columnas target estén indexados correctamente (por ejemplo, si no estás usando la primera columna como la celda fuente y el segundo para guardar los datos).</p><h2 id="resumen"><strong>Resumen</strong></h2><p>En este tutorial, aprendiste cómo usar el Apps Script de Google para solicitar respuestas de ChatGPT desde la API y guardarlos en hojas de cálculo usando fórmulas personalizadas y menús personalizados.</p><p>Comenzamos creando un nuevo proyecto de Apps Script de Google y agregando la API de ChatGPT. Luego, escribimos un script que solicitaría una respuesta de ChatGPT para una ventana dada. Guardamos la respuesta usando una fórmula personalizada en una celda de hoja de cálculo.</p><p>También creamos un ítem de menú personalizado que nos permitiría solicitar una respuesta de ChatGPT desde cualquier celda en la hoja de cálculo. Este ítem de menú abriría un botón para solicitar la respuesta.</p><p>El paso final era compartir la hoja de cálculo con los demás, de esa forma podrían usar las fórmulas personalizadas y menús para solicitar respuestas de ChatGPT.</p><p>Espero que hayas disfrutado de este artículo y lo hayas encontrado útil. Si tienes alguna pregunta, házmelo saber.</p><p>Soy <strong><strong>Nibesh Khadka, </strong></strong>Freelancer con especialización en automatizar productos de Google con Apps Script. Contáctame si necesitas mis servicios en me@nibeshkhadka.com.</p> ]]>
                </content:encoded>
            </item>
        
    </channel>
</rss>
