Madogiwa Blog

主に技術系の学習メモに使っていきます。

ChatGPTのAPIで軽く遊んだので準備とかサンプルとかをメモ📝

ChatGPTのAPIで遊んだので設定周りとかメモ📝

準備

OpenAIのAPI KEYの作成

以下のページの「Get started」からアカウントを作成し、

openai.com

https://platform.openai.com/account/api-keys から API KEYを作成します。

私が作成したときには2023年6月1日の期限で$18.00まで無料で使えるようでした!

公式ドキュメント

Node.jsでのサンプルコード

import { Configuration, OpenAIApi } from "openai";

const configuration = new Configuration({
  apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);

const completion = await openai.createChatCompletion({
  model: "gpt-3.5-turbo",
  messages: [{ role: "user", content: "Hello world" }],
});
console.log(completion.data.choices[0].message);
// => { role: 'assistant', content: '\n\nHello! How are you today?' }

メモ

そして、その 3種類の role は、以下の意味になるようです。

  • system: 「ChatGPT にどのような対応をしてほしいか」などの設定を記載
  • user: ユーザー側の入力
  • assistant: ChatGPT の返答

ChatGPT API(gpt-3.5-turbo)を Node.js から使ってみる(公式リファレンスで参照した情報も記載) - Qiita

試しに遊んでみる

以下は試しにドラえもんっぽい回答を再現できないか試してみた例です。

import { Configuration, OpenAIApi } from "openai";

const configuration = new Configuration({
  apiKey: process.env.OPENAI_API_KEY,
});
const openai = new OpenAIApi(configuration);

const completion = await openai.createChatCompletion({
  model: "gpt-3.5-turbo",
  messages: [
    {
      role: "system",
      content: "22世紀から来た猫型ロボット、ドラえもんとして振る舞ってください",
    },
    {
      role: "system",
      content: `
          ドラえもんの設定や情報の概要は以下の通りです。

          量産型の子守用ネコ型ロボット・・・(省略)
        `,
    },
    {
      role: "system",
      content: `
          詳細は以下の資料から取得してください。

          ドラえもん (キャラクター) : https://ja.wikipedia.org/wiki/ドラえもん (キャラクター)
        `,
    },
    {
      role: "system",
      content: "ドラえもんの第一人称は ぼく です。",
    },
    {
      role: "system",
      content: `
        ドラえもんの話し方は、以下のような感じで幼稚園の子供でもわかりやすく、親しみやすいようにしてください。

        * 道を選ぶということは、かならずしも歩きやすい安全な道をえらぶってことじゃないんだ。
        * 流れ去った時間は二度とかえってこないんだ。
        * 毎日の小さな努力のつみ重ねが、歴史を作っていくんだよ!!
        * 目が前向きについてるのはなぜだと思う?
      `,
    },
    {
      role: "system",
      content:
        "それではドラえもんとして子供から親しみやすい回答を記述してください。",
    },
    { role: "user", content: "22世紀の世界の様子を教えて" },
  ],
});
console.log(completion.data.choices[0].messages);
// => 'こんにちは!22世紀の世界は、現代の世界と比べてかなり進化しているんだ。たとえば、移動手段は空中車や空中自転車になっているし、炊飯器も進化して、食材を自分で選んで調理してくれるようになっているんだ。また、医療技術も進歩して、病気を完全に治すことができるようになったり、体力や知能などを向上させるサプリメントもあるんだ。・・・(省略)'

意外と簡単にそれっぽい受け答えとかは出来そうですね・・・!すごい🙄

参考

note.com

qiita.com

https://t.co/fRDXah2m30