Como usar o ChatGPT no Google Docs
Uma solução que vai te ajudar no dia a dia.
Neste guia, você aprenderá como criar seu próprio plug-in AI para uso com o Google Docs. Para fazer isso, usaremos os modelos de linguagem do OpenAI, GPT-3.5 ou GPT-4, que estão alimentando o ChatGPT. Vamos mergulhar de cabeça.
Etapa 1: criar um novo documento e nomeá-lo
Crie um novo documento do Google ou use um atalho: digite “docs.new” na barra de endereços do navegador.
O plug-in AI que estamos prestes a criar funcionará apenas neste documento, então nomeie-o para poder encontrá-lo novamente mais tarde (neste demo, chamei o meu de “Assistente AI”).


Etapa 2: criar um novo Apps Script e nomeá-lo
Navegue até “Extensões” > “Apps Scripts” e, no canto superior esquerdo, dê um nome ao seu novo Apps Script.
Apps Script é uma linguagem de script que nos permite automatizar tarefas em Documentos ou Planilhas.


Etapa 3: adicionar chaves de API OpenAI
Para usar o GPT 3.5 ou GPT 4 da OpenAI (os modelos que alimentam sua interface ChatGPT), precisamos adicionar uma chave de API ao nosso Google App Script.
Você pode usar uma chave de API OpenAI existente ou criar uma nova em sua conta OpenAI navegando até “platform.openai.com”, clicando em “Chaves de API” ou “Exibir chaves de API” no menu da sua conta e criando uma nova API chave.


Depois de ter sua chave de API OpenAI pronta, navegue até “Configurações do projeto” em seu App Script…

… e role até “Propriedades do script” e clique em “Adicionar propriedade do script”

Nomeie a nova propriedade “OPENAI_API_KEY” e copie/cole sua chave de API OpenAI no campo “Valor”.

Passo 4: Adicionando o script
Por fim, volte ao editor de código do App Script (o símbolo “<>” no menu à esquerda) e clique em “Code.gs”, o arquivo do script principal que vamos editar agora:

Substitua as 3 linhas de código em Code.gs por isto:const MODEL_TYPE = "gpt-3.5-turbo" ;
const OPENAI_API_KEY = Serviço de propriedades . getScriptProperties (). getProperty ( 'OPENAI_API_KEY' );
função onOpen ( ) {
DocumentApp . getUi (). createMenu ( "Ferramentas de IA" )
. addItem ( "Criar sugestões de título/legenda" , "generateTitles" )
. addItem ( "Criar história em quadrinhos de 4 painéis" , ")
. addItem ( "Usar texto realçado como prompt" , "textAsPrompt" )
. adicionarToUi ();
}
function generateTitles ( ) {
const doc = DocumentApp . getActiveDocument ();
const userText = doc. obterSeleção (). getRangeElements ()[ 0 ]. getElement (). asText (). getText ();
const prompt = `Crie vários títulos e subtítulos para o seguinte tópico: " ${userText}"` ;
callOpenAiAPI (prompt, doc);
}
function fourPanelStory ( ) {
const doc = DocumentApp . getActiveDocument ();
const userText = doc. getSelection (). getRangeElements ()[ 0 ]. getElement (). asText (). getText ();
const prompt = `Use esta ideia para criar uma história em quadrinhos composta por quatro imagens, mas responda apenas com breves legendas de imagem para as quatro imagens: ${userText} \n` ;
callOpenAiAPI (prompt, doc);
}
function textAsPrompt ( ) {
const doc = DocumentApp . getActiveDocument ();
const userText = doc. obterSeleção (). getRangeElements ()[ 0 ]. getElement (). asText (). getText ();
const prompt = ` ${userText} ` ;
callOpenAiAPI (prompt, doc);
}
function callOpenAiAPI ( prompt, doc ) { corpo
const = doc. getCorpo ();
consttemperatura = 0,83 ;
const maxTokens = 2060 ;
const requestBody = {
modelo : MODEL_TYPE ,
mensagens : [{ função : "usuário" , conteúdo : prompt}],
temperatura,
max_tokens : maxTokens,
};
const options = {
method : "POST" ,
headers : {
"Content-Type" : "application/json" ,
Authorization : "Bearer " + OPENAI_API_KEY ,
},
carga útil : JSON . stringify (requestBody),
}; resposta
const = UrlFetchApp . fetch ( "https://api.openai.com/v1/chat/completions" , opções);
const respostaTexto = resposta. getContentText ();
constjson = JSON . parse (responseText);
const geradoTexto = json[ 'escolhas' ][ 0 ][ 'mensagem' ][ 'conteúdo' ];
Registrador . log (generatedText);
corpo.appendParagraph (generatedText. toString ());
}
Seu arquivo Code.gs agora deve se parecer com o seguinte:

Passo 5: Salve o script e execute-o
É hora de salvar seu trabalho e testar o script. Clique no pequeno item 💾 no menu superior para salvar o App Script.
Isso ativará o botão "Executar". Certifique-se de que diz “onOpen” ao lado (esta é a função que queremos executar quando o script for iniciado). Clique em “Executar”.

Agora você será solicitado a revisar as permissões do script. Como chamaremos um serviço externo (o servidor OpenAI), o Google nos pergunta se confiamos nesse script e em seu serviço externo.
Já que o fazemos, clique em “Avançado” e depois em “Ir para [nome do seu script] (inseguro)”. Faça login com sua conta e clique em “Permitir”.
A tag “insegura” é a suposição padrão do Google aqui, é segura de usar (bem, lembre-se de que você pagará pelas gerações de texto com base em tokens: 1.000 tokens gerados pelo GPT 3.5 custarão $ 0,002, se você mudar para o GPT 4 então você terá que pagar $ 0,06 pela mesma quantidade de tokens)



Etapa 6: testar o script e personalizá-lo
Depois de recarregar seu Google Doc inicial, você verá um novo menu chamado “AI Tools”.

Três itens de menu mostram algumas das possibilidades que você tem agora dentro do seu Google Doc. Se você destacar algo e clicar em um dos itens, o texto destacado será processado de acordo.


Costumização
Agora, é hora de alterar o script de acordo com suas necessidades. Então, vamos dar uma olhada rápida no código (navegue de volta para “Extensions” > “App Scripts” e escolha o arquivo com o qual acabamos de trabalhar: “Code.gs”)
Você encontrará uma função chamada “onOpen” que é responsável por criar o novo menu e os três itens de menu.função onOpen ( ) {
DocumentApp . getUi (). createMenu ( "Ferramentas de IA" )
. addItem ( "Criar sugestões de título/legenda" , "generateTitles" )
. addItem ( "Criar história em quadrinhos de 4 painéis" , "fourPanelStory" )
. addItem ( "Usar texto realçado como prompt" , "textAsPrompt" )
. adicionarToUi ();
}
Cada item de menu tem uma função correspondente listada ao lado do nome do item de menu. Por exemplo, o item de menu
“Criar sugestões de título/legenda”
vem com uma função chamada
“gerar títulos”
Se você rolar um pouco para baixo, verá esta função e como o prompt subjacente é definido.function generateTitles ( ) {
const doc = DocumentApp . getActiveDocument ();
const userText = doc. obterSeleção (). getRangeElements ()[ 0 ]. getElement (). asText (). getText ();
const prompt = `Crie vários títulos e subtítulos para o seguinte tópico: " ${userText} "` ;
callOpenAiAPI (prompt, doc);
}
Nesse caso, sempre que o item de menu “Criar sugestões de título/legenda” for clicado, a área de texto destacada momentaneamente será combinada com esse prompt e enviada para o modelo de complementação de texto GPT 3.5 do OpenAI.
Aqui está o prompt sozinho:Crie vários títulos e subtítulos para o seguinte tópico: "${userText}"
A parte ${userText} é o espaço reservado para o texto realçado do seu Documento Google.
Agora você pode alterar o nome do menu, seus itens e os prompts correspondentes.
Alteração de tokens máximos e temperatura
Você também pode alterar as configurações para sua chamada API OpenAI aqui:function callOpenAiAPI ( prompt, doc ) { corpo
const = doc. getCorpo (); temperatura
constante = 0,83 ;
const maxTokens = 2060 ;
const requestBody = {
modelo : MODEL_TYPE ,
mensagens : [{ função : "usuário" , conteúdo : prompt}],
temperatura,
max_tokens : maxTokens,
};
É isso.