概要
ChatGPT
https://chat.openai.com/auth/login
チャットAI「ChatGPT」使い方 質問に自然な日本語で回答する言語モデル - KAI-YOU.net
https://kai-you.net/article/85475
ChatGPTはどのように学習を行なっているのか
https://zenn.dev/ttya16/articles/chatgpt20221205
ChatGPT使い方総まとめ - Qiita
https://qiita.com/sakasegawa/items/82069c97a1ee011c2d1e
GPT-3(Generative Pre-trained Transformer 3) | 用語解説 | 野村総合研究所(NRI)
https://www.nri.com/jp/knowledge/glossary/lst/alphabet/gpt_3
「有能なバカ」ChatGPTを使って1週間でiOSアプリを公開する方法
https://zenn.dev/niwatoro/articles/51f22ab69e0c9b
【ChatGPT】プロンプトパターンまとめ - Qiita
https://qiita.com/sonesuke/items/981925cfcc610a602e94
ChatGPTの精度を上げる、あらゆる質問の最後に置く「命令」 優秀な壁打ち相手を作る、「チャットAI力」の高め方 - ログミーBiz
https://logmi.jp/business/articles/328359
ChatGPTの使い方のコツをまとめる - BioErrorLog Tech Blog
https://www.bioerrorlog.work/entry/chatgpt-tips
ChatGPTの応答精度を高めるためにプロンプトを英訳、応答文を和訳するのがオススメ | AutoWorker〜Google Apps Script(GAS)とSikuliで始める業務改善入門
https://auto-worker.com/blog/?p=7184
ChatGPTにマインドマップを作ってもらったら理解速度が爆速になる件|Abiru|note
https://note.com/abiruy/n/n8f55133a06d6
chatGPTにアドバイスをもらったらデータサイエンスを知って1週間の友人がコンペで上位6.5%に入った話
https://zenn.dev/seiyakitazume/articles/bc11bbd020cdfe
AIに「お前のところの営業担当、マジでクソだ、二度と顔見せんな。替えろ」をメールの文章に変換してもらったら超実用的だった - Togetter
https://togetter.com/li/2132998
百花繚乱の大規模言語モデル その現状まとめ【2023年4月末版】:清水亮の「世界を変えるAI」(1/3 ページ) - ITmedia NEWS
https://www.itmedia.co.jp/news/articles/2304/25/news156.html
GWにChatGPTについて振り返りたい人向けまとめ - まなめはうす
https://maname.hatenablog.com/entry/2023/04/28/062945
【2024年版】ChatGPT APIを社内利用する時に採用すべきアーキテクチャを考えた - Qiita
https://qiita.com/yuno_miyako/items/ce80002adf76bd321ad3
ChatGPT APIとWhisper APIで議事録文字起こしアプリを作り、Hugging Face Spacesで公開する | gihyo.jp
https://gihyo.jp/article/2023/04/programming-with-chatgpt-02
手軽にExcelへ「ChatGPT」を組み込めるMicrosoftの実験アドイン「Excel Labs」を使ってみた - 残業を減らす!Officeテクニック - 窓の杜
https://forest.watch.impress.co.jp/docs/serial/offitech/1497229.html
ChatGPTで独自データを学習させて回答してもらう方法 - Qiita
https://qiita.com/windows222/items/232f05bafa95a9c8874e
生成AI周回遅れキャッチアップ勉強会! - Speaker Deck
https://speakerdeck.com/minorun365/sheng-cheng-aizhou-hui-chi-rekiyatutiatuhumian-qiang-hui
ChatGPTなど生成AIのガイドラインとサービス規約を超要約、何がOKで何がNGか確認する【イニシャルB】 - INTERNET Watch
https://internet.watch.impress.co.jp/docs/column/shimizu/1498541.html
ChatGPT Pluginsの概要と作成方法|ChatGPT研究所
https://chatgpt-lab.com/n/n9df36720c5d0
CTOの視点から見たAzure OpenAI ServiceとOpenAIのChatGPT APIの深堀り比較 - Qiita
https://qiita.com/lazy-kz/items/32e8e7c86bdce67beb48
【最新版】ChatGPT プラグイン機能一覧|しおぱん
https://note.com/shiopan_san/n/nd9a9cc14407c
ChatGPTプラグインの「Webpilot」と「Show me」の組み合わせが最強 - Qiita
https://qiita.com/ot12/items/6b6b15c71c7676a683d5
ChatGPTのコア技術「GPT」をざっくり理解する - Qiita
https://qiita.com/ksonoda/items/b767cbd283e379303178
20230614_「ChatGPTについて調べてくれ」と社長から特命を受けた人のためのChatGPT概論(40min版)_v1.00.pdf - Speaker Deck
https://speakerdeck.com/doradora09/20230614-chatgptnituitediao-hetekure-toshe-chang-karate-ming-wosh...
ChatGPT開発元のOpenAIが推奨!期待通りの回答を得るプロンプトのコツ10選 | できるネット
https://dekiru.net/article/24267/
プログラミングに挫折したならAIお姉ちゃんに任せなさい - 本しゃぶり
https://honeshabri.hatenablog.com/entry/One-chanGPT
「文章生成AI利活用ガイドライン」を策定|東京都
https://www.metro.tokyo.lg.jp/tosei/hodohappyo/press/2023/08/23/14.html
ASCII.jp:これは嬉しい ChatGPTプロンプト書き方のコツ、OpenAIが公開
https://ascii.jp/elem/000/004/175/4175960/
生成AIの用語10選 〜 一般ユーザーが知っておくべき基礎知識:AI・機械学習の用語辞典 - @IT
https://atmarkit.itmedia.co.jp/ait/articles/2403/29/news036.html
基本的な利用
■アカウント登録
「Sign up」をクリック。
「Create an OpenAI account」をクリック。
新しく開いた画面でメールアドレスを入力して新規登録。
入力したアドレスに届いたメールで認証。
名前を入力。
電話番号を入力し、SMSに届いた番号を入力。
利用方法は「I'm exploring personal use」を選択。
完了すると「Welcome to OpenAI」のページが表示される。
画面上部に「Introducing ChatGPT research release」と表示されているので、隣の「Try it」をクリック。
…とするが、チャット画面にたどり着くことができない。
ChatGPTが開始出来ない原因と対処法を解説 | App Story
https://app-story.net/chatgpt-cannot-start/
Googleアカウントでサインアップしなおそうとしたが、謎エラーで進めることができず。
何度もログインを試していると、ついにログインできた。
以下のページに掲載されているスクリーンショットのページに進めた。
https://kai-you.net/article/85475
チャットのやり取り例は、後述の「やり取りの例」を参照。
■引き続き
以下などを参考に、また試したい。
ChatGPT使い方総まとめ - Qiita
https://qiita.com/sakasegawa/items/82069c97a1ee011c2d1e
APIからの利用
ChatGPTをPHPで使ってみました - NAGAOKA STATION
https://nstjp.com/web/1050.html
OpenAIのAPI利用の料金を解説!文章生成AIと画像生成AIの費用を説明 | AutoWorker〜Google Apps Script(GAS)とSikuliで始める業務改善入門
https://auto-worker.com/blog/?p=7005
一定以上の利用量に達すると利用できなくなり、課金が必要になるようなので注意。
少し試す程度なら問題は無さそう。
■APIの正式提供
APIは2023年3月2日に提供が開始されたらしい。
後に書いている「APIキーの発行」「プログラムの作成」はもっと前に書いたものだが、これとは異なるのか。
ChatGPT、API提供開始 - Impress Watch
https://www.watch.impress.co.jp/docs/news/1482689.html
ChatGPT API の使い方|npaka|note
https://note.com/npaka/n/n0dd2b226e8ae
ChatGPT APIを使ったLineBotの作り方を、人格の与え方まで完全解説【プログラミング不要】|ChatGPT 研究所
https://chatgpt-lab.com/n/n55257c082a9d
新たな革命の幕開け。ChatGPT API の使い方(Python) と料金を紹介。|ChatGPT 研究所
https://chatgpt-lab.com/n/nda0de0be1774
と思ったが、以下に「もともとテキスト生成用に以下のcompletionsエンドポイントがありましたが」と書かれている。
テキスト生成だけ先行して提供されていたみたい。
OpenAIからChatGPTとWhisperに関するAPIがリリースされたのでドキュメントを読み解いてみた | DevelopersIO
https://dev.classmethod.jp/articles/release-openai-apis-chatgpt-and-whisper/
■APIキーの発行
以下にアクセスする。
Account API Keys - OpenAI API
https://beta.openai.com/account/api-keys
「+ Create new secret key」ボタンを押す。
ダイアログにAPIキーが表示されるので控えておく。
(このキーは再表示できず、キーを紛失した場合は新しいキーを発行する必要があるとのこと。)
■プログラムの作成
※2023年3月2日に正式にAPIが提供開始されたので、エンドポイントなどは改めて確認したい。
以下のようにすると、質問に対する回答が表示される。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ChatGPT APIサンプル</title>
</head>
<body>
<h1>ChatGPT APIサンプル</h1>
<?php
// OpenAIのAPI Keyを取得( https://beta.openai.com/account/api-keys )
define('OPEN_API_KEY', 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX');
// ChatGPTに投稿するメッセージ
define('CHAT_TEXT', 'Javaの有名なフレームワークについて教えてください。');
// リクエストを送信
$header = array(
'Authorization: Bearer ' . OPEN_API_KEY,
'Content-type: application/json',
);
$params = json_encode(array(
'prompt' => CHAT_TEXT,
'model' => 'text-davinci-003',
'temperature' => 0.5,
'max_tokens' => 4000,
'top_p' => 1.0,
'frequency_penalty' => 0.8,
'presence_penalty' => 0.0
));
$curl = curl_init('https://api.openai.com/v1/completions');
$options = array(
CURLOPT_POST => true,
CURLOPT_HTTPHEADER => $header,
CURLOPT_POSTFIELDS => $params,
CURLOPT_RETURNTRANSFER => true,
);
curl_setopt_array($curl, $options);
$response = curl_exec($curl);
$httpcode = curl_getinfo($curl, CURLINFO_RESPONSE_CODE);
if ($httpcode != 200) {
exit('エラーが発生しました。');
}
echo '<h2>質問</h2>';
echo '<p>' . CHAT_TEXT . '</p>';
echo '<h2>回答</h2>';
$json_array = json_decode($response, true);
$choices = $json_array['choices'];
foreach ($choices as $v) {
$text = trim($v['text']);
$text = preg_replace("/\r?\n/i", "\r", $text);
$text = preg_replace("/\r/i", "\n", $text);
echo '<p>' . nl2br(htmlspecialchars($text, ENT_QUOTES)) . '</p>';
}
?>
</body>
</html>
■メモ
会話の継続について触れられている。
上記とは言語も呼び出し方も違うかもしれないが参考までにメモ。
ChatGPT APIを使ってAIキャラクターを作ってみる! - Qiita
https://qiita.com/sakasegawa/items/db2cff79bd14faf2c8e0
やり取りの例
※BingのAIチャット機能が組み込まれたEDGEで試したときのメモが「Browser.txt」にある。
■基本的な使い方
refirio:
こんにちは。
ChatGPT:
An error occurred. If this issue persists please contact us through our help center at help.openai.com.
refirio:
ChatGPTの使い方を教えてください。
ChatGPT:
ChatGPTは、OpenAIが開発した大型の言語モデルです。このモデルは、会話文の処理を行うことができます。使い方としては、ChatGPTに会話文を入力することで、その文に対しての応答を生成することができます。例えば、次のような入力文を与えることで、その文に対する応答を生成することができます。
話し手: こんにちは。
ChatGPT: こんにちは。お元気ですか?
ただし、現在は、ChatGPTの一般的な使用方法については、お答えすることができません。ご了承ください。
■PHPのフレームワーク
refirio:
こんにちは。
ChatGPT:
こんにちは。私は Assistant と申します。どのようなお困りでしょうか?
refirio:
PHPの有名なフレームワークについて教えてください。
ChatGPT:
An error occurred. If this issue persists please contact us through our help center at help.openai.com.
refirio:
PHPの有名なフレームワークについて教えてください。
ChatGPT:
PHPには多くのフレームワークがありますが、最も有名なものとしてはLaravelがあります。Laravelは、Webアプリケーション開発をより簡単かつ効率的に行えるようにするために設計された、オープンソースのPHPフレームワークです。他にもSymfonyやCodeIgniterなどが有名です。
refirio:
Laravelでデータベースのマイグレーションを行う方法を教えてください。
ChatGPT:
Laravelでデータベースのマイグレーションを行う方法は以下の通りです。
1. コマンドラインツール「Artisan」を使ってマイグレーションを作成する。例:php artisan make:migration create_table_name
2. 作成されたマイグレーションファイルにテーブルのスキーマを記述する。
3. php artisan migrate コマンドを実行してマイグレーションを適用する。
注意: マイグレーションは順番に適用されます。後から作成されたマイグレーションが先に適用されることはありません。
■Javaのフレームワーク
refirio:
Javaの有名なフレームワークについて教えてください。
ChatGPT:
Javaの有名なフレームワークには以下があります。
1. Spring Framework: 企業アプリケーション開発のためのフレームワーク。IoC、AOP、データアクセスなど多様な機能を提供する。
2. Hibernate: ORMフレームワーク。JavaオブジェクトとRDBのマッピングを行い、SQLの実行やトランザクション管理を自動的に行う。
3. Struts: Model-View-Controllerアーキテクチャを採用したWebアプリケーション開発用フレームワーク。
4. JavaServer Faces (JSF): JavaベースのWebアプリケーション開発用フレームワーク。
5. Play Framework: 簡潔で高速なWebアプリケーション開発用フレームワーク。
これらは一部ですが、Javaの有名なフレームワークです。アプリケーションの開発要件に合ったフレームワークを選択することが重要です。
refirio:
Spring Bootでデータベースのマイグレーションを行う方法を教えてください。
ChatGPT:
Spring Bootでデータベースのマイグレーションを行う方法は以下の通りです。
1. スキーマ変更を行うSQLスクリプトを作成する。
2. スキーマ変更を管理するためのフレームワーク(例: Flyway、Liquibase)を導入する。
3. スキーマ変更スクリプトをフレームワークが管理する対象のパスに配置する。
4. Spring Bootアプリケーションを起動するとフレームワークによって自動的にマイグレーションが行われる。
注意: マイグレーションは順番に適用されます。後から作成されたマイグレーションが先に適用されることはありません。
refirio:
仕事でシステム制作のプロジェクトを進めるにあたって、気を付けるべき点を教えてください。
ChatGPT:
1. クライアントのニーズを明確に理解し、それに沿ったシステムを制作すること。
2. 要件定義を徹底的に行い、必要な機能や性能を明確に把握すること。
3. プロジェクト管理の方法を決め、タイムラインや予算などを厳守すること。
4. チーム開発を行う場合は、それぞれのメンバーの役割やタスクを明確に決め、連携を図ること。
5. 試作品やプロトタイプを作成し、クライアントからのフィードバックを反映しながら完成させること。
6. システムの保守やアップデートも視野に入れ、継続的な改善を行うこと。
7. セキュリティの問題や個人情報保護の対応も忘れず、適切な対策を講じること。
■機械学習
refirio:
最急降下法を使って関数の式を求めるにあたって、標準化の必要性について教えてください。
ChatGPT:
最急降下法は、多変数関数の最小値を探索するための最適化アルゴリズムです。標準化(正規化)は、入力変数の値の分布が大きく異なる場合に、最急降下法の計算結果に偏りが生じることを防ぐために行われます。
標準化は、各入力変数を平均0、標準偏差1の正規分布に変換することで、異なる分布間の重み付けバランスを整えることができます。最急降下法は、各入力変数が同じスケールを持つことを前提としているため、標準化することで精度の向上が期待できます。
したがって、最急降下法を使って関数の式を求める場合、入力変数が大きく異なる分布を持つ場合は、標準化が必要であると言えます。
■PHPプログラム
refirio:
PHPでテキストファイルの特定行を編集するプログラムを書いてください。
ChatGPT:
こんにちは! PHP でテキストファイルの特定行を編集するには、以下のようなコードを使うことができます。
<?php
$file = 'file.txt';
$lines = file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
// 編集する行番号
$line_number = 5;
// 新しい内容
$new_content = "This is the new content for line $line_number.";
// 指定行を更新
$lines[$line_number - 1] = $new_content;
// 更新された内容をファイルに書き込む
file_put_contents($file, implode("\n", $lines));
?>
このコードでは、file 関数を使ってファイルを読み込み、指定行を更新するために配列の指定された要素を更新します。その後、file_put_contents 関数を使って更新された内容をファイルに書き込みます。
このコードは、特定の行だけを更新するため、大量のデータが含まれる大きなテキストファイルに対しても効率的に動作します。
refirio:
PHPでテキストファイルの特定行を編集するプログラムを書いてください。
ファイルはfopen関数で開き、排他制御を行ってファイルの内容が壊れないようにしてください。メモリ節約のため、ファイルの全文を配列に読み込むことは避けてください。
ChatGPT:
こんにちは! PHP でテキストファイルの特定行を編集するには、fopen 関数を使ってファイルを開き、排他制御を行いながら編集することができます。この方法は、大量のデータが含まれる大きなテキストファイルに対しても効率的に動作します。
以下は、特定の行を編集する PHP の例です。
<?php
$file = 'file.txt';
$line_number = 5;
$new_content = "This is the new content for line $line_number.";
// ファイルを開く
$fp = fopen($file, 'r+');
// 排他制御を開始
if (flock($fp, LOCK_EX)) {
// ファイルポインタを行の先頭に移動
for ($i = 1; $i < $line_number; $i++) {
fgets($fp);
}
// 特定の行を更新
fwrite($fp, $new_content . PHP_EOL);
// 排他制御を終了
flock($fp, LOCK_UN);
}
// ファイルを閉じる
fclose($fp);
?>
この例では、fopen 関数を使ってファイルを開き、flock 関数を使って排他制御を行います。その後、fgets 関数を使って特定の行までファイルポインタを移動し、fwrite 関数を使って特定の行を更新します。最後に、fclose 関数を使ってファイルを閉じます。
■サーバ監視
refirio:
Linuxのサーバ監視について、行うべきことを教えてください。
ChatGPT:
Linuxサーバーの監視は、システムの安定性とパフォーマンスを確保するために重要なタスクです。
以下は、Linuxサーバーの監視において行うべきことの例です。
1. システムリソースの監視:CPU、メモリ、ディスク使用量、ネットワークトラフィック、負荷などのシステムリソースを監視し、必要に応じて対処する。
2. ログの監視:システムログ、アプリケーションログ、セキュリティログなどのログを監視し、問題を発見した場合には対応する。
3. セキュリティの監視:不正なアクティビティや攻撃を監視し、セキュリティの脆弱性を特定し、修正する。
4. アプリケーションの監視:アプリケーションの稼働状況やエラーを監視し、必要に応じて再起動や修正を行う。
5. バックアップの監視:バックアップの実行状況やエラーを監視し、必要に応じてバックアップ手順を修正する。
6. システムアップデートの監視:最新のパッチやアップデートが入手可能かどうかを監視し、必要に応じてシステムをアップグレードする。
7. モニタリングツールの設定:モニタリングツールを設定し、適切なアラートを設定することで、問題が発生した場合に迅速に対処することができます。
以上が、Linuxサーバーの監視において行うべきことの例です。
ただし、これらはあくまで基本的な監視タスクであり、環境や要件に応じてさらに細かく監視対象を設定する必要がある場合があります。
ChatGPT4: 利用の開始
■料金
・ChatGPT3.5は無料で使える。ただしときどき負荷の影響で繋がらなかったり、はある。
・ChatGPT4は月額20ドル(約2,700円)で利用できる。
応答速度や負荷も改善されるらしい。
・4時間ごとに100メッセージの制限があるとされていたが、その後3時間ごとに25メッセージに変更になった。
今後さらに制限が厳しくなる可能性はある。
・画像を読み込ませての回答ができる…とメディアで紹介されたりしていたが、今のところ使えないらしい。
・ただしAPIを利用する場合は別途従量課金となる。(初回登録時に5ドル分の利用枠をもらえる。3ヶ月有効。)
ChatGPTの料金が複雑すぎる
https://zenn.dev/bolmatu/articles/4cacb9072750fe
ChatGPT-4の料金は?ChatGPT3.5との違いも紹介 | 青空ブログ
https://aozora-records.com/18281.html
ChatGPT4の使い方!料金やログインと申し込み方法も紹介! | そっちゃんブログ
https://sottyann.com/how-to-use-chatgpt4
■更新・解約
・契約日の一ヶ月後が更新日となり、解約した場合の日割りは無い。
ChatGPT Plus(有料版)の解約方法 - ゆるプロ日記
https://yurupro.cloud/3182/
ChatGPT Plusの解約方法 - BioErrorLog Tech Blog
https://www.bioerrorlog.work/entry/unsubscribe-chatgpt-plus
ChatGPT Plusに登録完了、その実力は?プランの更新日や解約方法も | ONE NOTES
https://1-notes.com/chatgpt-query-completed-registration-for-chatgpt-plus/
■プランのアップグレード
ChatGPT4の始め方と使い方【日本語訳と解説】 | BaskMedia
https://baskmedia.jp/chatgpt-4/
画面左下の「Upgrade to Plus」をクリック。
「Your plan」ダイアログが開いて「ChatGPT Plus」のプランを確認できるので、「Upgrade Plan」をクリック。
クレジットカード情報などを入力して登録する。
質問の前に、画面上部の「Model」で「GPT-4」を選択する必要がある。
(ログイン後は、毎回選択する必要があるみたい。)
■補足
質問できる回数は、どんどん減っているらしい。
「GPT-4」使われすぎ? 受付質問数、どんどん減少 3時間25問→さらに減る見込み - ITmedia NEWS
https://www.itmedia.co.jp/news/articles/2303/20/news092.html
チャットGPT GPT-4の質問できる回数が減った原因は?|25 messages every 3 hours | ミノタケガジェット
https://www.minotake-gadget.net/gpt4-message/
画像認識機能は今は使えないらしい。
GPT-4の画像を見せて質問する機能、スケッチからWEBサイト作成機能はまだ使えないのかに関して解説 | App Story
https://app-story.net/gpt-4-ability-to-show-images-and-ask-questionswebsite-creation-function-from-s...
ChatGPT4: やり取りの例
ChatGPT3.5よりも詳細な回答が得られる。
■PHPのフレームワーク
refirio:
PHPの有名なフレームワークについて教えてください。
ChatGPT:
PHPの有名なフレームワークには、以下のようなものがあります。
1. Laravel:
Laravelは、簡潔でエレガントなシンタックスを特徴とする、現代的なPHPフレームワークです。
Laravelは開発速度を向上させ、セキュリティやスケーラビリティを確保するための多くの便利な機能を提供しています。
Eloquent ORMやBladeテンプレートエンジンなどのコンポーネントが含まれています。
2. Symfony:
Symfonyは、PHPで構築されたウェブアプリケーションやAPIに適した高度なフレームワークです。
再利用可能なコンポーネント、拡張性、高速性、および堅牢性を特徴としています。
また、LaravelもSymfonyのいくつかのコンポーネントを使用しています。
3. CodeIgniter:
CodeIgniterは、軽量で高速なPHPフレームワークで、シンプルな構造が特徴です。
設定が簡単で、ドキュメントが充実しており、初心者にも扱いやすいフレームワークです。
4. CakePHP:
CakePHPは、簡単な設定とコードの再利用性を重視したPHPフレームワークです。
MVCアーキテクチャを採用し、セキュリティ機能が強化されています。
初心者から上級者まで幅広く利用されています。
5. Zend Framework (Laminas Project):
Zend Frameworkは、エンタープライズ向けの堅牢なPHPフレームワークで、現在はLaminas Projectとして開発が継続されています。
オブジェクト指向、モジュール性、拡張性に重点を置いており、大規模なプロジェクトに適しています。
6. Phalcon:
Phalconは、C言語で書かれた高速なPHPフレームワークです。
C拡張モジュールとして実装されているため、実行速度が非常に速く、メモリ使用量も少ないという特徴があります。
MVCアーキテクチャを採用しており、機能が豊富です。
7. Slim:
Slimは、軽量でシンプルなPHPマイクロフレームワークです。
RESTful API開発に特化しており、小規模なプロジェクトや簡単なウェブアプリケーションに適しています。
これらのフレームワークの選択肢は、開発者がプロジェクトの要件に応じて適切なものを選ぶことができます。
以下は、これらのフレームワークを選択する際に考慮すべきいくつかの要素です。
1. 学習曲線:
フレームワークの習得にかかる時間と労力は、プロジェクトに参加する開発者にとって重要な要素です。
LaravelやCodeIgniterは、学習曲線が比較的緩やかで初心者にも扱いやすいですが、SymfonyやLaminas Projectは、より高度な知識や経験が必要です。
2. パフォーマンス:
フレームワークのパフォーマンスは、アプリケーションのレスポンス時間やスケーラビリティに影響します。
PhalconはC言語で書かれているため高速ですが、LaravelやSymfonyは機能が豊富であるため、パフォーマンスがやや劣ることがあります。
3. 機能と柔軟性:
いくつかのフレームワークは、特定の目的に特化した機能を提供しています。
SlimはRESTful API開発に特化しているのに対し、LaravelやSymfonyはより多機能であり、さまざまなアプリケーションに適応できます。
4. コミュニティとサポート:
強力なコミュニティや充実したドキュメントは、開発者が問題を解決し、新しい機能を学ぶのに役立ちます。
LaravelやSymfonyは、大規模で活発なコミュニティと豊富なリソースがありますが、他のフレームワークはコミュニティやリソースが限られている場合があります。
これらの要素を考慮して、プロジェクトの要件や開発者のスキルに合ったフレームワークを選択することが重要です。
また、選択したフレームワークが今後も継続的なサポートやアップデートが提供されることを確認することも大切です。
■Javaのフレームワーク
refirio:
Javaの有名なフレームワークについて教えてください。
ChatGPT:
Javaの有名なフレームワークはいくつかありますが、以下に主要なものをリストアップしています:
1. Spring Framework (Spring Boot):
Springは、Javaプラットフォームのための軽量で包括的なフレームワークです。
Spring Bootは、Springアプリケーションの構築とデプロイを簡単にするための拡張機能です。
依存性管理、自動設定、テンプレートエンジンなどが含まれています。
2. JavaServer Faces (JSF):
JSFはJavaのWebアプリケーションフレームワークで、UIコンポーネントの再利用性を高めることを目的としています。
画面遷移やバリデーション、イベント処理などの機能があります。
3. Hibernate:
Hibernateは、Javaのオブジェクト/リレーショナルマッピング (ORM) フレームワークで、データベースとのやり取りを抽象化して扱うことができます。
Hibernateは、Javaアプリケーションでデータベースの操作を効率的に行うための方法を提供します。
4. Apache Struts:
Strutsは、JavaのWebアプリケーションフレームワークで、Model-View-Controller (MVC) パターンに基づいています。
Strutsは、アプリケーションの構造を整理し、モジュール化されたコンポーネントでアプリケーションを構築することを支援します。
5. Play Framework:
Playは、JavaとScalaでのWebアプリケーション開発をサポートするリアクティブなフレームワークです。
開発の迅速化、スケーラビリティ、高いパフォーマンスが特徴です。
6. Vert.x:
Vert.xは、Java、JavaScript、Groovy、Ruby、Scalaなどの言語での非同期プログラミングをサポートするポリグロットなフレームワークです。
高いスケーラビリティとパフォーマンスが特徴で、リアクティブなアプリケーション開発に適しています。
7. Vaadin:
Vaadinは、JavaでのWebアプリケーション開発をサポートするUIフレームワークで、サーバーサイドとクライアントサイドのコンポーネントを提供します。
UIの開発がシンプルで、リッチなユーザーエクスペリエンスを提供できることが特徴です。
Vaadinは、クライアントサイドのフレームワークを自動的に生成することで、開発者がサーバーサイドのJavaコードに集中できるようにします。
8. JHipster:
JHipsterは、JavaとAngular、React、Vue.jsなどのフロントエンド技術を組み合わせて、迅速な開発を可能にするアプリケーションジェネレータです。
Spring BootとAngularやReactをベースにしたアプリケーションを簡単に作成できます。
9. Micronaut:
Micronautは、Java、Groovy、Kotlinでのマイクロサービス開発をサポートする軽量なフレームワークです。
リアクティブなプログラミング、依存性注入、AOPサポートなどの機能があります。
また、スタートアップタイムの短縮や低メモリ消費が特徴です。
10. Quarkus:
Quarkusは、Javaでのクラウドネイティブアプリケーション開発をサポートするフレームワークです。
コンパイル時に最適化された状態でアプリケーションを実行することで、スタートアップタイムやメモリ消費を大幅に削減します。
また、GraalVMとの統合により、ネイティブイメージとしてアプリケーションをコンパイルできます。
これらのフレームワークは、Javaでのアプリケーション開発を効率化し、より高品質なプロダクトを作成するのに役立ちます。
プロジェクトの要件やチームのスキルに応じて、適切なフレームワークを選択することが重要です。
■プログラムの解説
ChatGPT4に、以下にある「回帰による予測」のプログラムを解説してもらったときの回答。
https://refirio.org/memos/technology/?file=Python.txt&mathjax=1#%E5%9B%9E%E5%B8%B0%E3%81%AB%E3%8...
ChatGPT:
このPythonプログラムは、最小二乗法を用いて一次関数の式を求めるためのものです。
以下に、プログラムの概要を示します。
1. 必要なライブラリをインポートします。
・numpy: 数値計算ライブラリ
・matplotlib: グラフ描画ライブラリ
2. 学習データを読み込み、標準化を行います。
・学習データは 'click.csv' というファイルから読み込まれ、train_x と train_y に格納されます。
・標準化を行うことで、データのスケールを揃えて学習が効果的に行われるようにします。
3. 予測関数(一次関数)と目的関数(誤差関数)を定義します。
・予測関数 f(x) は、θ0 + θ1 * x の形式です。
・目的関数 E(x, y) は、実際の値と予測値の二乗誤差の和の半分です。
4. 学習率(ETA)を設定し、θ0 と θ1 の初期値をランダムに設定します。
5. 誤差の差分が0.01以下になるまで、パラメータの更新を繰り返します。
・パラメータの更新は、勾配降下法を用いて行われます。
・更新回数や、更新後のパラメータの値、誤差の差分がログとして出力されます。
6. 学習が終了したら、学習データと予測関数をプロットし、結果を 'graph.png' というファイルに保存します。
このプログラムを実行することで、与えられた学習データに基づいて一次関数の式を求めることができます。
求められた一次関数は、学習データをもとに作成された予測モデルとなります。
■プログラムの解説(続き)
さらに「標準化について、詳細を解説してください。」と追加質問したときの回答。
ChatGPT:
標準化(standardization)は、データを扱いやすい形に変換する前処理手法の一つです。
特徴量のスケールが異なる場合、学習アルゴリズムがうまく機能しないことがあります。
標準化を行うことで、データのスケールを揃えることができ、学習アルゴリズムの性能を向上させることが期待できます。
標準化では、各特徴量の平均が0、標準偏差が1になるようにデータを変換します。
具体的には、以下の式を用いて標準化を行います。
z = (x - μ) / σ
ここで、
・x: 元のデータ
・μ: データの平均値
・σ: データの標準偏差
・z: 標準化されたデータ
この式によって、データの平均が0、標準偏差が1になるようにデータが変換されます。
標準化されたデータは、学習アルゴリズムに入力されることで、学習が効果的に行われるようになります。
標準化の利点は以下の通りです。
1. スケールの違いが学習の性能に影響を与えなくなります。
2. 収束速度が向上し、学習が効率的になります。
3. 特徴量の重要性がスケールに依存しなくなり、特徴選択や可視化が容易になります。
ただし、標準化はデータの形状や分布を変えてしまうため、データの解釈が難しくなる場合があります。
また、最大値や最小値が重要な場合は、正規化(min-max scaling)の方が適切な場合があります。
前処理手法の選択は、問題やデータに応じて慎重に行う必要があります。
ChatGPT4: 追加機能
■履歴の記録とトレーニングをOFF
ChatGPT Webサービス版で、履歴の記録・学習への利用をOffにする機能が実装されました! | DevelopersIO
https://dev.classmethod.jp/articles/chatgpt-web-chat-history-off/
Setting → Data controls → Chat history & training
をOFFにすると、履歴の記録・学習への利用を無効にできる。
機密情報を扱う場合、OFFにしてから使用するといい。
※場合によっては、ChatGPTにデータを渡さない(ChatGPTを使わない)ことも検討する。
■Webブラウジング
ChatGPT Plus、最新情報も回答する「Webブラウジング」 - Impress Watch
https://www.watch.impress.co.jp/docs/news/1500371.html
Setting → Beta feature → Web browsing
をONにした。
さらに質問画面(ログイン直後の画面)で
GPT-4 → Browsing
を選択した。
質問の前に毎回選択が必要みたいなので、GPT-3からGPT-4へ切り替える際にONにする。
もともと「現在の日本の総理大臣は誰ですか?」という質問には
「申し訳ありませんが、私の知識は2021年9月までで、その時点での日本の総理大臣は菅義偉でした。
現在の総理大臣については、私が情報を提供できるものではありません。
最新の情報を得るには、信頼できるニュースソースをご覧ください。」
という回答だったが、機能が有効になっていると。
「現在の日本の総理大臣は岸田文雄です。」
という回答に変わった。
また注釈として https://en.wikipedia.org/wiki/List_of_prime_ministers_of_Japan というURLが記載された。
これが回答時に参照したURLらしい。
「ChatGPT Plus」のウェブブラウジング機能、いったん停止に - ZDNET Japan
https://japan.zdnet.com/article/35206141/
7月3日に、Webブラウジングは停止されている。
再開時期は不明。
■プラグイン
ChatGPT plugins のベータ提供が開始され、約70種類のプラグインが利用可能になりました | DevelopersIO
https://dev.classmethod.jp/articles/chatgpt-plugins-beta/
Setting → Beta feature → Plugin
をONにした。
さらに質問画面(ログイン直後の画面)で
GPT-4 → Plugin
を選択した。
質問の前に毎回選択が必要みたいなので、GPT-3からGPT-4へ切り替える際にONにする。
No plugins enabled → Plugin store
試しに「All plugins」から「食べログ」のプラグインを探してインストールしてみる。
初期画面に戻ると、食べログのアイコンが表示されていた。
プラグインはチャットごとにインストールするものみたい。
これまでは「食べログで人気のラーメン屋さんを探してください。」のように質問しても、
回答は「私の知識は2021年9月までのものであり、現在の情報にアクセスする能力はありません。」のようなものだった。
食べログのプラグインを導入すると、「食べログで人気の焼き鳥屋さんを探してください。場所は〇〇付近でお願いします。」のように質問して、
回答は「以下のお店が大阪市中央区谷町で予約可能な焼き鳥のお店として見つかりました。」のようなものに変わった。
以降のメッセージで、予約可能な店がずらりと表示された。
■Code Interpreter
以下を参考に、Code Interpreterを有効化する。
ASCII.jp:「マジでやばい」ChatGPTでプログラムが実行できる“コードインタープリター“
https://ascii.jp/elem/000/004/144/4144588/
以下を参考に、実際に使用してみる。
メッセージの投稿前に、毎回「GPT-4を選択しているか」「Code Interpreterにチェックが入っているか」を確認すること。
ChatGPT Code Interpreter を利用して、お手軽にデータ分析・可視化 - Taste of Tech Topics
https://acro-engineer.hatenablog.com/entry/2023/07/11/120000
ChatGPTのCode Interpreterを活用してグラフを作成する | PROMPTY
https://bocek.co.jp/media/exercise/chatgpt/6924/
準備として、以下のサイトでダミーのCSVデータを作成する。
オプションはデフォルトのままとした。
ダウンロードしたCSVの文字コードは「UTF-8」にしておく。またファイル名を「data.csv」にしておく。
なんちゃって個人情報
http://kazina.com/dummy/
メッセージ投稿フォームの左に「+」があるので、ここから「data.csv」を選択する。
アップロードしたら、以下のプロンプトを与える。(現状はグラフ内で日本語を表示できないようなので、その対策を含めている。)
添付のデータを元に、都道府県ごとの人数をグラフで表示してください。
ただし、日本語の部分は英語もしくはローマ字で出力してください。
機密情報を含むデータを扱う場合、履歴の記録とトレーニングをOFFにしてから利用すると良さそう。
詳細は前述の「履歴の記録とトレーニングをOFF」を参照。
Code Interpreterは、数式をグラフ化して確認することにも使える。
一例だが、以下のようにすることでグラフを表示してくれる。
以下の数式をグラフで表してください。
y = 2x + 1
以下の数式をグラフで表してください。
y = 2x^2
■画像生成
10月5日から使えるようになったとのこと。
手元の有料アカウントでも使えることを確認できた。
【画像生成機能】ChatGPTの「DALL-E 3(DALLE3)」の使い方 | AI-ワークスタイルlおすすめAIツール紹介
https://ai-workstyle.com/ai-dall-e3/
解像度は今一つか…と思ったが、以下の記事と同じ内容で指示すると高画質な写真も生成された。
プロンプトの工夫で色々作れそうな。
ChatGPTのDALL-E 3による画像コントロール|IT navi
https://note.com/it_navi/n/n20e3e9a989f7
■Canva連携
Canvaと連携できる。
ただし「デザイン作成」ではなく「Canvaテンプレート検索」みたい。
「デザインには〇〇の文字を含めて」のように依頼すると、「お好きなデザインを選んで、〇〇という文字を追加して、Canvaで編集してください」と案内された。
ChatGPT Canva Pluginsの使い方と導入方法とは
https://www.marke-media.net/whitepaper/chatgpt-canva-plugins/
■GPT-4V
ChatGPTに、画像解析と音声出力機能が追加されるらしい。
9月25日より2週間かけて、Plusユーザに提供されるらしい。
画像対応ChatGPTで設計図からコードの世界が実現しててやばい - きしだのHatena
https://nowokay.hatenablog.com/entry/2023/09/28/095849
OpenAI、ChatGPTが画像を分析する『GPT-4V(ビジョン)』を発表。安全性、嗜好性、福祉機能を強化 | AIDB
https://aiboom.net/archives/55622
ChatGPTの音声・画像認識機能、GPT-4V(ビジョン)がエグイ!導入方法〜使い方を徹底解説 | AI-ワークスタイルlおすすめAIツール紹介
https://ai-workstyle.com/gpt-4v/
ついに音声対話できるようになった ChatGPT が引くほど自然でなんか凄いし怖い「もうこれ人間じゃん!」 - Togetter
https://togetter.com/li/2231979
10月12日に改めて確認すると、手元の有料アカウントでも使えることを確認できた。
電卓の画像をアップロードして「これをJavaScriptで作ってください。」とだけ書くと画面を作ってくれた。
さらに「JavaScriptの部分も実装してください。」と書くと、計算機能も実装してくれた。
ChatGPTの音声会話機能の使い方|IT navi
https://note.com/it_navi/n/n70b9de7222d1
11月に音声会話も試した。
Plusを契約している場合、iOSアプリやAndroidアプリから音声会話ができる。
Settings → New Features
「Voice conversations」を有効にする。
ホーム画面にあるヘッドホンアイコンをタップすると、ボイスの選択画面になる。
ひとまず「Sky」を選択して「Confirm」をクリックする。
これで、ホーム画面にあるヘッドホンアイコンをタップすると、音声でChatGPTとやり取りできる。
日本語で話しかけると日本語で、英語で話しかけると日本語で、それぞれ回答してくれる。
ChatGPTとのやり取りは、PC版のChatGPTに表示される。
音声入力と音声読み上げがある以外は、基本的には通常のチャットと扱いは同じみたい。
GPTs
■概要
・独自の知識を持ったチャットボットを作成できる。
一般公開できるが、ChatGPTに課金している人しか使用できない。
・そう遠くないうちに、OpenAIのストアで販売できるようになるらしい。
それなら会社概要を回答するようなボットではなく、特定の用途に特化した作業効率化ボットを作るためのものかもしれない。
【誰でも簡単】GPT の作り方|ChatGPT研究所
https://chatgpt-lab.com/n/nb7ca3c406730
【ChatGPT「GPTs(GPT Builder)」のおすすめ活用事例一覧】猛者達が開発した最強GPTsの使い方10選 | WEEL
https://weel.co.jp/media/gpts-case
ASCII.jp:俺のChatGPTこと「GPTs」で最高の英語教師を作り込んだ。題して「冴子先生強化計画」 (1/3)
https://ascii.jp/elem/000/004/172/4172275/
■作業内容(株式会社ABCについて教えてくれるボットを作る)
準備として、「会社のロゴ(PNGファイル)」と「会社の情報(UTF-8のテキストファイル)」を作成しておく。
メニューから「MyGPTs」をクリック。
「Create a GPT」をクリック。
何を作りたいか聞かれるので、今回は
「株式会社ABCについて教えてくれるボットを作る。」
と回答。
タイトルを「ABC InfoBot」と提案されたが、今回は
「「ABC information」にしてください。」
と回答。(ただし「ABC Information」と単語の先頭が大文字になった。)
ロゴを提案されたが、今回は
「ロゴはこの画像を使用してください。」
と回答してロゴを添付。
質問には「概要を伝えるべきか」「詳細を伝えるべきか」を確認されたので、今回は
「質問には、大まかな概要を回答してください。」
と回答。
どのように声をかけるか確認されたが、今回は
「質問には、カジュアルな口調で回答してください。」
と回答。
独自の言い回しがあるか確認されたが、今回は
「独自の言い回しはありません。」
と回答。
情報を提供するために準備万端です。右のプレイグラウンドで気軽に会話を始めてみてください。
と表示された。
引き続き、ABCについて学習させる
「Configure → Knowldge」からファイルをアップロードする
(テキストファイルで大丈夫そうだが、文字コードをUTF-8にしないとアップロード時にエラーになった。)
これで完成。
実際にチャットから質問を送ってみる。