1
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?

More than 1 year has passed since last update.

【生成AIアプリ100チャレンジ】(20)音楽レビューアプリ

Posted at

スクリーンショット 2024-05-06 19.44.15.png

開発環境

Server lightSail
Language Python3.11
Framework Django
DB sqlite3

ローカル環境ではPythonのvenvを使用。エディタはvs codeです。
目的
音楽レビューのフレームワークです。
タイトル、アーティスト、プロデューサー、ジャンル、レーベル、推薦曲、リリース日などを入力して、フレームワークに沿ってレビューを完成してくれます。

コード

qiita.rb

    chat_results = ""
    if request.method == "POST":
        form = ChatForm(request.POST)
        if form.is_valid():
            title = form.cleaned_data['title']
            artist = form.cleaned_data['artist']
            genre = form.cleaned_data['genre']
            producer  = form.cleaned_data['producer']
            label = form.cleaned_data['label']
            recommend = form.cleaned_data['recommend']
            track_list = form.cleaned_data['track_list']
            members = form.cleaned_data['members']
            if 'release' in form.cleaned_data and form.cleaned_data['release'] is not None:
                release = form.cleaned_data['release']
                release = release.strftime('%Y-%m-%d')
            else:
                release = ''
            review = form.cleaned_data['review']
            try:
                client = OpenAI(
                    api_key = OPENAI_API_KEY,
                )
                review = client.chat.completions.create(
                    model="gpt-3.5-turbo",
                    messages=[
                        {
                            "role": "system",
                            "content": f"""
                            導入部
                            \nーーーーーーーーーーーーーーーーーーーーーー\n
                            {review}
                            \nーーーーーーーーーーーーーーーーーーーーーー\n
                            この音楽作品の評論を書いています。300文字以内に綺麗に校正してまとめてください。
                            """
                        }
                    ],
                )
                review_result = review.choices[0].message.content
                review_result = review_result.replace("\n", "<br>")
                print(review_result)

                tracks = track_list.split("\n")
                numbered_track_list = ""
                for i, track in enumerate(tracks, start=1):
                    numbered_track_list += f"{i}. {track}<br>"
                members = members.replace("\n", "<br>")
                chat_results = "アルバム名:" + title + "<br>アーティスト:" + artist + "<br>ジャンル:" + genre + "<br>プロデューサー:" + producer + "<br>レーベル:" + label + "<br>リリース:" + release + "<br><br>レビュー:<br>" + review_result + "<br><br>おすすめ曲:<br>" + recommend + "<br><br>収録曲:<br>" + numbered_track_list + "<br><br>参加メンバー:<br>" + members

            except Exception as e:
                return HttpResponse(f"API呼び出し中にエラーが発生しました: {str(e)}", status=500)
        else:
            return HttpResponse("フォームのデータが無効です。", status=400)
    else:
        form = ChatForm()

各フレームワークの課題に合わせて出力されます。

アプリ画面
スクリーンショット 2024-05-06 19.44.15.png

感想
レビューの校正は一部分ですが、収録曲などを整理してフォーマット通りに出力してくれるので助かります。

1
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
1
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?