Cloud FunctionsでGPTのAPIを使いたいがinternalエラーが出る。

実装したい機能

こんにちは。
Cloud Funtionsを使ってGPTのAPIを呼び出したくCloud Funtionを作成したのですが、internalエラーが発生しています。
何か知っている方いらっしゃれば教えていただければ幸いです。よろしくお願いいたします。

スクリーンショット・実行手順

まず、Cloud Funtion(名前はcreateQuiz)はこのようになっています。下記にテキストでコードを記載しています。

ボタンを押すとcreateQuizが起動するようにしました。

結果はエラーで、"internal"と表示されました。
スクリーンショット 2023-10-21 14.46.27

コンソールのエクスプローラを見たところこのようになっていました。GPTの応答は取得できているようです。

Firebasej上でも問題なくDeployできているように思います。

試したこと

実は何度かinternalが出なかった時があります。しかし色々編集しているとまたinternalエラーが出てしまい、エラーが出ていなかった時の状態に戻したのですが何故かエラーは消えませんでした。Firebase上のCloudFuntionを削除してDeployしても改善できませんでした。

もし何か知っている方がいらっしゃれば、ご教示いただければ幸いです。
よろしくお願いいたします。

Cloud Funtionのコード

const functions = require(‘firebase-functions’);
const admin = require(‘firebase-admin’);
const https = require(‘https’); // この行を追加

exports.createQuiz = functions.region(‘us-central1’)
.runWith({
timeoutSeconds: 100,
memory: ‘512MB’
})
.https.onCall((data, context) => {
const input = data.input;

return new Promise((resolve, reject) => {  // 新しい Promise を返す
  // Write your code below!
  const options = {
    hostname: 'api.openai.com',
    path: '/v1/chat/completions',
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
      'Authorization': 'Bearer sk-xxxxxxxxxxxxxxxxxxxxxx',
    }
  };

  const requestBody = JSON.stringify({
    "model": "gpt-3.5-turbo",
    "messages": [{"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": input}],
    "stream": false,
    "temperature": 0.8,
    "top_p": 0.8,
    "presence_penalty": 0.2
  });

  const req = https.request(options, (res) => {
    let responseData = '';
    res.on('data', (chunk) => { responseData += chunk; });
    res.on('end', () => {
      console.log('test:1');
      console.log(responseData);  // 追加: レスポンスデータをログに出力
      try {
        console.log('test:2');
        const parsedResponse = JSON.parse(responseData);
        resolve(parsedResponse.choices ? parsedResponse.choices[0].text.trim() : '');  // スコープ内で resolve を使用する
      } catch (error) {
        console.error('Error parsing response:', error);
        reject('Internal error');  // スコープ内で reject を使用する
      }
    });
  });

  req.on('error', (error) => {
    console.error(`Error: ${error.message}`);
    reject('エラーが発生しました');  // 正しいスコープ内で reject を使用します
  });

  req.write(requestBody);
  req.end();
  // ここまでコードを書く
  // Write your code above!
});

});

3日以上回答が付きませんね。
これは運営Botです。なかなか回答が付かない場合には、NoCodeCampコーチングのご活用もご検討ください。

コーチングでは、あなたの具体的な課題に焦点を当て、より専門的な指導を受けることが可能です。 これは、過去の実績のある熟練した専門家が、あなたの疑問や問題を親身になってサポートいたします。
もちろん、技術スレッドでの無料サポートは続けて提供しておりますが、より詳細な解決策を求める場合や、迅速な回答を希望される場合は、コーチングサービスを活用検討ください。