2023年1月27日金曜日

最近話題のChatGPTを触ってみた

 

どうも。ひっくです。

ChatGPTという人工知能のサービスが最近話題を集めています。

興味を惹かれたので、私もChatGPTを試してみました。その感想を今回は書こうと思います。

ChatGPTとは


ChatGPTとは、米国のOpenAIが開発した対話式言語システムを採用するAIです。

2022年11月に公開され、わずか1週間も経たないうちに登録ユーザー数がなんと100万人を突破したそうです。

以下のようなことができるとされています。

  • 対人のような会話
  • Excelマクロの生成やプログラムコードの生成
  • 文章(小説や脚本等)の生成

 

ChatGPTを使用する


  1. ユーザー登録する

    こちらから登録します。(電話認証あり)

     

  2. チャット入力欄で質問を記載します。

    日本語に対応しているため、入力は日本語でOKです。

    実際に使用してみた動画が以下になります。

    途中フリーズしたので、再実行しています。(再実行時に回答が変わる点にも注目してください。)

     

 

使用してみた感想、まとめ


会話がかなり自然にできるということには率直に驚きました。

回答が長文傾向にありますが、「簡潔にしてみて」というと要約して短くしてくれます。

文の添削用途にも活用できそうです。

 

とはいえ、ChatGPTからの回答は正しくない、適切でないことも多くあるというのが使ってみての感想です。

強化学習によりユーザーとの対話の中で適切に修正されていくこともありますが、ユーザーが誤った情報を

正しいと教えてしまった場合には、応答結果が誤ったものとなる可能性は常にあります。

ファクトチェックは欠かせない、ということに気を付けましょう。(自分の専門範囲外の内容は特に)

 

興味を持った方は実際に使ってみてください。

今回はこのへんで。ではまた!

2023年1月22日日曜日

腰痛とデスクチェアの寿命

 こんにちは、やっまむーです。

先週の頭から腰痛が続いて日々の生活がつらいです。
仕事中もたびたび痛みを感じて、集中しにくい状況です。
姿勢の悪さが原因だと思いますが、こんなにつらいとは思いませんでした。

デスクチェアにも寿命

最初は自宅のデスクから立ち上がった際に尾てい骨付近に痛みを感じました。
その後、徐々に腰や背中、太ももの方まで痛みだしました。
背中や太ももは、痛みをカバーするために変に力が入っているのかなと推測。
そして数日すごして気づいたのが、職場よりも自宅のデスクチェアの方が座っているのが辛いことがわかりました。

調べてみると理由に納得。

触っている場所が丁度普段座っている部分ですが、クッション性がほとんどありません。
体重で中のウレタンフォームが完全にへたっています。
更に一部には突起物の感触があります。

座面の板と、隙間からネジが飛び出ていました。
ネジが刺さることはありませんが、クッション性がなくなった座面では触るとうっすら感触があります。
板の上に座っているような状況になっており、これで姿勢悪く座れば具合が悪くなるのも納得です。

購入から4年、そのうち1年はテレワークで毎日8時間以上座っていました。
外観は目立った劣化はありませんが、座面がこのような状態では長時間座ることはしんどいので買い替える事にしました。
今使用しているゲーミングチェアは価格だけで決めたので、次は座面の質などもじっくり検討しようと思います。

皆さんも腰をお大事に。
ではではー。

2023年1月15日日曜日

GAS(Google Apps Script)でYouTubeのデータ取得

こんばんは。ざわです。

今回はGAS(Google Apps Script)を使って YouTube のデータ取得をしてみようと思います。


作業の流れ

  1. GASのプロジェクト作成
  2. プロジェクトにYouTube Data API のサービス追加
  3. YouTube Data API を利用して個別動画の情報を取得

GASのプロジェクト作成

 GASを使うのは今回が初めてなので、プロジェクトの作成方法から書いていこうと思います。
 YouTubeから取得したデータは最終的にGoogleスプレッドシートに表示しますので、
 GoogleスプレッドシートにGASを紐づけて使用する方法(コンテナバインド型)で作成していきます。

 1.Chromeで自身のGoogleアカウントでログインし、Googleドライブを開く。


 2.マイドライブで右クリックし、[Googleスプレッドシート]>[空白のスプレッドシート]を選択。




 3.スプレッドシートで[拡張機能]>[Apps Script]を選択し、GASの画面を表示する。





プロジェクトにYouTube Data API のサービス追加

 1.サービスの「+」ボタンをクリックし、「YouTube Data API v3」を選択してサービスを追加する。



YouTube Data API を利用して個別動画の情報を取得

 ・今回は弊社の AIMEKチャンネルの「特急「しまかぜ」個室で行く伊勢志摩【社員旅行2022】」の動画情報を取得してみます。
 ・個別動画の情報を取得するので Videos リソースを使用します。
 ・取得する情報は以下とします。取得情報のプロパティはAPIリファレンスを参考に。
   ・タイトル
   ・再生回数
   ・いいね数
   ・コメント数
   ・投稿日時
   ・概要

function myFunction() {
  // 動画のURL
  const url = "https://www.youtube.com/watch?v=UdNCHGaWcb4"

  const sheet = SpreadsheetApp.getActiveSheet();
 
  // スプレッドシートにヘッダ行をセット
  sheet.getRange(1, 1).setValue("タイトル");
  sheet.getRange(1, 2).setValue("再生回数");
  sheet.getRange(1, 3).setValue("いいね数");
  sheet.getRange(1, 4).setValue("コメント数");
  sheet.getRange(1, 5).setValue("投稿日時");
  sheet.getRange(1, 6).setValue("概要");

  // 情報取得
  const {
    title,
    publishedAt,
    description,
    viewCount,
    likeCount,
    commentCount
  } = getVideoData(url)

  // 取得値をスプレッドシートに出力
  sheet.getRange(2, 1).setValue(title);
  sheet.getRange(2, 2).setValue(viewCount);
  sheet.getRange(2, 3).setValue(likeCount);
  sheet.getRange(2, 4).setValue(commentCount);
  sheet.getRange(2, 5).setValue(publishedAt);
  sheet.getRange(2, 6).setValue(description);
}

function getVideoData(url) {
// URLからビデオIDを取得
const urlArray = url.split('?v=')
const videoId = urlArray[urlArray.length - 1]

// YouTube Data APIにて情報を取得
const results = YouTube.Videos.list('snippet,statistics', { id: videoId });
const { items } = results
const { statistics, snippet } = items[0]
const { title, publishedAt, description } = snippet
const { viewCount, likeCount, commentCount } = statistics

return { title, publishedAt, description, viewCount, likeCount, commentCount }
}

 上記を実行した結果のスプレッドシートがこちらになります。




今回は1つの動画の情報だけを取得しましたが、
次はチャンネル内の複数の動画の一覧を取得をしてみたいと思います。
それではまた。

2023年1月6日金曜日

C#でFTP接続するならFluentFTPを使おう

 

どうも。ひっくです。

C#でFTP接続する機能を実装する場合、検索するとFtpWebRequestを使用する例が良く出てきます。

しかし.NET 6 以降では、FtpWebRequestは使用が非推奨となり、FTPはサードパーティライブラリの使用が勧められているようです。

今回は、サードパーティライブラリで使い勝手が良さそうな「FluentFTP」について紹介します。

FluentFTPについて


NuGetでリリースされるFTP 、 FTPS ライブラリです。

MITライセンスのため、商用利用も可能です。

広範な FTP コマンドに対応しており、以下のようなことができます。

  • ファイルのアップロード/ダウンロード
  • SSL/TLS 接続
  • ディレクトリ リストの自動解析
  • ファイルのハッシュ/チェックサム
  • ファイルのアクセス許可/CHMOD etc.

 

詳細は公式のREADME.mdを参照してください。

 

FluentFTPを使用する


  1. NuGetでFluentFTPをインストールします。
  2.  

  3. using ディレクティブを追加します。
  4. using FluentFTP;
    

FluentFTPの使用例


  1. FTPサーバーへの接続確認、接続権限有無の確認

    // FTPクライアントを作成して、FTP接続。
    using var conn = new FtpClient("192.168.131.222", "ftpUser", "ftpPass");
    conn.AutoConnect();
    
    // FTPサーバーへの接続結果を確認
    var isSuccess = conn.IsConnected;
    
    // 指定ユーザー、パスワードでの接続結果を確認
    isSuccess = conn.IsAuthenticated;
    
  2. ファイルアップロード、ファイル移動

    using var conn = new FtpClient("192.168.131.222", "ftpUser", "ftpPass");
    conn.AutoConnect();
    
    // ファイルアップロード
    conn.UploadFile(@"C:\UploadFile.pdf", "/docs/UploadFile.pdf");
    
    // ファイル移動
    conn.MoveFile("/docs/UploadFile.pdf", "/docs/sub/UploadFile.pdf");
    
  3. ファイル存在確認、ファイル削除

    using var conn = new FtpClient("192.168.131.222", "ftpUser", "ftpPass");
    conn.AutoConnect();
    
    // ファイル存在確認
    if (conn.FileExists("/docs/UploadFile.pdf"))
    {
        // ファイル削除
        conn.DeleteFile("/docs/UploadFile.pdf");
    }
    

 

上記は1例となります。

他の使用例については、公式のサンプルを参照してみてください。

 

まとめ


FTP操作をしたい場合、FluentFTPは使い勝手が非常に良いと思います。

C#でFTP接続する機能を実装する場合、使用してみてはいかがでしょうか。

 

今回はこのへんで。ではまた!