見出し画像

ChatGPTは発明してくれるか(コード付)

仕事を奪われるんじゃないか、とか、楽ができるんじゃないか、とか
巷で話題の、これですが。

3月から新しいAPIが出たので使ってみましょう。ChatGPTに使い方を聞きたいとこですが新しい設定方法は学んでないのできちんと答えてくれません。他人のをパクリましょう。

既にアカウント作ってる人は別にプラン変更の手続きはいりません。ただ、APIで遊んでたひとはAPIの無料分は18ドルなのでそろそろ使い切っちゃうから、そろそろクレジットカード用意したほうがよいです。

 スプレッドシートのGoogle Apps Scriptで以下のようにこしらえてみます。
(入手したAPIキーは直接書きたくないのでApps script画面のプロジェクトの設定⚙のとこからプロジェクトプロパティに「APIKEY」として格納しておきます。)

function meisaisho() {
  const sheet = SpreadsheetApp.getActiveSheet(); 
  const query = sheet.getRange(4,1).getValue();


//APIキーを読み込む

  const SECRET_KEY = ScriptProperties.getProperty('APIKEY');

//ChatGPTのAPIのエンドポイントを設定する

  const url = "https://api.openai.com/v1/chat/completions";
  const messages = [

  {'role': 'system', 'content': '発明とは、自然法則を利用した技術的思想の創作のうち高度のものをいいます。'},
  {'role': 'system', 'content': '【発明の名称】その発明の名称です。'},
  {'role': 'system', 'content': '【技術分野】その発明の属する技術分野です。'},
  {'role': 'system', 'content': '【背景技術】その発明のもとになった、内容の近い発明です。'},
  {'role': 'system', 'content': '【発明が解決しようとする課題】その発明が解決しようとする課題です。'},
  {'role': 'system', 'content': '【課題を解決するための手段】課題を解決するための手段です。'},
  {'role': 'system', 'content': '【発明の効果】その発明の効果です。'},
  {'role': 'system', 'content': '【産業上の利用可能性】その発明の産業上の利用可能性です。'},
  {'role': 'user', 'content': query + 'その課題に対して発明し、【発明の名称】【技術分野】【背景技術】【発明が解決しようとする課題】【課題を解決するための手段】【発明の効果】【産業上の利用可能性】の順で末尾は体言止めで出力してください。'}

  ];

//OpenAIのAPIリクエストに必要なヘッダー情報を設定する

  const headers = {
    'Authorization':'Bearer '+ SECRET_KEY,
    'Content-type': 'application/json',
    'X-Slack-No-Retry': 1
  };

//OpenAIのAPIリクエストに必要なヘッダー情報を設定

  const options = {
    'muteHttpExceptions' : true,
    'headers': headers, 
    'method': 'POST',
    'payload': JSON.stringify({
      'model': 'gpt-3.5-turbo',
      'max_tokens' : 1024,
      'temperature' : 1,
      'messages': messages})
  };

  const res = JSON.parse(UrlFetchApp.fetch(url, options).getContentText()) ;
  //return res.choices[0].message.content;
  sheet.getRange(4, 3).setValue(res.choices[0].message.content);
  
}

真ん中の文章が並んでるとこは、画面で会話の際に条件どんどん入れて求める回答に近づけるじゃないですか。そういうあれです。

で、これを[挿入]-[図形描画]で作ったボタンに割り当てます。
何故セルで直接関数を実行しないかというと、残念ながらApps Scriptのセル関数には30秒制限があって、考える問題はタイムアウトしてしまうからです。GASでChatGPT APIを使う限り、これはついて回ります。
ボタンから決め打ちで実行させる限り6分まで大丈夫ですから安心です。
それに、好きなタイミングで再実行できますし。
こんな感じで出力されます。

出力例


出力された中身は凡庸ですが、それでも、おそらく数年たったら更に賢くなってるんでしょうね。まあ、じっさいは、これに加えて未公開の自社技術をパラメータとして与えるとしたら(いくら入力内容を学習しないとOpenAIさんが宣言しても)外部に出すのはちょっとためらわれるでしょうけど。でもまあ、まずは触って、遊んでみてくださいよ。そうすればかなり気分がかわります。なんか、できるんじゃね?て思えてきます。

ああ、パナさんは社内利用に踏み切りましたか。いいなあ。
https://www.nikkei.com/article/DGXZQOUF038ZN0T00C23A3000000/

便利な道具は増えますが、人は(「モダン・タイムス」や「メトロポリス」に描かれるような)機械の召使いではありませんし、数年後の未来、どうなってるかわかりませんが新しい技術に携わる方々もご自分の信じるところに従ってさらに高度なお仕事に邁進されていることと信じます。

※言っときますけど私はプログラミングは素人です。だけど、ひろゆき氏が言ってたように、大概のことはググれば出てきますから。

ご意見下さい。

この記事が気に入ったらサポートをしてみませんか?