React / OpenAI API でコードを説明してもらう

What does this code do? を見て、日本語で同じようなもの作れそうなのでやってみる。

コード入力/送信ボタン押下でOpenAI APIにリクエストを送りコードの説明を得る。フロントのみなのでセッション保持などはなし。

GitHub: https://github.com/yuheijotaki/chatgpt-what-does-this-code-do

OpenAI APIへのリクエスト、これまでAxiosを使ってましたが openai のライブラリがあったので使ってみる。

import { Configuration, OpenAIApi } from 'openai';

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

messages には下記を仕込んでおく。

messages: [
  { role: "system", content: "あなたはコードを説明するエキスパートです。" },
  { role: "user", content: `このプログラムのコードを${maxTokens}文字以内で説明してください:\n${code}` },
],

所感

gpt-3.5-turbo でやりましたが、GPT-3.5のモデル みると text-davinci-003 が本来は妥当なのかも?
max_tokens 周りもよく分かってないので、もう少し検証や調査が必要。

参考