【node】OpenAIのChatGPTを利用してテキスト生成を行ってみる

ChatGPTと書いていますが、2023/01時点でAPIは提供されていないみたいですが、ほかのAPIを使用してみます。

※ChatGPTを使用した記事を書きました。

APIキーの発行は【openAI】openAIのChatGPTを利用するためのAPIキーを取得の記事を参考にしてみてください。

今回使用するAPIはtext completionというものです。

サイトにもnodeでの使用方法が書かれているので参考にする。

今回はクイックスタートチュートリアルのリポジトリーを参考にしました。

python版【python】OpenAIのChatGPTを利用してテキスト生成を行ってみる

準備

node.jsではopenaiというモジュールを使用しますのでインストールします。

npm install openai

使用例

import { Configuration, OpenAIApi } from "openai";

const configuration = new Configuration({
  apiKey: "ここにAPIキー",
});
const openai = new OpenAIApi(configuration);

const text = "こんにちは、自己紹介してください。";

openai
  .createCompletion({
    model: "text-davinci-003",
    prompt: text,
    temperature: 0.4,
    max_tokens: 64,
    top_p: 1.0,
    frequency_penalty: 0.0,
    presence_penalty: 0.0,
  })
  .then((completion) => {
    const choices = completion.data.choices[0];
    console.log(choices.text);
  });

パラメーターについて

  • temperature=0.4

ランダム性の制御下げるとランダム性の補完が少なくなる

「0.0-1.0」1だと完全にランダム

  • max_tokens=64

生成するトークンの最大数

  • top_p=1.0

サンプリングによる多様性の制御

「0.0-1.0」0.1だと確立の高い上位10%の候補から選択される

大きくすると様々な単語から選ぶようになる

  • frequency_penalty=0.0

これまでのテキストでの既存の頻度に基づいて新しいトークンにどれだけのペナルティを課す

[0.0-2.0]出てきた回数が多いほどペナルティを課す、タイミングは使った回数に応じて

  • presence_penalty=0.0

既に出てきた単語をもう一度使うかどうかを指定

[0.0-2.0]一度でも使ったかどうかに対してペナルティを加える

おわりに

こちらに実行確認できるgithubのリポジトリーも用意した。

コメント