📚

GoogleAppsScriptでOpenAIのAPIをつかいChatのexsampleをためす

2022/12/13に公開
1

GoogleAppsScriptでOpenAIを使う方法を調べていた

google apps scriptでopenai apiを使う方法が調べてもなかなかでてこなかったのでいろいろみていたらとりあえず形になったのでとりあえずコードをのせとく。このコードを使ってなんらかの不利益かぶってもしりません。
というのはdocumentをまともによんでないから。わからないことは自分でソースをあたるようにしてください
Google Apps Script目的別リファレンス 実践サンプルコード付き 第2版 | 清水亮, 枡田健吾, 近江幸吉, 佐藤香奈, 一政汐里 | 工学 | Kindleストア | Amazon# OpenAIで最初の3か月間だけ使える18ドル分のクレジット
気になるのはopenaiの料金だと思うが、最初の3か月間だけ使える18ドル分のクレジットが与えられる。これは裏をかえせば3か月がすぎれば有料になることなので、結局は無料で使い続けることはできない
とりあえず、「どれだけつかったか」というのは「トークン」という単位で管理されていて、どのくらいのトークンを使ったかというのは以下で確認できる
beta.openai.com/account/usage

---

きになったのはopenaiapiのエンドポイントが検索してもなぜかでてこない。通常はrequireとかでライブラリを読み込んでなんだかんだやるみたいな雰囲気だが、そのあたりは結局よくわからずじまい。
とりあえず動けばいいだろ
まあ動いたからといってなんのとくもないわけだが。しかもいずれ有料になって使えなくなるし

GASでOpenAIAPIを使うサンプルコード

const API_KEY = "APIKEYをいれる";
const NUM_TOKENS = 200;

let preface = "ここになにか文字列を入れる"

function res() {
    let prompt = preface
    let response = _callAPI(prompt);
    console.log(response)
    //return response
}

function _callAPI(prompt) {
    let data = {
        'prompt': prompt,
        "temperature": 0.9,
        "max_tokens": NUM_TOKENS,
        "top_p": 1,
        "frequency_penalty": 0.0,
        "presence_penalty": 0.6,
        "stop": [" Human:", " AI:"]
    };

    let options = {
        'method': 'post',
        'contentType': 'application/json',
        'payload': JSON.stringify(data),
        'headers': {
            Authorization: 'Bearer ' + API_KEY,
        },
    };

    response = UrlFetchApp.fetch(
        'https://api.openai.com/v1/engines/text-davinci-003/completions',
        options,
    );

    //console.log(response.getContentText())
    return JSON.parse(response.getContentText())['choices'][0]['text']
}

Amazon | 明星食品 チャルメラ 宮崎辛麺 5食パック×2個セット(計10個セット)おまけ付き | ノーブランド品 | ラーメン 通販
Amazon | 明星 チャルメラどんぶり 宮崎辛麺 77g×12個 | 明星 | ラーメン 通販