Como integrar a API ChatGPT com o Google Docs

Mar 04 2023
ChatGPT está agora em toda parte. Você pode integrá-lo a quaisquer aplicativos e serviços.

ChatGPT está agora em toda parte. Você pode integrá-lo a quaisquer aplicativos e serviços.

Em 1º de março, a OpenAI fez um grande anúncio de que seu produto gigante ChatGPT estará disponível por meio de sua API. O modelo mais recente, “GPT-3.5-turbo” é muito mais potente que os modelos GPT-3 anteriores, e o grande fator é que é 10x mais rápido e mais barato que o modelo davinci, o que é realmente insano. Empresas e indivíduos estão correndo para incorporar esse novo recurso em suas ofertas de produtos e serviços.

Uma integração interessante a considerar é o ChatGPT no Google Docs. Esse recurso permite que os usuários gerem texto para prompts selecionados, agora ainda mais poderosos com o mais recente modelo GPT-3.5-turbo. Neste artigo, forneceremos um guia direto com o código-fonte sobre como integrar o ChatGPT no Google Docs.

Etapa 1: Inscreva-se para acesso à API OpenAI
Para aproveitar o ChatGPT, primeiro você deve se inscrever para acesso à API OpenAI. Ao se inscrever, você receberá uma chave de API no menu “Exibir chave de API”, que usará para acessar a API OpenAI. Isso deve ser mantido privado e seguro, pois é sua porta de entrada para acessar os imensos recursos de rede neural do OpenAI.

Etapa 2: Escreva o código no menu de extensões do Google Docs
Assim que tiver sua chave de API, a próxima etapa é abrir o Google Docs e clicar na opção “Apps Script” no menu Extensões.

Você será redirecionado para a página onde deverá escrever seu código javascript.

Primeiro insira sua chave de API e o mecanismo necessário, que é “ gpt-3.5-turbo ” como constantes.

/ Constants
const OPENAI_API_KEY = <API KEY HERE>;
const ENGINE_TYPE = "gpt-3.5-turbo"; 
//gpt-3.5-turbo is the ChatGPT API model

// A custom menu in Google Docs interface
function onOpen() {
  DocumentApp.getUi().createMenu("ChadGPT")
      .addItem("Generate study notes", "generateNotes")
      .addItem("Generate a fiction story", "generateStory")
      .addToUi();
}

// Generates story based on the selected text and adds it to the document
function generateStory() {
  const doc = DocumentApp.getActiveDocument();
  const selectedText = doc.getSelection().getRangeElements()[0].getElement().asText().getText();
  const body = doc.getBody();
  const prompt = "Act as a fiction writer. Write a 1000 words story on the topic" + selectedText;
  const temperature = 0;
  const maxTokens = 1500;

  const requestBody = {
    model: ENGINE_TYPE,
    messages: [{role: "user", content: prompt}],
    temperature,
    max_tokens: maxTokens,
  };

  const requestOptions = {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      Authorization: "Bearer " + OPENAI_API_KEY,
    },
    payload: JSON.stringify(requestBody),
  };


  const response = UrlFetchApp.fetch("https://api.openai.com/v1/chat/completions", requestOptions);
  const responseText = response.getContentText();
  const json = JSON.parse(responseText);
  const generatedText = json['choices'][0]['message']['content'];
  Logger.log(generatedText);
  body.appendParagraph(generatedText.toString());
}



// Generates responses based on the selected text and adds it to the document using ChatGPT API
function generateNotes() {
  const doc = DocumentApp.getActiveDocument();
  const selectedText = doc.getSelection().getRangeElements()[0].getElement().asText().getText();
  const body = doc.getBody();
  const prompt = "Generate a study notes on " + selectedText;
  const temperature = 0;
  const maxTokens = 1500;

  const requestBody = {
    model: ENGINE_TYPE,
    messages: [{role: "user", content: prompt}],
    temperature,
    max_tokens: maxTokens,
  };

  const requestOptions = {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      Authorization: "Bearer " + OPENAI_API_KEY,
    },
    payload: JSON.stringify(requestBody),
  };

const response = UrlFetchApp.fetch("https://api.openai.com/v1/chat/completions", requestOptions);
  const responseText = response.getContentText();
  const json = JSON.parse(responseText);
  const generatedText = json['choices'][0]['message']['content'];
  Logger.log(generatedText);
  body.appendParagraph(generatedText.toString());
}

Este é o resultado:

Em conclusão , o anúncio da OpenAI do modelo GPT-3.5-turbo ampliou ainda mais os limites da tecnologia AI. Com a integração do ChatGPT no Google Docs, os usuários podem aproveitar essa nova tecnologia inovadora para gerar saídas de texto poderosas e de alta qualidade.

Aqui está o código completo:

// Constants
const OPENAI_API_KEY = <API KEY HERE>;
const ENGINE_TYPE = "gpt-3.5-turbo"; 
//gpt-3.5-turbo is the ChatGPT API model

// A custom menu in Google Docs interface
function onOpen() {
  DocumentApp.getUi().createMenu("ChadGPT")
      .addItem("Generate study notes", "generateNotes")
      .addItem("Generate a fiction story", "generateStory")
      .addToUi();
}


// Generates story based on the selected text and adds it to the document
function generateStory() {
  const doc = DocumentApp.getActiveDocument();
  const selectedText = doc.getSelection().getRangeElements()[0].getElement().asText().getText();
  const body = doc.getBody();
  const prompt = "Act as a fiction writer. Write a 1000 words story on the topic" + selectedText;
  const temperature = 0;
  const maxTokens = 1500;

  const requestBody = {
    model: ENGINE_TYPE,
    messages: [{role: "user", content: prompt}],
    temperature,
    max_tokens: maxTokens,
  };

  const requestOptions = {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      Authorization: "Bearer " + OPENAI_API_KEY,
    },
    payload: JSON.stringify(requestBody),
  };


  const response = UrlFetchApp.fetch("https://api.openai.com/v1/chat/completions", requestOptions);
  const responseText = response.getContentText();
  const json = JSON.parse(responseText);
  const generatedText = json['choices'][0]['message']['content'];
  Logger.log(generatedText);
  body.appendParagraph(generatedText.toString());
}



// Generates responses based on the selected text and adds it to the document using ChatGPT API
function generateNotes() {
  const doc = DocumentApp.getActiveDocument();
  const selectedText = doc.getSelection().getRangeElements()[0].getElement().asText().getText();
  const body = doc.getBody();
  const prompt = "Generate a study notes on " + selectedText;
  const temperature = 0;
  const maxTokens = 1500;

  const requestBody = {
    model: ENGINE_TYPE,
    messages: [{role: "user", content: prompt}],
    temperature,
    max_tokens: maxTokens,
  };

  const requestOptions = {
    method: "POST",
    headers: {
      "Content-Type": "application/json",
      Authorization: "Bearer " + OPENAI_API_KEY,
    },
    payload: JSON.stringify(requestBody),
  };


  const response = UrlFetchApp.fetch("https://api.openai.com/v1/chat/completions", requestOptions);
  const responseText = response.getContentText();
  const json = JSON.parse(responseText);
  const generatedText = json['choices'][0]['message']['content'];
  Logger.log(generatedText);
  body.appendParagraph(generatedText.toString());
}

Assine nosso boletim informativo semanal gratuito . Siga-nos no Twitter , LinkedIn , YouTube e Discord .

Interessado em dimensionar sua inicialização de software ? Conheça o Circuito .