Chat GPT とモデルについて考えてみる

Chat GPT 使ってますか?

それはもう本当に色んな使い方が出来るので、逆にどう使っていいのかわからない部分もありますね。
Chat GPT をどう使っているかといった勉強会が増えてきそうです。

自分は仕事では以下のようなことで使ってます。

  • 英語
  • 変数名、メソッド名が不自然じゃないか
  • コードレビュー(もっといい書き方がないか)

などです。

モデル について聞いてみたかったのですが、 結構勉強になったのでここでは簡易的なサンプルに置き換えてやってみました

会話形式でやってみます。

Q. オンライン書店のドメインモデルの一例を教えてください。

(あ、今は書店だけど、今後は本以外も売っていく可能性は大いにあるな…)
Q. 後に書籍以外も売る可能性があるのですが、BookはItemにしたほうがいいですか?

(Itemは広すぎるかな…?)
Q. Itemを消して、 Book Music Movie などに分けるのは好ましくないですか?

(う~ん…どんな固有の特性や振る舞いがあるか今のところ想像がつかないんだよね…、 とはいえ商品の種類が多くなることを考えると…)

Q. Item をインターフェースにして後のBookなどは具体的な実装でなんとかしようと思いますが、どうですか?

~終~

本来は、もっと説明が必要になることを聞いていたのですが、自分の言葉が足りな過ぎて、ちょっとずれた回答が来ることがありましたね。
逆に Chat GPT に誤解されずに回答がさくさく来るような人は、人に説明するのも上手いんだろうなと思いました。
コンテキスト(使いたかった)も説明しないといけないので、ドメインを洗練させるために言葉にしてChat GPT に確認してもらうのも面白そうです。

補足情報を結構くれるので、この部分分からなかったから聞いてみようとなるのもすごいですね。

的外れな回答(特に3.5)をする場合もあるので情報が最終的には自分で回答の確認をした方が良いですがそれでも凄いです。
課金が必要にはなりますが、仕事や大事な場面で利用する場合はGPT-4 の方がいいかなと思います。

Maven IntelliJでデバッグできない

Maven。♪それは君が見た光~ 僕が見た希望~♪

3年ぶりぐらいに mvn とか使った私です。

ちょっととあるJavaで書かれたたオープンソースのプロジェクトのソースコードが読みたくて、ダウンロードしたけれども、IntelliJですぐデバッグできなかったのでメモです。

① Run → Edit Configurationsをクリック

②+マークをクリックした後、Mavenを選択

③Runのところに、本来はテストコードを走らせるところに

mvn test

なので

test

だけ入力すればいいんですが、IntelliJでデバッグするために

-DforkCount=0

というオプションが必要です。

なので、IntelliJのRunの欄に下記のように入力します。

-DforkCount=0 test


【AWS】【Lambda】【Boto3】稼働中のEC2インスタンスを取得する

ご無沙汰しております。オンラインコンサルタントの直井です。だいぶ気温も上がり、桜の花びらが開き始め春の訪れを感じることができるようになってきました。

さて、今回はLambda(Python)を使って稼働中のEC2インスタンスの情報を取得する方法をご説明致します。

import json
import boto3

def lambda_handler(event, context):
    ec2 = boto3.client('ec2')
    try:
        name_tag_key = 'tag:aws:autoscaling:groupName'
        name_tag_value = '' #特定のNameタグがついているインスタンスに絞り込み
        instance_state_key = 'instance-state-name'
        instance_state_value = 'running' #稼働中のインスタンスに絞り込み
        reservations = ec2.describe_instances(
                Filters=[{'Name':name_tag_key ,'Values':[name_tag_value],},{'Name': instance_state_key,'Values': [instance_state_value]}])
    except ClientError as e:
        print('#ClientError!! at get_instance()')
        raise e

tag:aws:autoscaling:groupNameでASGのNameタグが付与されているインスタンスに絞り込みます。更に、instance-state-nameがrunningのインスタンスへ絞り込みます。

意外に稼働中(runnning)への絞り込みが足りず終了したばかりのインスタンスを取得してしまうことがしばしあります。ご安全に

【Vue】Composition API のCDNなどでできるめちゃ簡単なサンプルコード

どうも、Vueに時々取り組んでいる私です。

さて、Composition APIというものがありまして、Composition APIを説明してくれているサイトもいっぱいあります。公式サイト

ただ、私はまずは触ってみたいと思うタイプなので、サクッと試したいなと思って
「 Composition API  サンプル」
と検索してみても、nodeモジュール入れましょうとか、TypeScriptで作りましたとか、そういうちょっと手間がかかるサンプルが多かったので、私のような人のために載せておきます。

というわけで、以下Vueとcomposition APIはCDNから読み込みでやる(URLで読み込むということです)めちゃくちゃ簡単なサンプルです。

Vueのバージョン:2.6.10
Composition API:1.7.1

<!DOCTYPE html>
<html lang=”ja”>
<head>
    <meta charset="UTF-8">
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script>
</head>
<body >
<div id ="sample">
    <div>性<input type="text" v-model="lastName"></div>
    <div>名<input type="text" v-model="firstName"></div>
    <div>フルネーム:{{fullName}}</div>
</div>
<script src ="https://cdn.jsdelivr.net/npm/@vue/composition-api@1.7.1"></script>
<script type="text/javascript">
    const ref = VueCompositionAPI.ref
    const computed = VueCompositionAPI.computed

    new Vue({
        el:'#sample',
        setup(){
            const lastName = ref('渋川')
            const firstName = ref('剛毅')
            const fullName = computed(() => lastName.value +' '+ firstName.value)
            return {lastName, firstName, fullName}
        }
    })

</script>
</body>

上記をコピペしてsample.htmlという名前で保存して、ブラウザで開けばできます。

ここではComposition APIとはなんだとか、上記のコードの解説はしません。

私的にはこちらの記事がわかりやすかったです。

https://kobatech-blog.com/vue-composition-api/


S3のオブジェクトをAWS CLIを利用して一括でダウンロードする

表題の通りです。

【 AWS 公式 ドキュメント】 オブジェクトのダウンロード

S3コンソールの使用のところの注記に「一度にダウンロードできるオブジェクトは 1 つだけです。」とあります(2023/02/17時点)。

ディレクトリをダウンロードしようとチェックを入れても、ダウンロードの部分が有効になりません。

コンソールでやろうとするのは諦め、aws-cliを利用して行いました。

aws-cliのバージョンは、2.2.38です。

上の画像にある「testdir」をダウンロードしたいと思います。
コンソールでダウンロードしたいオブジェクトをクリックして、「S3 URIをコピー」しておきます。

注意点ですが、 公式ドキュメントにあるように

オブジェクトをダウンロードすると、データ転送料金が適用される

ので、不必要に大きな容量をダウンロードするのはやめた方がいいと思います。

実行コマンドは下記です。

aws s3 cp コピーしたURI コピーしたいローカルPCのパス --recursive

自分は、ホームディレクトリにあるドキュメントのtestディレクトリに入れたかったので以下のコマンドでダウンロードしました。