GooleSpreadSheetでGAS(GoogleAppScript)とopenAIのAPIで色々質問してみた
最新の料金一覧
めんどいのでchatGPTに要約してもらおう
↓レガシー(古い)モデルの価格の比較はこちら。今回は GPT4の8KとGPT3.5Trubo4Kを使う
ざっくりコスト感。
昔のDavinchiちゃんを100とする。
①Ada 1.5
②Babagge 2
③Curie 10
④Davinci 100
⑤GPT3.5Turbo-4k 1.5
⑥GPT3.5Turbo-16k 3
⑦GPT4-8k 50
⑧GPT4-32k 100
昔は①~④までだったが、openAI社の企業努力の結果、低コストかつ高性能なAPI連携ができるようになった!
16kとか4kは何か? というと、質問できる長さの上限ね。
最高スペックのGPT4-32Kは32000のトークンが1度に送ることができて、日本語だとだいたい7割、2万5000文字位を一度に送れる。
本一冊分を処理して、それを翻訳して! って事が⑧の最新版なら可能だ。
※もちろん送ったトークンが多いほど金は多く取られる
試してないけど、コードインタプリタや外部URLでPDF読ませたときって料金発生するのかな?
chatGPTにはウェブやアップロードファイルのURLの質問分だけトークン消費して、Pythonなどで読み込んで文字処理する部分はトークン対象外ならいいな!
いま時点のAPIだとコードインタプリタやプラグイン使えないけどね、いづれ来るでしょ。
const SECRET_KEY = "sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX";
//const SECRET_KEY = PropertiesService.getScriptProperties().getProperty('openAI_APIKEY');
const MODEL_NAME_LIST = ["text-ada-001","text-babbage-001","text-curie-001","text-davinci-003","gpt-3.5-turbo-0613","gpt-4-0613" ];
//gpt-3.5-turbo-16k-0613,gpt-4-32k-0613は高コストで長文を使わないので適用外
const MODEL_TEMP = 0.3;
var model_id = 0;
function GPT(arg_prompt,arg_model_id = 0, arg_option="") {
arg_model_id = Number( arg_model_id );
if( arg_model_id < 0 ){ arg_model_id=0; }
else if( arg_model_id >= MODEL_NAME_LIST.length ){ arg_model_id = MODEL_NAME_LIST.length-1; }
if( arg_model_id < 4 ){
return GPT3(arg_prompt,arg_model_id, arg_option); //0~3: "text-ada-001","text-babbage-001","text-curie-001","text-davinci-003"
}
return GPT4(arg_prompt,arg_model_id, arg_option) //4~5: "gpt-3.5-turbo-0613","gpt-4-0613"
}
function GPT4(arg_prompt,arg_model_id, arg_option="") {
const GPT4URL = 'https://api.openai.com/v1/completions';
//systemはロールモデル(回答のキャラ設定)、userは質問を設定する
const messages = [{"role": "system", "content": arg_option},{'role': 'user', 'content': arg_prompt}];
const headers = { //OpenAIのAPIリクエストに必要なヘッダー情報を設定
'Authorization':'Bearer '+ SECRET_KEY,
'Content-type': 'application/json',
'X-Slack-No-Retry': 1
};
const options = { //GPT-4のモデルやトークン上限、プロンプトをオプションに設定
'muteHttpExceptions' : true,
'headers': headers,
'method': 'POST',
'payload': JSON.stringify({
'model': MODEL_NAME_LIST[arg_model_id], //4:"gpt-3.5-turbo-0613",5:"gpt-4-0613"
'max_tokens' : 2048,
'temperature' : 0.9,
'messages': arg_prompt})
};
//OpenAIのGPT-4にAPIリクエストを送り、結果を変数に格納
const response = JSON.parse(UrlFetchApp.fetch(GPT4URL, options).getContentText());
return response["choices"][0]["message"]["content"];
}
function GPT3(arg_prompt,arg_model_id = 0, arg_option="") {
const GPT3URL = 'https://api.openai.com/chat/completions';
const options = {
contentType: "application/json",
headers: { Authorization: "Bearer " + SECRET_KEY },
payload: JSON.stringify({
'model': MODEL_NAME_LIST[arg_model_id],
'max_tokens' : 1024,
'temperature' : 0.9,
'prompt': arg_prompt})
};
const res = JSON.parse(UrlFetchApp.fetch(GPT3URL, options).getContentText());
return res.choices[0].text.trim();
}
よし、chatGPT3の既存4モデルに、chatGPT4の呼び出しを追加してみた。
0~3は既存のAda、Babagge、Curie、Davinci。
4と5がそれぞれ3.5Turboと4。トークン多い版は倍で高いので入れないことにした。
何かエラーになっていたので、ちょっと調べたらAPIに「chatGPT4」が入っていない様子。
ん、俺chatGPT Plus初日組なのだが?
ウェイトリストも申請したのに、ChatにGPT4がない……ということは、APIキー発行しても呼び出せないのかな?
ちょっとわからんけど、また後日チャレンジしてみる。
レガシー4姉妹に「眠いです」って質問した結果↓
夜はコミケのようになります
やることはできるから
詰まっている
雨の日
さてさて
コミケの最高
こういう、素朴な回答好き( ゚Д゚)b コミケ最高っすわ
この記事が気に入ったらサポートをしてみませんか?