LoginSignup
0
0

More than 1 year has passed since last update.

Google ドキュメントでChatGPTを使う(Google Apps Scriptを使ってChatGPTを操作する) 2

Last updated at Posted at 2023-03-11

記事の自動生成機能を作る

code.gs
// API keyとmodelを設定
var apiKey = "こちらにOpenAIのAPI Keyを貼り付ける";
var model = "gpt-3.5-turbo";
var url = "https://api.openai.com/v1/chat/completions";

// メニューを追加
function addMenu() {
  DocumentApp.getUi().createMenu("ChatGPT")
  .addItem("記事を生成する", "generateArticle")
  .addToUi();
}

function generateArticle() {
  // 選択テキストの取得 
  var doc = DocumentApp.getActiveDocument();
  var selectedText = doc.getSelection().getRangeElements()[0].getElement().asText().getText()

  // もしテキストが選択されていたら
  if(selectedText){
    var content = selectedText + "についての記事を300文字以内で書いてください";

    // ChatGPTに投げる質問/必要な情報を設定
    var temperature= 0; // 生成する応答の多様性
    var maxTokens = 2048; // 生成する応答の最大トークン数(文字数)

    const requestBody = {
      "model": model,
      "messages": [{'role': 'user', 'content': content}],
      "temperature": temperature,
      "max_tokens": maxTokens,
    };
    const requestOptions = {
      "method": "POST",
      "headers": {
        "Content-Type": "application/json",
        "Authorization": "Bearer "+apiKey
      },
      "payload": JSON.stringify(requestBody)
    }

    // APIを叩いてChatGPTから回答を取得
    var response = UrlFetchApp.fetch(url, requestOptions);
    var responseText = response.getContentText(); 
    var json = JSON.parse(responseText);
    var result_text = json.choices[0].message.content.trim();

    //ドキュメントに出力
    var addparagraph = doc.getBody().appendParagraph(result_text);
  }
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0