ChatGPTやBardでプログラミング言語の特定を行うプロンプト生成支援ツール

ChatGPTやBardでプログラミング言語の特定を行うプロンプト生成支援ツール
ChatGPTやBardでプログラミング言語の特定を行うプロンプト生成支援ツール

 

 
読了目安:93

Are you want to translate this page to English? Please click this link to translate via ‘©Google Translate'!

ganohr.net favicon

みなさんこんにちは、ガノー(Twitter:Ganohr)です。

以前より、私が開発し公開している「ソースコードを入力すると、そのソースコードがどのプログラミング言語で記述されているのかを解析して通知してくれるサービス」があります。

サムネイルコードがどんなプログラミング言語で書かれているのか判定するツール手元にあるコードのプログラミング言語が不明な際にオンラインで使えるツールを開発!約200言語の特定に対応し,クライアントサイドで完結するためセキュリティ的に安全に使えます!ChatGPT版も開発しました ... 続きを読むganohr.net2022-03-30

 

このツールには、様々な利点があります。

  • JavaScriptで開発したためクライアントサイドで実行でき、第三者へ秘匿すべきコードが漏洩することがない
  • メジャーな言語からマイナーな言語まで、197言語もの特定が可能である(2023/02/24現在)
  • 解析速度が高速である

 

しかし、その反面、欠点もあります。

  • あくまでコード内のキーワードの一部をマッチして判定するだけであり、構文解析をしていないため精度が低い
  • メジャーな言語含めマイナー言語まで網羅している弊害で、メジャーな言語を間違えてマイナーな言語を報告することがある
  • 作成されているコードの周辺情報を考慮した推定ができない

 

そこで欠点を可能な限り排除すべく、現在完全無料で利用できる『ChatGPT』や『Bard』を活用し、プログラミング言語の推定を行う方法を解説し、楽にプロンプトを生成できるウェブツールを本ページにて公開します。

更新履歴
2023/05/15 Bardでも利用可能なので諸々更新
2023/04/28 ChatGPTが問い合わせ内容を履歴に残さず学習に利用しないオプションを実装
2023/04/22 最新版のjQueryに変更3.6.4(それに伴う不具合の改修)
2023/03/04 画像を追加 / 注意喚起を強調して掲載
2023/03/02 公開

ChatGPTでプログラミング言語を推定するためのプロンプト生成ツール

仰向けで寝ころびながら読書をする女性の写真
ChatGPTやBardを用いて、プログラミング言語をより高精度に判別しましょう。周辺情報を与えて推定できるため、プログラミング言語の検出に高い精度が期待できます。

注意喚起

 
注意
ChatGPTによるプログラミング言語の推定は現状最高精度を誇ると考えられますが、解析に使用したソースコードが運営チームへ漏洩しますので、会社のコードを利用する場合は慎重にご利用ください

特に、2023/04/25より、ChatGPTへ投げた内容を履歴に保存せず、また学習にも利用しないようにするオプションが実装されましたので、必要な場合はそのオプションをご利用ください。

 

 
注意
2023/05/15 BardでもChatGPT同様にプログラミング言語の推定を行えます。しかし、現在はBardはアクティビティ削除機能はあってもオプトアウト機能(学習に利用させない)がないため、秘匿性の高いコードの検証には利用できません。ChatGPTでうまく推定できなかった場合のみに使う程度にとどめておくことが推奨されます。

ChatGPTのリンク

サムネイルhttps://chat.openai.com/chat ... 外部サイトへアクセスchat.openai.com

Bardのリンク

サムネイルBardBard is your creative and helpful collaborator to supercharge your imagination, boost productivity, and bring ideas to life. ... 外部サイトへアクセスbard.google.com

オプション

解析したいソースコードを指定


※ この文言の上に「プロンプトを生成しコピー」というボタンが出ていないときは、広告ブロッカーをオフにしてください。

※ このツールで得られたプロンプトをChatGPTやBardに流し込めば簡単にプログラミング言語を特定できます!


ChatGPTとは?

外で人差し指を上に出して要点を伝えようとしている女性
ChatGPTは、OpenAIが開発したテキスト入力による自動応答AIです。これまでのチャットボットや人工無能とは違い、文脈や過去のやり取りを理解してそれらしい応答を得意としたAIです。

ChatGPT:対話のための言語モデルの最適化
会話形式でやり取りする ChatGPT というモデルをトレーニングしました。対話形式により、ChatGPT はフォローアップの質問に答えたり、間違いを認めたり、間違った前提に異議を唱えたり、不適切な要求を拒否したりできます。ChatGPT はInstructGPTの兄弟モデルであり、プロンプトの指示に従い、詳細な応答を提供するようにトレーニングされています。

Bardとは?

Bard は、Google AI の大規模言語モデルです。テキストとコードの大規模なデータセットでトレーニングされており、幅広いタスクを実行できます。テキストの生成、言語の翻訳、さまざまな種類のクリエイティブコンテンツの作成、質問への回答を行うことができます。また、オープンエンド、やりがいのある、または奇妙な質問であっても、その知識を使用して包括的かつ有益な方法で質問に答えることもできます。

このツールの使い方

まず『ChatGPT』や『Bard』を開いてください。

その後上部にあるツールを用いてプロンプトを生成しコピーしてください。このとき、与える情報が多ければ多いほど回答の精度が高くなります

作成年月日が指定されていればそれ以降に開発された言語を検出対象外にできますし、拡張子が分かれば類似する別の言語を排除できます。OS機種などが分かれば、特定環境でのみ利用されていた言語の抽出も、より高精度に行えます。

このツールでの検出例

お洒落なカフェで読書をしている眼鏡の女性
ChatGPTを用いたプログラミング言語検出の実践例です。

N88Basicの指定例



生成された『ChatGPT』や『Bard』用のプロンプト

以下に示すソースコードのプログラミング言語を推定し、日本語で教えてください。このソースコードの作成日は「1983/9/1」になっています。このソースコードには拡張子として「.bas」が付与されています。このソースコードはOS「MS-DOS」の中で動作しています。このソースコードは動作に「PC9801」マシンが使われています。
 
10 PRINT "Hello World!"
20 GOTO 10

『ChatGPT』の応答例

出力例
このソースコードは、BASICと呼ばれるプログラミング言語で書かれています。BASICは初心者向けのプログラミング言語として広く使われていました。1983年には、PC-9801シリーズなどのパソコンでBASICを使ったプログラミングが盛んに行われていました。また、MS-DOSというオペレーティングシステムは、IBM PC互換機で広く使用されていたオペレーティングシステムであり、このソースコードもIBM PC互換機で動作することが想定されています。拡張子".bas"は、BASICプログラムであることを示すために使用されています。
『ChatGPT』を用いたプログラミング言語検出プロンプトの利用とその応答例
『ChatGPT』を用いたプログラミング言語検出プロンプトの利用とその応答例。BASICであることが検出できている。

『Bard』の応答例

プログラミング言語の推定用プロンプトをBardに投げた様子とその応答結果
プログラミング言語の推定用プロンプトをBardに投げた様子とその応答結果。Bardでも高精度にプログラミング言語が推定できている。
出力例
ソースコードの作成日、拡張子、動作環境から、このソースコードはMicrosoft BASICで記述されている可能性が高いです。Microsoft BASICは、1975年にMicrosoftによって開発されたBASICの最初のバージョンです。MS-DOSやWindowsを含むさまざまなオペレーティングシステムで使用されています。Microsoft BASICは、初心者でも簡単に習得できるシンプルな言語です。また、グラフィックやサウンドなどの機能をサポートする強力な言語でもあります。

ソースコードの行1は、テキスト「Hello World!」を出力します。行2は、プログラムを無限に繰り返します。これにより、プログラムは「Hello World!」というテキストを繰り返し出力します。

このソースコードは、1980年代初頭に人気があったBASICの古いバージョンで記述されている可能性もあります。ただし、Microsoft BASICは1970年代後半に開発されたため、このソースコードがMicrosoft BASICで記述されている可能性が高いです。

このツールの利点&ChatGPTを用いたプログラミング言語推定の利点

スーツ姿の女性(要点を伝えようと、人差し指を上に出している)
ChatGPTを用いたプログラミング言語検出の利点は圧倒的な検出精度の高さです。

検出精度は非常に高いです。

特に私が開発した「highlight.js」を用いたプログラミング言語検出サービスと比べると「ソースコードに、そのコードの周辺情報を与えられる」という点において、圧倒的な優位性を持ちます。

サムネイルコードがどんなプログラミング言語で書かれているのか判定するツール手元にあるコードのプログラミング言語が不明な際にオンラインで使えるツールを開発!約200言語の特定に対応し,クライアントサイドで完結するためセキュリティ的に安全に使えます!ChatGPT版も開発しました ... 続きを読むganohr.net2022-03-30

 

例えばJavaScriptには様々な派生言語が生まれていますが、周辺情報をうまく与えられれば、かなり高精度に行えることが経験上分かっています。

このツールは、プログラミング言語を高精度に特定するために必要な周辺情報を整理し「作成日・拡張子・OS・マシン」に絞り簡単に指定できるようにしています。

 

プログラミング言語の特定はそこまで頻度が高くないわけですので、いちいち難しいことを考えず、こうしたツールにプロンプト生成を任せられるのはとても楽です。

ChatGPTを用いたプログラミング言語推定の欠点

スマートフォンを持ちながら首を傾げる女性
ChatGPTを用いたプログラミング言語検出の欠点は「秘匿すべきコードの検出には利用できない」点に尽きます。

まず、ChatGPTをなにも設定しない状態で使用すると、

入力したプロンプトとその応答結果がChatGPTの運営チームに漏洩します。

 

しかし、2023/04/25より、ChatGPTは問い合わせ内容を履歴に保存せず、またその問い合わせ内容を学習に利用しないオプションが実装されました。

古いコードの場合、「それが本当に秘匿性が高いのか判断できない」場合もあるでしょう。

 

そこで会社での使用の際は、必ずChatGPTの学習を無効化して利用することをおすすめします。

※ ChatGPTの履歴&学習を無効化する手順は次章の「補足」を参照

また、今日現在(2023/05/15)、Bardはオプトアウト機能は実装されていません。

 

対して、ChatGPTやBardと違い、ブラウザのJavaScriptのみで完結する私が開発した以下のツールなら、情報漏洩の心配は一切ありません。

 

したがって、

まずは以下のツールで検証し、それでもわからない場合にこのツールを用いChatGPTにプロンプトを投げる

というのが最も理にかなった手順となります。

サムネイルコードがどんなプログラミング言語で書かれているのか判定するツール手元にあるコードのプログラミング言語が不明な際にオンラインで使えるツールを開発!約200言語の特定に対応し,クライアントサイドで完結するためセキュリティ的に安全に使えます!ChatGPT版も開発しました ... 続きを読むganohr.net2022-03-30

 

それでも不明だった場合のみ、Bardを使うことになるでしょう。

はやくBardにもオプトアウト機能が搭載されることを願うばかりです。

補足:ChatGPTの履歴&学習を無効化する方法

秘匿性の高いコードを推定したい場合は、ChatGPTの履歴と学習を無効化せねばなりません。

手順は簡単です。

ChatGPTの問い合わせ内容のOpt-Out手順1
ChatGPTで履歴と学習を無効化する手順1:左下の自身のアカウントの右にある三点リーダ「…」をクリックする
ChatGPTの問い合わせ内容のOpt-Out手順2
「Settings」の「Data Controls」の「Show」をクリックする
ChatGPTの問い合わせ内容のOpt-Out手順3
「Settings」の「Data Controls」の「Chat History & Training」をクリックし、モスグリーンからグレーアウトする。

 

これで会社でも自由にChatGPTを活用できるようになりました。

最後に

女性がホワイトボードの前に立っている写真
ChatGPTは便利です。たまに間違えますが、使い所を見極めてノウハウを蓄積し、うまく活用していきましょう。

『ChatGPT』のようなAIサービスはより一層発展していくでしょう。

プログラミング言語の検出のような「知識さえあれば簡単だが、うまく見つからない場合は手間がかかるような問題」の解決には、チャット応答型のAIは非常に役立つのではないでしょうか。

 

この投稿を元に、あなたがAIを賢く利用するためのファーストステップにでもなれば幸いです。

以上、ガノー(Twitter:Ganohr)でした!

関連記事

サムネイルコードがどんなプログラミング言語で書かれているのか判定するツール手元にあるコードのプログラミング言語が不明な際にオンラインで使えるツールを開発!約200言語の特定に対応し,クライアントサイドで完結するためセキュリティ的に安全に使えます!ChatGPT版も開発しました ... 続きを読むganohr.net2022-03-30

WordPressの不具合対応/カスタマイズ¥15,000~

PC歴25年超、SE歴10年超、WordPress運営歴7年超、WordPressエンジニア歴5年超のスキルとノウハウを提供します

当サイト管理人の「ガノー」(Ganohr)は、日本最大手且つ東証一部上場企業が運営するクラウドソーシングサイト『Lancers』にて、認定ランサーとして活動しています。


※ 認定ランサーとはLancersにより様々な能力 ( 高い仕事遂行率・高い顧客満足度・多くの実績、など ) を評価したプロフェッショナルを認定する制度です。

 

支援ツールカテゴリの最新記事