PartyRockでキャラクターを作ってみた話

# 概要
[Megazone Japan Advent Calendar 2023](https://qiita.com/advent-calendar/2023/megazonejapan)の3日目に掲載するTech記事を執筆しました。🫡

この前リリースされた[PartyRock](https://aws.amazon.com/jp/about-aws/whats-new/2023/11/partyrock-amazon-bedrock-playground/?nc1=h_ls)というサービスを試してみました。PartyRockはAmazon Bedrockを基盤としたGenerative AI Appsサービスです。シンプルなUIで手軽に操作すると、Generative AI Appsが生成されます。例えば、ゲームのストーリー作成や仮想キャラクターの作成など、アイディアさえあればさまざまなAI Appsが作れると思います。また、現在**期間限定無料**なので、PartyRockを体験するのに最適なタイミングだと思いますね。

# AI Appの作成
今回は、ペットヒーローのキャラクター生成のAppを作成してみました。
詳細は次の手順で説明します。

## PartyRock Login

[PartyRock](https://partyrock.aws/)に移動し、右上の「Sign in」をクリックします。

<img width="800" src="https://github.com/jeayoon/myWork/assets/17561411/c7342857-0e43-4367-bddf-9e55d45a6ef6">

すると、Google, Apple, AmazonのアカウントでSign inができます。    
(レコードが回るUIはおもしろいですね👍)

<img width="800" src="https://github.com/jeayoon/myWork/assets/17561411/a5630784-5286-44c9-9f3a-43f385d5a2db">

Sign inしてから、PartyRock名を入力し、Submitをクリックします。
<img width="800" src="https://github.com/jeayoon/myWork/assets/17561411/e04ff5e1-8f8e-4f01-9a71-037bebe2745a">

PartyRockを作成したら、TopPageに移動します。
<img width="800" src="https://github.com/jeayoon/myWork/assets/17561411/d7053452-c7f5-407b-8941-270d321485ec">

## Build App

TopPageの「Build your own app」をクリックし、自分のAppを作成します。    
自分が欲しい内容を記載します。今回は「What is my pet's super hero name?」を入力して、「Generate app」をクリックします。

<img width="800" src="https://github.com/jeayoon/myWork/assets/17561411/103abc65-1f89-4498-9536-3d0ea8060020">

ここでは、独自のAppを作成することができます。具体的には、「What is my pet's super hero name?」 というテーマに基づいて、ペットのヒーロー名を生成するAppを構築します。次のように、text promptを使用して、Widgetから簡単にAppを作成できます。

<img width="800" src="https://github.com/jeayoon/myWork/assets/17561411/4d805eeb-853a-4c18-bb70-85cf6b48d10f">

pet nameにSparkyを入力すると、superhoro nameからいくつかの例が表れます。

<img width="800" src="https://github.com/jeayoon/myWork/assets/17561411/025794eb-74ba-48a3-8026-bd6b987b4740">

ただし、**Sparkyというペット名だけからペットヒーロー名を生成することは、Generative AIを十分に活用しているとは言えないかもしれません。**     
より関連性のある結果を得るために、追加のWidgetを利用してみましょう。  

## Add Widget

画面の右上にある 「Add Widget」をクリックします。

<img width="800" src="https://github.com/jeayoon/myWork/assets/17561411/b4eee9fd-5285-48e8-9ae6-23c10f32aac6">

Widgetの一番下に新しいWidgetができます。

<img width="800" src="https://github.com/jeayoon/myWork/assets/17561411/e87903af-5b42-4792-8596-413393a24ae3">

そのWidgetの「User Input」をクリックすると、右に「Edit Widget」という入力欄が表れます。

<img width="800"  src="https://github.com/jeayoon/myWork/assets/17561411/0d337619-de00-448f-a808-dc1ecd6d7b29">

次の値を入力して、「Save」をクリックします。
```
Widget Title : pet description
Placeholder : Describe your pet's personality in a few words
```
他のWidgetを追加して、次の値を入力して、「Save」をクリックします。
```
Widget Title : favorite horoes
Placeholder : Describe your favorite heroes
```
それでは、この２つのWidgetを追加することで、より関連性のある結果を得る準備が整いました。

```
Widget追加の前 : ペット名からペットヒーロー名を生成
Widget追加の後 : ペットの性格と好きなヒーロー名に基づいたペットヒーロー名を生成
```
ここまでできたら、次のように４つのWidgetができていると思います。
ちなみにWidgetはドラッグでサイズと位置を調整することができます。

<img width="800"  src="https://github.com/jeayoon/myWork/assets/17561411/b852bb09-6fa2-490a-944f-59c5d8ebfb5c">

先ほど追加したWidgetに例として以下の値を入力します。
```
pet description : a poodle dog
favorite horoes : the spiderman
```

<img width="800"  src="https://github.com/jeayoon/myWork/assets/17561411/a47060c0-b917-470d-b6c0-4374c59352c1">

ただし、superhero name Widgetには反映されていないと思います。右上のEditをクリックして、Promptを修正しましょう。
<img width="800"  src="https://github.com/jeayoon/myWork/assets/17561411/4d3da3e7-fb73-4639-b06c-a9a80979f00f">

## ペットヒーロー名の生成
Promptには以下の内容を入力して、「Save」をクリックします。    
内容は **ペット名、説明、好きなヒーロー名に基づいて、クリエーティブなヒーロー名だけを考え出す。** という意味です。    
すでに気づいたと思いますが、黄色のブロックしている部分はWidgetを表します。こちらの指定は`@Widget Name`となります。

<img width="400" src="https://github.com/jeayoon/myWork/assets/17561411/cd3b8c4c-7f84-4b42-a073-d81d4aa4a1ce">

superhero name Widgetには`Captain Poodle`が生成されましたね。

<img width="800"  src="https://github.com/jeayoon/myWork/assets/17561411/c2d79b21-fd64-4c35-ac32-a2e6213303d2">

## ペットヒーローのキャラクターの生成

追加でこのペットヒーローのキャラクターを生成してみます。    
上記で行ったように、Widgetを追加して、「Image Generation」をクリックします。

<img width="800"  src="https://github.com/jeayoon/myWork/assets/17561411/949b1583-2481-4727-890c-51fe9a2c5573">

キャラクターのWidgetには、以下の情報を入力してから、「Save」をクリックします。
superhero nameは特定の条件に基づく結果であり、superhero nameのWidgetからキャラクターイメージを生成するためには、対応するPromptを記述する必要があります。

<img width="400"  src="https://github.com/jeayoon/myWork/assets/17561411/a859e10b-ff96-44fd-b816-90734fa095a7">

結果、王冠を頭に被っている`Captain Poodle`というペットヒーローができました。👍

<img width="800"  src="https://github.com/jeayoon/myWork/assets/17561411/8ed053c7-fb0e-4012-9699-4d8dd0b35e9c">

ちなみに、「Retry」をクリックして、他の結果を得ることも可能です。

<img width="800"  src="https://github.com/jeayoon/myWork/assets/17561411/20ee0e99-f5fa-4718-9576-b27b26036a7f">

## AI Appの共有

このように、遊びの目的で楽しめますが、作成したAI Appが活用できるようの他人に共有することもできます。右上にある「Make public and Share」をクリックします。

<img width="800"  src="https://github.com/jeayoon/myWork/assets/17561411/89b62b7d-d4ec-4bd9-b43e-764057577bcb">

次のモーダルが表れたら、「Copy link to clipboard」をクリックして、共有します。

<img width="800"  src="https://github.com/jeayoon/myWork/assets/17561411/4fc84c14-24fc-4ec8-873b-33f4e5bed9a6">

実際にコピーしたリンクにアクセスすると、まるでテンプレートのように、各Widgetが整然と配置されています。それぞれのWidgetには生成したい内容を入力することで、ペットのヒーロー名やキャラクターを簡単に生成できます。そして、お好みに合わせてWidgetを調整して、自分だけのお気に入りを作成することもできます。

<img width="800"  src="https://github.com/jeayoon/myWork/assets/17561411/41a4d687-d4c9-4762-8fc2-229db7a241b5">

# 最後に

Generative AIの登場以来、Prompt Engineeringの作業が増えていると感じます。そして、PartyRockを触りながら、その中でもっとも重要なポジションを占める可能性があると思いました。 PartyRockはAI開発者でなくても利用できるので、その点が魅力的ですね。また、UIもシンプルで非常にわかりやすかったです。サービスは11月初旬にリリースされたばかりなので、無料期間中に試してみるのはいかがでしょうか。     
以上、PartyRockでキャラクターを作ってみた話についての記事でした。ありがとうございました！