様々なビジネスツールを作る
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("市場調査", "sharerate")
.addItem("SWOT分析", "swot")
.addItem("情報収集", "research")
.addItem("要点整理", "summarization")
.addToUi();
}
// 市場調査
function sharerate() {
// 選択テキストの取得
var doc = DocumentApp.getActiveDocument();
var selectedText = doc.getSelection().getRangeElements()[0].getElement().asText().getText()
// もしテキストが選択されていたら
if(selectedText){
var content = selectedText + "の市場においてシェア率の高い順に10個の製品名を、それぞれシェア率付きで出してください";
// 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);
}
}
// SWOT分析
function swot() {
// 選択テキストの取得
var doc = DocumentApp.getActiveDocument();
var selectedText = doc.getSelection().getRangeElements()[0].getElement().asText().getText()
// もしテキストが選択されていたら
if(selectedText){
var content = selectedText + "のSWOT分析を行ってください";
// 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);
}
}
// 情報収集
function research() {
// 選択テキストの取得
var doc = DocumentApp.getActiveDocument();
var selectedText = doc.getSelection().getRangeElements()[0].getElement().asText().getText()
// もしテキストが選択されていたら
if(selectedText){
var content = selectedText + "について3段落構成、合計1500字以内で教えてください";
// 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);
}
}
// 要点整理
function summarization() {
// 選択テキストの取得
var doc = DocumentApp.getActiveDocument();
var selectedText = doc.getSelection().getRangeElements()[0].getElement().asText().getText()
// もしテキストが選択されていたら
if(selectedText){
var content = selectedText + "次の文章を要約してください。" + selectedText;
// var content = selectedText + "次の文章を小学生でもわかる言葉で要約してください。" + selectedText;
// 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);
}
}