はじめに
こんにちは!
前回、エモーショナルなdateコマンドを作ろう!でemotional_date
コマンドを作成しました。
今回は、OpenAI APIと連携して、気持ちを理解して時を告げるdateコマンド、「emotional_ai_date」コマンドを作成します。
コード
今回は、gpt-3.5-turboを使います。
必要に応じて、モデルを変更してください。
emotional_ai_date.sh
#!/bin/bash
# --- APIキーの設定 ---
OPENAI_API_KEY="YOUR_OPENAI_API_KEY" # OpenAIで取得したAPIキー
# --- OpenAI API を呼び出して感情分析とメッセージ生成を行う ---
function get_emotional_message() {
local current_feeling="$1"
local current_date="$2"
local prompt="私は今、'${current_feeling}'と 感じています。今の時間帯'${current_date}'と今の気持ちに合わせた、ポジティブなメッセージをください。"
local response=$(curl -s -H "Content-Type: application/json" \
-H "Authorization: Bearer ${OPENAI_API_KEY}" \
-X POST \
-d "{\"model\": \"gpt-3.5-turbo\", \"messages\": [{\"role\": \"user\", \"content\": \"${prompt}\"}], \"temperature\": 0.7}" \
https://api.openai.com/v1/chat/completions)
# レスポンスからメッセージ部分を抽出
local message=$(echo "$response" | grep -o '"content": "[^"]*"' | sed 's/"content": "//g' | sed 's/"//g')
echo "$message"
}
# --- メイン処理 ---
echo "##############################"
read -p "今の気持ちを教えてください: " current_feeling
now=$(date)
emotional_message=$(get_emotional_message "$current_feeling" "$now")
# 年月日時分秒を取得
year=$(date +%Y)
month=$(date +%m)
day=$(date +%d)
hour=$(date +%H)
minute=$(date +%M)
second=$(date +%S)
# emotional_message を fold コマンドで改行
formatted_message=$(echo "$emotional_message" | fold -sw 80) # 80文字ごとに改行
# 取得した年月日時分秒と感情メッセージを表示
echo "##############################"
echo "${year}年${month}月${day}日 ${hour}時${minute}分${second}秒"
echo "##############################"
echo "${formatted_message}"
echo "##############################"
使い方
-
OpenAI APIキーを取得:
https://platform.openai.com/api-keys からAPIキーを取得し、スクリプトのYOUR_OPENAI_API_KEY
に設定してください。 -
スクリプトを実行:
端末でsh ./emotional_ai_date.sh
を実行します。
(実行権限を設定すれば、sh
なしで動きます) - 今の気持ちを伝える: 「嬉しい」「悲しい」「疲れた」など、今の気持ちを自由に言葉で入力します。
実行例
入力: "今日は暑いなー"
$ sh emotional_ai_date.sh
##############################
今の気持ちを教えてください: 今日は暑いなー
##############################
2024年07月07日 13時47分48秒
##############################
今日は暑いけれど、夏の陽気を楽しんでみてはいかがですか?外に出て新しい冒険を楽し
むのも良いですし、涼しい場所でゆっくり過ごすのもいいですよ!自分にとって最高の夏
の一日を過ごしてくださいね!
##############################
入力: "お腹すいた"
$ sh emotional_ai_date.sh
##############################
今の気持ちを教えてください: お腹すいた
##############################
2024年07月07日 13時48分18秒
##############################
お腹がすいているときは、美味しい食事を楽しむチャンスです!自分にご褒美を与えて、
満腹になりましょう。美味しい食べ物で体も心も満たされること間違いなしです。楽しい
食事の時間を過ごして、リフレッシュしましょう!
##############################
入力: "悲しい"
$ sh emotional_ai_date.sh
##############################
今の気持ちを教えてください: 悲しい
##############################
2024年07月07日 13時57分05秒
##############################
悲しい気持ちも大切ですが、その感情を抱えながらも前に進むことができるんです。自分
を励まして、明るい未来を信じてください。あなたは強くて、乗り越えられるはずです。
一歩ずつ進んでいけば、きっと幸せな日々が待っています。頑張ってください。
##############################
補足
- OpenAI APIの利用料金が発生する可能性がありますので、ご注意ください
- APIのレスポンス速度や内容は、OpenAIのサービス状況に依存します
- 今回は簡易版ですが、実際に利用する際は、APIキーは環境変数で管理してください
まとめ
今回は、emotional_dateをさらに発展させて、AIを組み込んでみました。
生成AIの活用で仕事にも変化を生むことができます。
自分なりの、楽しい仕事環境を作りましょう!