ChatGPTを開発した会社

今や聞いたことがない人の方が、少ない「Chat-GPT」ですが開発元OpenAIの事はご存知でしょうか。
本記事では、OpenAIがどんな所かを簡易に説明できればと思います。

OpenAIについて
OpenAIですが、正式名称 OpenAI Inc.といい2015年にサンフランシスコで設立されました。
設立メンバーには数々の著名人が名を連ねています。
なんと、設立時には合計で10億ドルがOpenAIに提供されました。(日本円だと1000億円ぐらい)

最高責任者について
OpenAIの最高責任者であるサム・アルトマンという方はプログラムーであり起業家・投資家です。OpenAIの設立の際は30歳になります。
サム・アルトマンさんの経歴を簡単に紹介させていただくと19歳の時にスマホアプリの会社立ち上げ・会社を買収->Yコンビネータ社にパートナー契約し・代表に就任という凄い経歴です。

今・今後のOpenAI
その後OpenAI社は2022年11月にChatGPTを発表し、2023年の2月にChatGPT Plusを開始しています。
ChatGPTはGPT-3.5がベースモデルになりますが、最近GPT4が追加されました。

今後ChatGPTがどのように進化していくかは想像もつかないですが公開されて半年ほどで社会現象を起こすコンテンツを開発したOpenAI社がどのような会社になっていくか楽しみです。

【Laravelとトロッコを連携させてデータをExcelに出力する方法】

今回は、【Laravelにてトロッコを使用したデータの出力】について実装していきましょう。

※Laravel バージョンは9をベースにしております。

目次

――――――――――――――――――――――――――――

①前提

②実装

③発展

――――――――――――――――――――――――――――

①前提に

トロッコとは?・・・trocco®は、ETL/データ転送・データマート生成・ジョブ管理・データガバナンスなどの
データエンジニアリング領域をカバーした、分析基盤構築・運用の支援SaaSです。

・「/trocco」のアクセスにて処理の実行していきます。
 ※シンプルに実装したいため、今回はControllerなどは使わずにRouteの中で実装します。

・トロッコにcsvでデータを渡し、そこからExcelにデータを渡し出力していきます。

・文字コードは「UTF-8」を使用します。※Laravelではcsvの出力はデフォルトで「UTF-8」になってます。

②実装

では、実際に処理を見ていきましょう。

Route::get('/trocco', function () {
$callback = function() {
$csv = fopen('php://output', 'w');
$users = User::get(['id','name','email']);
foreach ($users as $user) {
fputcsv($csv, [
$user->id,
$user->name,
$user->email,
]);
}
fclose($csv);
};
return response()->stream($callback, 200, [
'Content-Type' => 'text/csv',
]);
});
Route::get(‘/trocco’, function () {
┗https://○○/troccoにアクセスがあった時の処理を記載します。

$callbackの中でcsvファイルを作成していきます。
$csv = fopen(‘php://output’, ‘w’);
┗ファイルを開きます。

$users = User::get([‘id’,’name’,’email’]);
┗Modelを使用し、userテーブルのidと名前、メールアドレスを取得します。

foreach ($users as $user) {
┗件数分繰り返し処理を行います。

fputcsv($csv, [$user->id,$user->name,$user->email,]);
┗開いたファイルに第二引数の配列を書き込みます。

fclose($csv);
┗ファイルを閉じてcsvファイルの完成です。

最後にreturn response()->stream($callback, 200, [‘Content-Type’ => ‘text/csv’,]);  にてcsvのファイルを『$callback』にて作成し返します。

③発展

このまま実装したままだと、誰でもアクセスされるとユーザー情報が取れてしまいます。

セキュリティ的に問題が大ありなので、アクセスにIP制限をかけたいとおもいます。

IP制限の実装は簡単で、【Route::get(‘/trocco’, function () {】の中の一番上に以下の処理の追加で制限をかけることができます。

// IPアドレス許可リスト


$white_list = [

'○○.○○○.○○.○○○',
'○○.○○○.○○.○○○',
'○○.○○○.○○.○○○',

];

if (config('app.env') != 'local' && ! in_array(request()->ip(), $white_list)) {
abort(403);
}

 

以上でLaravelにてトロッコを使用したデータの出力機能の完成です!!
いつの日か、トロッコについてもまとめてみようと思います。