【イベントレポート】ChatGPT Meetup #1

::: note warn
- この記事は2023年5月11日に開催されたオフラインイベントの参加レポートです
- この記事は、2023年5月15日にあった社内勉強会で発表した内容を必要に応じてリライトした内容です
:::

## イベント概要
https://chatgpt.connpass.com/event/280987/

アーカイブ動画もあります！

https://youtube.com/live/bK5PMfox_c8

## LTまとめ
### LLM と自社データベースの協調動作によるファッションECへの応用
**岸本将志(DROBE)**

<script defer class="speakerdeck-embed" data-id="8003373e1a3647379069968ab1ab738a" data-ratio="1.77725118483412" src="//speakerdeck.com/assets/embed.js"></script>

実際に事業として稼働しているプロダクト「AIスタイリストさん」がどういう仕組みで実装されているか、デモも含めて紹介してくれました

GPTからの回答をjsonで返すように命令すると、返答が冗長にならない傾向があるらしい

モックを作る時に使用していたという「Streamlit」がちょっと気になる

https://streamlit.io/

簡単にWEBアプリを作れるPythonライブラリとのこと

<br>

### ノーコード x ChatBotで遊んでたらReActを実装しそうだった話
**村主壮悟(ABEJA)**
<script defer class="speakerdeck-embed" data-id="75f5cab797b245418344f06c20016200" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"></script>

ちょっとwebhook使いたいくらいの温度感でどのサーバーを使うべきか
オーバースペックになるのはバッドプラクティスになりかねない

ちょうどよさげなのがmake（integromat）
GUI（ノーコード）でワークフローを組んで色々できる、Node-REDに似てる印象でした

https://www.make.com/en

結論、ReActは作れず、理由としては「処理の結果を推測して次の処理を行わせることができなかった」とのことでした

推論エンジンを連携させるのは難しそうなので納得🤔

<br>

### [Minecraft × ChatGPT] マイクラで作りたいものを伝えると魔法みたいに実現してくれるコマンドを作る
**KawamataRyo(LAPRAS)**
<script defer class="speakerdeck-embed" data-id="e94af7f040024638bb913d334758a5d4" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"></script>

実際に今日のイベント会場を生成するデモを見せてくれたのですが、ほんの一瞬ででかい箱が生成されていてすごかったです
しかし出入り口はなくブロックを壊して中を見てみたところ、ゾンビとクリーパーがたくさんいるという秀逸なオチまでありました😂

暗に「エンジニアという陰の職は、マイクラの世界でもゾンビとかクリーパーに値するやろ」とAI様が煽ってきたのか😡

話の焦点はChatGPT APIのエラーハンドリングはどうすればいいのか、という話
#### よくあるエラーと解決策
- ChatGPTがコードを返してくれず（コードブロックの無い返答）、コード抽出ができない
    - 前回のやりとり＋コードを書くように依頼するプロンプトを再度送信する
- ChatGPTが間違ったコードを返答して、Evalで実行エラーが起こる
    - 前回のやりとり＋エラー文を送って、そのエラーを回避するコードを再度書いてもらうプロンプトを送信する

<br>

### 転職会議でGPT3.5を活用した企業口コミ要約機能をリリースした話
**落合隆行(リブセンス)**
<script defer class="speakerdeck-embed" data-id="3d363efb8c8a4abc8c0ddbaebc14dcc4" data-ratio="1.77725118483412" src="//speakerdeck.com/assets/embed.js"></script>
実際に事業として稼働しているWebサービス「転職会議」のサイトに書き込まれている、膨大な企業口コミをAIが要約してくれる機能を実装した際に困ったことや、それに対してやってみたことを紹介してくれました

個人的になるほどとなったのは以下の2つ

- 口コミの母数が少なくて、要約内容のネガポジが偏ってしまう
    - 要約に足りないくらいの情報量なら、そもそも要約させない
- 要約を出力した時の文字数を指定してもバラつきが生じる
    - おそらく日本語での出力は「日本語→英語→日本語」でされているようなので（推測）初めから投げるときは英語に翻訳させておく

<br>

### VectorStoreを使って社内向けのChatGPTを少し頭よくした件
**MotokiShirat**
<script defer class="speakerdeck-embed" data-id="fc8a710177874d4cb99c9a8bda380f40" data-ratio="1.77777777777778" src="//speakerdeck.com/assets/embed.js"></script>
ChatGPTあるあるの「やり取りの途中で急に人が変わったように記憶がリセットされる」問題の解決方法の例を紹介してくれました

pineconeなどのVectorStoreにChatGPTからの回答を格納し、類似した質問を受けた時にそこを参照して回答するように設計する

しかもVectorStoreのサービスによってはSimilarity Score（類似性）を設定できるものもあるので、そこをうまく活用してみる

<br>

### ChatDollKit×ChatGPTで音声会話AIBotを作ろう！
**Yoshikai (tinjyuu)**
<iframe src="https://docs.google.com/presentation/d/e/2PACX-1vQtCrkvQweyjzIvmDpQj3PoFpq8uxjjc5xpLSeIieAPbG__6BX2agXTximql6TV9gceE9if2qRhYz5r/embed?start=false&loop=false&delayms=3000" frameborder="0" width="960" height="569" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe>
声を検知してAIとお話しできるアプリケーションをどうつくるか紹介してくれました

初めて知ったフレームワーク👇 使ってみたい…！

https://protopedia.net/prototype/2375

デモも見せてくれたのですが、ちゃんと声を検知して声で返してくれることを確認できました

<br>

### Pineconeの重要性と課題
**八百俊哉(フィードフォース)**

※登壇資料公開していませんでした😭

一つ前のLTでも出てきていたVectorStoreについて、Pineconeを例に挙げてVectorStore（VecDB）とはどういうものなのかや、特有の課題など紹介をしてくれました
#### VectorStore（VecDB）とは
意味情報を含むデータを格納するためのデータベース
AIモデルより生成されたデータは多数の属性や特徴を持つため、特別な設計が必要となる

https://www.pinecone.io/learn/vector-database/

RDBとは違い類似性の検索に応用することができる

Pinecone独自の機能もあるようなので、データ表現を管理したいときはお試しで使ってみるのもいいかも…！

https://docs.pinecone.io/docs/quickstart

<br>

## おまけ
### OpenAIが提供しているプロンプトエンジニアリングの解説

https://www.deeplearning.ai/short-courses/chatgpt-prompt-engineering-for-developers/

Pythonを少々理解している開発者向けと書いてあった

### #2の開催も決定しています！

https://chatgpt.connpass.com/event/281310/

現地参加枠は既に定員MAXですが、Youtubeライブでの配信もあるので、興味がある方はぜひ参加登録してみてください！