Advertisement
Guest User

Google Slides powered by ChatGPT

a guest
Mar 6th, 2023
46
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. // https://nitter.net/1littlecoder/status/1632748783225167876
  2. // https://github.com/amrrs/chatgpt-google-slides/blob/main/appscript.js
  3. // Constants
  4. const API_KEY = "sk-Lixxxxx";
  5. const MODEL_TYPE = "gpt-3.5-turbo"; //chatGPT model
  6.  
  7. // Creates a custom menu in Google Slides
  8. function onOpen() {
  9.     SlidesApp.getUi().createMenu("ChatGPT")
  10.         .addItem("Generate Prompt", "generatePrompt")
  11.         .addItem("Generate Tweets", "generateTweets")
  12.         .addToUi();
  13.   }
  14.  
  15.   // Generates prompt based on the selected text and adds it to a slide
  16.   function generateTweets() {
  17.     const presentation = SlidesApp.getActivePresentation();
  18.     const selectedText = presentation.getSelection().getCurrentPage().getShapes()[0].getText().asString();
  19.     const slide = presentation.getSelection().getCurrentPage();
  20.     const prompt = "Generate 3 Tweets on " + selectedText;
  21.     const temperature = 0;
  22.     const maxTokens = 2060;
  23.  
  24.     const requestBody = {
  25.       model: MODEL_TYPE,
  26.       messages: [{role: "user", content: prompt}],
  27.       temperature,
  28.       max_tokens: maxTokens,
  29.     };
  30.  
  31.     const requestOptions = {
  32.       method: "POST",
  33.       headers: {
  34.         "Content-Type": "application/json",
  35.         Authorization: "Bearer " + API_KEY,
  36.       },
  37.       payload: JSON.stringify(requestBody),
  38.     };
  39.  
  40.  
  41.     const response = UrlFetchApp.fetch("https://api.openai.com/v1/chat/completions", requestOptions);
  42.     const responseText = response.getContentText();
  43.     const json = JSON.parse(responseText);
  44.     const generatedText = json['choices'][0]['message']['content'];
  45.     Logger.log(generatedText);
  46.     slide.insertTextBox(generatedText.toString());
  47.   }
  48.  
  49.   // Generates prompt based on the selected text and adds it to a slide
  50.   function generatePrompt() {
  51.     const presentation = SlidesApp.getActivePresentation();
  52.     const selectedText = presentation.getSelection().getCurrentPage().getShapes()[0].getText().asString();
  53.     const slide = presentation.getSelection().getCurrentPage();
  54.     const prompt = "Generate 3 points on " + selectedText;
  55.     const temperature = 0;
  56.     const maxTokens = 2060;
  57.  
  58.     const requestBody = {
  59.       model: MODEL_TYPE,
  60.       messages: [{role: "user", content: prompt}],
  61.       temperature,
  62.       max_tokens: maxTokens,
  63.     };
  64.  
  65.     const requestOptions = {
  66.       method: "POST",
  67.       headers: {
  68.         "Content-Type": "application/json",
  69.         Authorization: "Bearer " + API_KEY,
  70.       },
  71.       payload: JSON.stringify(requestBody),
  72.     };
  73.  
  74.  
  75.     const response = UrlFetchApp.fetch("https://api.openai.com/v1/chat/completions", requestOptions);
  76.     const responseText = response.getContentText();
  77.     const json = JSON.parse(responseText);
  78.     const generatedText = json['choices'][0]['message']['content'];
  79.     Logger.log(generatedText);
  80.     slide.insertTextBox(generatedText.toString());
  81.   }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement