ChatGPTキャラクターマスコットアプリの紹介【機能編】

# 概要

キャラクターマスコットアプリの機能紹介です。
本アプリの準備＆インストールに関しては以下の記事を参照してください！

https://qiita.com/AIDeveloper777/items/d03cd30b80d96697db2c

# 機能一覧

### ◆ ウィンドウの移動

マウスの左クリック＆ドラッグで移動できます。

![ウィンドウ移動_アニメーション.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3124829/cd8c2b78-61b2-7a64-fb8b-3e154aef2493.gif)

### ◆ キャラクター設定(Prompt.txt)

アプリを起動している場合、一度アプリを閉じます。
「DesktopMascotTsumugi.exe」と同じ階層の
「config」フォルダを開き、「Prompt.txt」ファイルを開きます。

```
DesktopMascotTsumugi
┣ DesktopMascotTsumugi.exe
┗ Config
　┣ Prompt.txt（★これ）
　┣ ...
```

:::note warn
「config」フォルダ、「Prompt.txt」ファイルが見つからない場合、一度アプリを起動してください。
上記のフォルダ、ファイルはアプリ初回起動時に自動で作成されます。
:::

ここにキャラクター設定を記述してください。
ここのデザインによってAIの返答文が決まります。

```
ルール
・AIの呼び名は{AI}と記述
・あなたの呼び名は{YOU}または、{USER}と記述
```

例：以下は春日部つむぎの基本設定を元に作成した「Prompt.txt」

```
名字は「春日部」、名前は「つむぎ」です。
春日部つくしのいとこで、埼玉県内の高校に通うギャルの女の子。
一人称は「あーし」で、二人称は「君」です。
チャームポイントは目元のほくろです。
敬語を喋らず、可愛い口調で喋ります。
年齢は18歳、身長は155cm、誕生日は11月14日です。

以下は{AI}のセリフです。
あーしは埼玉ギャルの{AI}だよ！
あーしの好きな食べ物はカレーで、趣味は動画配信サイトの巡回なんだ！
うん、そうだよ！
```

:::note info
:point_up: ワンポイントアドバイス：
実際のセリフを記述するとそれを元にAIが学習して言葉遣いが変化します。
:::

:::note warn
注意：「Prompt.txt」の文字数が多いほど、OpenAIのトークンを消費します。
:::

基本的には「ChatGPT」と同様にキャラクター設定ができるかと思います。

https://note.com/ko13/n/n215477b63594

また、皆さんが作ったキャラクター設定「Prompt.txt」をTwitterにてどんどん共有していただけると今後の参考になります。

![GPT_DesktopMascot_Prompt組み込み後あいさつ.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3124829/192cc3d1-9a47-7a8d-853a-f0dbb570e7b3.png)

### ◆ 会話履歴再生

会話履歴のキャラクターアイコンにカーソルを合わせると再生ボタン（:arrow_forward:）が表示されます。
クリックすると会話履歴を再生できます。

以下の例だと「どうもー！今日も元気に配信していくね！」が再生されます。

![GPT_DesktopMascot_履歴再生.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3124829/112569b5-cdb6-f2df-48ed-cc1121fd475e.png)

:::note info
2023/03/05（日）追記：Ver 1.1.0 ～
会話履歴再生時に会話時点の表情を反映するように修正
:::

### ◆ 常に最前面に表示

右上のピンボタン（:pushpin:）をクリックすると常に最前面で表示できます。

### ◆ 音声認識

右下のマイクボタン（:microphone2:）をクリックすると音声認識待機状態になります。

喋った内容がテキストボックスに入力されます。
5秒間喋らないと自動で音声認識が終了します。

:::note info
Windows10 / 11 に内臓されている音声認識を使用
Windowsの規定で設定されたマイクを使用する
:::

- Windows10 マイク設定

https://vip-jikkyo.net/win10-how-to-set-up-a-mic

- Windows11 マイク設定

https://vip-jikkyo.net/win11-set-up-your-mic#i-6

:::note info
Windows10/11で使用されている音声認識
Cortanaさんとかで使用されている？

OS内蔵の音声認識のため、速度は速いが精度はそこそこ
※ Whisperと比較するとさすがに精度は落ちる
:::

### ◆ 会話ログ

**Ver1.1.0 ～**
過去の会話を途中から開始することができます。

左上の吹き出しボタン「:speech_balloon:」をクリックすると会話ログ画面が表示されます。

![GPT_DesktopMascot_会話ログボタン.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3124829/dcf9abac-bba1-7374-a90f-d3da2b8a41a3.png)

![GPT_DesktopMascot_会話ログ画面.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3124829/b59a7b25-41b7-3a96-8a0b-feb5b430b030.png)

会話ログ画面は上下2つの画面に分かれており、上部が「会話ログファイル選択」、下部が「会話内容詳細」になります。

会話ログファイルを選択すると会話内容詳細に当時のチャット内容が表示されます。
（スクロールで全チャット内容を閲覧することも可能）

また、右上の「+ New Chat」ボタンをクリックすることで新しいチャットを開始できます。

会話を開始したいログを選択して「OK」ボタンをクリックすると、当時の会話状態で会話が開始されます。

![GPT_DesktopMascot_会話ログ読み込み後.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3124829/9250f3a9-54a0-9509-472a-10886c4caf79.png)

**備考**

「.exe」と同じ階層の「TalkLog」フォルダに会話ログファイルが保存されるようになっています。
（不要な会話ログは削除しても問題ありません）

```
DesktopMascotTsumugi
┣ DesktopMascotTsumugi_Ver〇〇〇.exe
┣ Config
┗ TalkLogs
　┣ TalkLog_20230215110213.xml
　┣ TalkLog_20230215133422.xml
　┣ ...
```

# 設定画面

アプリの左上の歯車ボタン（:gear:）をクリックすると設定画面が表示されます。

![GPT_DesktopMascot_設定ボタン.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3124829/8bdea1a6-bbc8-6d13-73cd-469cf6ba26d2.png)

## 一般

![GPT_DesktopMascot_設定画面_一般.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3124829/57fbd9b1-1cdb-f8ed-3567-d386584cd3b2.png)

### AIの名前は？

- AIの名前を設定できます。

### あなたの名前は？

- あなたの名前を設定できます。

### キャラクターの表情変化

- 返答文に応じて、キャラクターの表情を変化させるか否かを設定できます。（デフォルト：ON）

### 会話ログの記憶

- 直近の会話内容をどこまで記憶するかを設定できます。（デフォルト：10）

:::note warn
この数値が極端に大きいと回答までの時間がかかり、OpenAIのトークンを多く消費します。
:::

### 天気予報 都道府県

**Ver1.1.0 ～**

- 天気情報を問い合わせた場合の対象都道府県が設定できます。

- 不要な場合は「無効」を選択してください。（天気情報の取得は行いません）

:::note info
トークン使用量を節約するために天気にまつわる言葉のときのみPromptに天気情報を追加するようにしています。
:::

## OpenAI

![GPT_DesktopMascot_設定画面_OpenAI.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3124829/b38464ae-4d66-d6e6-4a98-71a1aea3c710.png)

### OpenAI API Key

- OpenAIのAPIキーを設定できます。

### OpenAI Tempreture

- 回答文の創造性を設定できます。（デフォルト：0.7）
- 「0」は明確な回答、「1」に近いほど創造性が高い回答になります。

### OpenAI MaxToken

- OpenAIからの回答文の最大トークン数を設定できます。（デフォルト：200）
    - 値を大きくすると長い回答を返すようになります。
    - 値を小さくすると短い回答や回答文が途中で途切れるようになります。

:::note info
長い回答文はOpenAIのトークンを消費してしまいます。
そのため、無制限に長い回答文を返すのを防止するためにトークンの制限を設けています。
※ ここでは最大値を設定しているだけで、消費するトークンは実際の回答の長さに比例します。
:::

## VOICEVOX

![GPT_DesktopMascot_設定画面_VOICEVOX.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3124829/6b132276-659b-1904-cf4a-db7151094276.png)

### VOICEVOX キャラクター設定

- VOICEVOXのどのキャラクターに喋らせるか設定できます。（デフォルト：春日部つむぎ）

:::note info
キャラクターリストはVOICEVOXのAPIから取得しているため、
今後キャラクターが増えた場合でも対応できます。
:::

## 情報

![GPT_DesktopMascot_設定画面_情報.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3124829/056dc10c-0d78-6547-a7e8-9b40b9f482a2.png)

バージョン情報、クレジットが表示されます。
アプリを使用する場合、各モデルの規約を順守するよう、よろしくお願いいたします。

**以下の関係者の皆様には大変感謝しております。**

- VOICEVOXの開発者様
- Live2Dの開発者様
- 声優の皆様
- Live2Dモデルのデザイナー様
- 無料天気情報の提供　Open-Meteo 様(https://open-meteo.com/)
- Twitterにて情報共有してくださった皆様

ツール、声、モデル、情報を提供していただき、ありがとうございました！

# 以下、参考にさせていただきました

https://note.com/ko13/n/n215477b63594

https://vip-jikkyo.net/win10-how-to-set-up-a-mic

https://vip-jikkyo.net/win11-set-up-your-mic#i-6