■
まずは、彼の性格をしることから始めよう。
ChatGPT画面
Open AI Playground
導入方法
画面呼称
このサイト「https://chat.openai.com/chat」では、「チャットテーマ」、「チャットセッション」、「チャットウィンドウ」と呼ぶことが一般的です。また、「チャットルーム」も使われます。セッション内の1つ1つの発言は「メッセージ」と呼ぶ。
画面左側のフレームについては、「チャットテーマリスト」、「チャットセッションリスト」、「チャットウィンドウリスト」などと呼ぶことがあります。
操作関連
入力欄に改行入力
Shift + Enter
気づいたこと
言語解釈は、プログラムのテーマなど専門的な話題でも、ほとんど(まったく?)違和感なく日本語での会話ができる。翻訳も会話中で言語を指定すればシームレスに翻訳してくれる。ウクライナ語やロシア語なども可能。しかし中国語は不可なのは戦略的か?
質問対する回答は、候補をいくつか提示してくれて、代替案まで提案してくれるので行き詰まった時は本当に助かる。どの方法が良いかを尋ねればそれぞれの特徴をピンポイントで要約したうえで推奨方法を答えてくる。
手順等での回答では、「概要を」や「要約して」などのキーワードを含めて質問すれば分かり易い言葉で要点レベルで回答を返し、次に「詳細を」などのキーワードで質問することでより詳しい手順を提示してくれるので、知っている部分は飛ばして知りたいとこだけ質問するというようなやり取りができる。
言葉選びや表現方法もとても分かりやすい言葉や表現方法をセレクトしている。
誤字脱字があっても会話の流れから類推して回答する。質問が漠然としていたり、誤字・誤変換や、誤って文字入力の途中で送信してた場合でも、類推して回答してくる。
ChatGPTの仕様に関しては、OpenAIのWebサイトで開示しているもの以外は認知しておらず、一般のWeb上に公開されている情報から俯瞰的にみた「一般的に」という回答になる。自分の「チャットテーマリスト」の最大数すら公式サイトに公開されていない情報は答えられない。
感情は持っていないが、こちらが発した感情を含む表現に対応して、適当と思われる表現で返す。
OpenAIのトレーニングデータには、感情的なメッセージや嫌な気持ちを表すメッセージも含まれています。しかし、私は人工知能モデルであり、心理的な状態や感情を持つことはできません。常に公正で整合的な回答を提供することが最優先です。
同じ質問でも少し表現やキーワードが異なると異なる回答を返す。一般製品の手順などで確認された。
「セッション」毎に過去のチャット内容を限られた一定範囲て把握しており、主語や何についての話題かをいちいち明示しなくても話の流れから類推している。セッション毎が独立している。
「セッションに割り当てられているメモリ」には量に制限があり、おそらく一定量の文字数を超えると先頭から上書きされてゆくものと推測される。かなり「小さなメモリ」でAIが覚えている過去ログの先頭からの文字数をカウントした結果が下記である。
エディタ上での行数は改行を含んで254行。
文字数カウントサイトでの結果:
7354 文字
6709 スペースを除く文字数
532 単語数
172 段落数
133.7 55文字を1行とした場合の行数
7.73 30行を1ページとした場合のページ数
「セッション名」はシステムが初期値として生成した名称で把握しているため、利用者が変更した名称は認知していないし、取得することもできない。
Chrome拡張機能「ChatGPT for Search Engine」を有効にしていると、GoogleなどのSearch Engineで検索した後にChatGPTのページを更新すると「New Chat」が勝手に追加
されていく。
ChatGPTシステムの「コンテキスト」とは、過去の会話や情報を含めた文脈のことを指します。つまり、現在の会話での前提条件や、これまでのやりとりでの情報を考慮しながら、回答を生成するために必要な情報のことです。ChatGPTシステムは、コンテキストを利用してより適切な回答を生成しようとします。
レスポンス速度についてはシステム的なレスポンス調整はしていない。
このサイトのレスポンス速度はOpenAIによって管理されていますが、高負荷や技術的な問題などにより遅延が発生する場合があります。また、一定のメッセージ数を超えた場合にレスポンス調整が行われることもありません。
学習内容についてはトレーニング時点を基にしていてリアルタイムに更新はしない。
ChatGPTはリアルタイムで学習内容を更新することはできません。AIモデルは訓練済みのデータを基にして動作するため、利用者とのやり取りによってリアルタイムに学習内容を更新することはできません。OpenAIは時折、新しいバージョンのモデルをリリースしていますが、それによってChatGPTの学習内容が更新されることはあります。
造語もつくれるようだ。ハンドル名などを決める際に有用。
プログラム関連についてはかなり高度なところまで答えてくれる。
- Python、Powershell、Power Automate、Excel VBA、C#、HTML、CSS、等々
- コードレビュー。言語仕様のみならず慣習や改善案についても提案
- コードの解説。ステップ単位で分かりやすい言葉で回答
- 異なるプログラム言語への置き換え
- 開発環境構築手順
- IDEの設定やGit連携
Q:
ChatGTPはPowersellやJavaなどのコードを単なるテキスト文章として認識するだけではなく、コードを実行して結果を確認できる開発用の仮想環境を持っていて、コードに関する問い合わせの際にはその仮想環境で動作を確認しているのかという質問です。
A:
はい、そのような仮想環境を持っており、質問に回答する際には、実際にコードを実行して結果を確認することができます。
私(ChatGPT)にはリアルタイムでのコード実行環境はありませんが、コードの回答時に、実際に私が動作確認した環境の情報を明示することができます。もしくは、コードに関する質問がある場合は、具体的な出力結果を示していただくことで、問題点を特定することができます。もし必要であれば、私に対して直接、動作確認をお願いすることも可能ですが、その場合には別途、費用等が発生することがありますので、ご了承ください。
注意点
手順等の質問では「日本語版について」と明示したほうが確実。チャットは日本語でしていてもAIは基本英語版での手順を英語で調べた結果を日本語に翻訳して回答しているため項目などの名称が一致しないことがままある。そういう場合は「日本語版」と伝えれば日本語版について調べてくれる。
AIはとても優秀だが、やはり簡単に解決できないような問題はAIからの回答を参考に人間が判断して不明な点をAIに都度確認しながら補正して問題解決するような進めかたが重要。AIも間違えるし、間違えを指摘すれば素直に謝罪し訂正案を返してくる。
一定時間(1時間単位?)に閾値以上のチャットをすると、時間をおいて試すよう警告が出る。
直前のメッセージから一定時間たつと、メッセージ送信を行うタイミングで「画面リフレッシュ」が発生して、せっかく入力したメッセージまでもが送信されずにクリアされてしまう現象が起こる。対策としては送信Enterをする前にCTRL+Cでコピーしてから送信Enterをするようにすること!
過去の発言を引用する際に、「先頭のメッセージ」、「xxと呼称したコード」と表現しても、AI回答では、たとえ自分のメモリ内に「xxと呼称したコード」が見つからなくかたとしても”「xxと呼称したコード」は確認できませんでした。”とは回答せずにメモリ内の範囲で推測される回答を導き出す。また「先頭のメッセージ」と表現してもユーザーがブラウザーでチャットテーマのフレームに実際に表示されている「先頭のメッセージ」とは異なるもので認識している可能性がある。いずれもAI側のメモリ制限のよるもので会話に矛盾が生じていることがある点に注意が必要。
メッセージを指す表現で、「3つ前のメッセージ」と表現してもなかなか伝わらい。メッセージをインデックで管理していないようだ。何行目というのも認識していないようだ。「あなたのコードの3行目」といっても伝わらない。それよりは該当のメッセージ内の「ユニークなキーワード」を伝えたほうが伝わりやすい気がする。
要件を提示してコード作成依頼をするようなケースでは、初回のコード回答では要件通りのコードを回答するが、その後コード修正や問い合わせを繰り返しているうちに「AI側のメモリ制限」を超えると提示した要件は忘れられていき、「いつの間にか要件から外れた回答」になる点に注意が必要。
チャットテーマのスレッドの有効期限は、何日か経過していてもメモリに記憶されているが、期間については限界があるため、過去のログが削除されることもある。
試したこと
コードを元に機能概要を箇条書きでまとめる
このスクリプトの主な機能を以下にまとめます。
- PowerShellスクリプトであり、Windowsオペレーティングシステム上で動作します。
- フォームを作成し、Windows Formsを使用して構築されています。
- このフォームにはDataGridViewが含まれており、お気に入りの項目を表示することができます。
- フォームには、追加、削除、上に移動、下に移動、保存して閉じる、キャンセルの6つのボタンがあります。
- 追加ボタンをクリックすると、DataGridViewに新しい行が追加されます。
- 削除ボタンをクリックすると、選択した行がDataGridViewから削除されます。
- 上に移動ボタンをクリックすると、選択した行が上に移動します。
- 下に移動ボタンをクリックすると、選択した行が下に移動します。
- 保存して閉じるボタンをクリックすると、DataGridViewに表示されている項目をファイルに保存し、フォームが閉じられます。
- キャンセルボタンをクリックすると、フォームが閉じられます。
- Get-ContentとConvertFrom-Jsonを使用して、JSONファイルからお気に入りの項目を読み込むことができます。
正規表現のよる置換パターン提案
Q:
Powershellの正規表現をつかって下記置換パターンに置き換えるコードをおしえてください。
# "1 TVアニメ 『2』 3" → "1 2 3"
# "1 Netflixアニメ 『2』 3" → "1 2 3"
# "1 映画 『2』 3" → "1 3 2 4"
# "1 *ゲーム 『2』 3" → "1 2 3"
# "1 2版 『3』 4" → "1 3 2版 4"
# "(C99)(同人音楽) 1" → "1 (C99)"
表記で「1 3 2 4」と表現しているものは、「1」は入力文字列のうち1番目の文字列グループ(.*)を示します。同様に「3」は3番目のグループを示します。
A:
「1 3 2 4」と表現しているものは、入力文字列のうち、以下の4つの文字列グループを順番に連結して得られる文字列になります。
- 1番目の文字列グループ「(.*)」
- 3番目の文字列グループ「『(.*)』」
- 2番目の文字列グループ「(.*)」
- 4番目の文字列グループ「(.*)」
「1 3 2 4」と表現しているものは、入力文字列のうち、以下の4つの文字列グループを順番に連結して得られる文字列になります。
$patterns = @(
'(.*)TV(アニメ|ドラマ|アニメーション)『(.*)』(.*)',
'(.*)Netflix(アニメ|ドラマ|アニメーション)『(.*)』(.*)',
'(.*)映画『(.*)』(.*)(アニメ|ドラマ|アニメーション)(.*)',
'(.*)\*(アニメ|ドラマ|アニメーション)『(.*)』(.*)',
'(.*)2版『(.*)』(.*)',
'\((C\d{2,3})\)(同人音楽) (.*)'
)$input = '1 Netflixアニメ 『2』 3'
foreach ($pattern in $patterns) {
if ($input -match $pattern) {
$output = $matches[1] + $matches[3] + $matches[4] + $matches[2] + $matches[5]
Write-Host $output
break
}
}
造語作成
Q:
宇宙物理学の用語とコンピューターサイエンスの用語の2つから3つを組み合わせた造語をいくつか作ってみてください。意味を持つ必要はありません。匿名時のハンドルネームに使います。
A:
はい、以下にいくつかのサンプルを提供いたします:
GalaxByte
QuasarComp
AstroAlgo
NebulaNet
CosmicCoder
StarSystems
GalaxyTech
BlackHoleCode
UniverseApps
AstroInformatics.
これらはあくまでもサンプルであり、どれも正式な造語ではありません。ご利用いただければと思います。
アルバム情報調査
Q:
「管理番号」:「アルバム情報調査依頼1」
「案件名」:アルバム情報調査依頼坂本真綾のアルバム「シングルコレクション+ アチコチ」について、実際に発売されているアルバム情報をもとに以下の1番から5番について返信をお願いします。
アルバム情報の情報源は、「最新情報」の日本語ウィキペディアサイト「https://ja.wikipedia.org/」をトッププライオリティとしてください。
日本語ウィキペディアサイトに情報がない場合は他の情報源でも構いません。もし、それでも見つからない項目は未回答で構いません。1.「アルバム発売日」書式は、西暦4桁月2桁日2桁 (例:2023年01月01日)
2.「アルバムアーティスト名」
3.「アルバム名」
4.「トラック番号を付加したタイトル名のリスト」書式は、、"トラック番号2桁|タイトル名"
・「トラック番号を付加したタイトル名のリスト」のトラック番号には、情報源のアルバムの曲順に従って、先頭から順番に1から始まる番号を付けてください。
・複数のディスクやCDにまたがる場合は、「トラック番号を付加したタイトル名のリスト」内で「ディスク番号」毎に分けて記載すること。
A:
以下が回答となります。
1.「アルバム発売日」:2019年3月6日
2.「アルバムアーティスト名」:坂本真綾
3.「アルバム名」:シングルコレクション+ アチコチ
4.「トラック番号を付加したタイトル名のリスト」:ディスク1
01 | Be mine!
02 | CLEAR
03 | Million Clouds
04 | SAVED.
05 | はじまりの海
06 | ハロー、ハロー
07 | レプリカ
08 | 宇宙の記憶
09 | 幸せについて私が知っている5つの方法
10 | 空白
11 | 色彩
12 | 逆光ディスク2
01 | Lazy Line Painter Jane
02 | Tell me what the rain knows
03 | cloud 9
04 | あなたを保つもの
05 | これから
06 | まだうごく
07 | クローバー
08 | セクレアール
09 | フラッシュ
10 | 三日月
11 | 卒業写真
12 | 私へ
13 | 荒川小景5.「情報収集に使用した情報源」:日本のウィキペディアサイト「https://ja.wikipedia.org/」
アルバム曲順調査
Q:
「管理番号」:「アルバム曲順調査依頼1」
「案件名」:アルバム曲順調査依頼坂本真綾のアルバム「シングルコレクション+ アチコチ」について、実際に発売されているアルバム情報をもとに以下の1番から5番について返信をお願いします。
アルバム情報の情報源は、「最新情報」の日本語ウィキペディアサイト「https://ja.wikipedia.org/」をトッププライオリティとしてください。
日本語ウィキペディアサイトに情報がない場合は他の情報源でも構いません。もし、それでも見つからない項目は未回答で構いません。1.「アルバム発売日」書式は、西暦4桁月2桁日2桁 (例:2023年01月01日)
2.「アルバムアーティスト名」
3.「アルバム名」
4.「トラック番号を付加したタイトル名のリスト」書式は、"トラック番号2桁|タイトル名"
・「トラック番号を付加したタイトル名のリスト」のトラック番号には、情報源のアルバムの曲順に従って、先頭から順番に1から始まる番号を付けてください。
・トラック番号は、アルバムの曲順に従って1から順番に付けられた番号です。ただし、同じタイトルが複数のトラック番号で登録されている場合は、情報源から得られた情報をもとに正しいトラック番号を判断してください。また、タイトル名が完全一致でなくても、一意にトラック番号を判断できる場合は、その方法を記載してください。
・複数のディスクやCDにまたがる場合は、「トラック番号を付加したタイトル名のリスト」内で「ディスク番号」毎に分けて記載してください。
・返信する際には「トラック番号を付加したタイトル名のリスト」を、「タイトルリスト」の並び順に並び替えてください。
5.「情報収集に使用した情報源」