0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

はじめに

こんにちは!
前回、エモーショナルな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 "##############################"

使い方

  1. OpenAI APIキーを取得:
    https://platform.openai.com/api-keys からAPIキーを取得し、スクリプトの YOUR_OPENAI_API_KEY に設定してください。
  2. スクリプトを実行:
    端末で sh ./emotional_ai_date.sh を実行します。
    (実行権限を設定すれば、shなしで動きます)
  3. 今の気持ちを伝える: 「嬉しい」「悲しい」「疲れた」など、今の気持ちを自由に言葉で入力します。

実行例

入力: "今日は暑いなー"

$ 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の活用で仕事にも変化を生むことができます。

自分なりの、楽しい仕事環境を作りましょう!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?