Con este sencillo script que puedes adaptar a tu gusto, integrarás GPT-3 de Open AI en una hoja de cálculo de Google Sheet.
Solo necesitas abrir en el menú de extensiones la opción para crear App Scripts y pegar el siguiente código.
/**Esta hoja agrega una opción a la barra superior de Google Sheet
* para completar el rango seleccionado de la hoja usando
* el modelo de lenguaje GPT-3 de OpenAI.
*/
var API_KEY = "OPEN-AI API KEY";
var NUM_TOKENS = 64;
function onOpen() {
var spreadsheet = SpreadsheetApp.getActive();
var menuItems = [
{name: 'Rellena con GPT-3', functionName: 'gpt3fill'},
];
spreadsheet.addMenu('GPT3', menuItems);
}
function _callAPI(prompt) {
var data = {
'prompt': prompt,
'max_tokens': NUM_TOKENS,
'temperature': 0.7,
};
var options = {
'method' : 'post',
'contentType': 'application/json',
'payload' : JSON.stringify(data),
'headers': {
Authorization: 'Bearer ' + API_KEY,
},
};
response = UrlFetchApp.fetch(
'https://api.openai.com/v1/engines/davinci-instruct-beta-v3/completions',
options,
);
return JSON.parse(response.getContentText())['choices'][0]['text']
}
function _parse_response(response) {
var parsed_fill = response.slice(2, response.indexOf('Q: '));
if (parsed_fill.charAt(parsed_fill.length - 1) == '.') {
parsed_fill = parsed_fill.slice(0, -1);
}
return parsed_fill;
}
function get_x_of_y(x, y) {
var prompt = "Escribe como será el horoscopo de la semana del signo " + y + " en " + x + "?"
var response = _callAPI(prompt);
var parsed_response = _parse_response(response);
return parsed_response;
}
function gpt3fill() {
/*
Resalte un rango de X x Y donde la columna más a la izquierda contiene los horoscopos
Y la fila de encabezado de una columna indica el tipo de predicción.
Selecciona Completa los valores.
*/
var spreadsheet = SpreadsheetApp.getActive();
var range = spreadsheet.getActiveRange();
var num_rows = range.getNumRows();
var num_cols = range.getNumColumns();
for (var x=2; x<num_cols + 1; x++) {
property_name = range.getCell(1, x).getValue();
for (var i=2; i<num_rows + 1; i++) {
entity_name = range.getCell(i,1).getValue();
fill_cell = range.getCell(i, x);
result = get_x_of_y(property_name, entity_name);
fill_cell.setValue([result]);
}
}
}
- El paso obligatorio es introducir tu API KEY: En la Línea 6 del código, en donde debes cambiar el valor: «OPEN-AI API KEY»; por tu clave API de OpenAI que será algo similar a esto «sk-S2gMdEfMK78bOXsC2……………………….AH2BMsVtJb»
- El número de Tokens que marca el tamaño de la respuesta se asigna en la línea 8 en donde hemos indicado 64.
- El modelo utilizado es «davinci-instruct-beta-v3» esto se indica en la dirección URL del «endpoint» que puedes modificar en la línea 34.
- Para ver el resultado deberás crear una hoja de cálculo con los datos del ejemplo en el que en la columna A se indican los horoscopos y en la fila 1 las predicciones que queremos. El prompt que vamos a enviar a GPT3 es «var prompt = «Escribe cómo será el horóscopo de la semana del signo » + y + » en » + x + «?»» siéntete libre de modificar los datos de las columnas y/o filas y cambiar el «prompt» para obtener otros resultados.
- Selecciona las celdas A1 hasta E5 y el contenido será rellenado por GPT3.