はじめに
巷で話題のChatGPT、でも「データ漏洩が心配」とか「なんだかわからない」という理由で触ったことがない人が多いのも事実ですよね。Azure OpenAIを使用して、Microsoft Teams上にデプロイすることで、簡単に組織内にChatGPTをさわる環境を作成可能です。
前提
本記事はAzure OpenAI環境前提で作成しています。
ひと手間かければChatGPT のAPIでも応用可能ですが、その手順には触れません。
Azure OpenAIの申込み
Azure OpenAIは現在申込み制のサービスになります。フォームに必要事項を記入して、承認がおりるのを待ちましょう。
GPT-4の申込み
さらにAzure OpenAIでGPT-4を使うためにも現在(2023/04/20)は追加申込が必要です。
ゴール
指定したTeamsのチャネルで、指定キーワードを含む投稿をするとChatGPTが返信をくれます。
アーキテクチャ
Teamsチャネルに特定のキーワードが送られると、それをトリガーにして、
Azure OpenAIにLogic Appsを使用してHTTPリクエストを送ります。チャット形式で問い合わせできるようにしたいので、問い合わせ履歴はBlob Storageに保存し、必要なときに呼び出せるようにしておきます。
爆速デプロイ手順
上記記事を参考に、目指すは10分以内の爆速デプロイです。
事前に準備しておくもの
- リソースグループの場所を決めておく
- Logic Appsで監視するTeamsチャネル
- チャネルID
- グループID
- 取得方法が不明なときは → https://qiita.com/yamad365/items/e480f77e9102b132d258
- トリガーとなるキーワード
- Blob storage
- 履歴を保存する用に、コンテナも1つ作成しておく
- 接続文字列を取得しておく
-
Azure OpenAI
GitHubでテンプレートを配布してくれています。
こういう画面になります。
Open AI api endpointについては、記事内にもありますが、下記のフォーマットで入力してください。
https://[Open AI resource Name].openai.azure.com/openai/deployments/[Deploymentname]/chat/completions?api-version=2023-03-15-preview
バージョンは 2023-03-15-previewを使用してください。過去のものだとJSONのスキーマが異なるためうまく動作しません。
全部入力が終わったら「確認と作成」から、リソース類をデプロイしてください💪
Teamsに接続する
リソース作成が終わったら、Logic Appsのデザイナー画面へいき、Teamsの認証をします。
微修正
ほぼほぼ完成しましたが、微修正しましょう。
投稿を「ユーザー」から「Flow Bot」へ
※2023/04/21、作者のリポジトリに出したプルリクがマージされたので、この作業は不要になりました。
デフォルト構成のままだと、Teams認証を行った人が返信をするかたちになります。自分だけのTeamsチャネルならOKですが、他の人も使うようにするなら少し違和感があるかもしれません。投稿者をUserからFlow Botに変更しておきましょう。
無限ループを抑制する
キーワードによるトリガーを使用しているため、GPTの返信にキーワードが含まれている場合、自動でトリガーされてしまいます。赤色で隠したところがキーワードになります。
この無限ループを抑制する方法は複数考えられると思いますが、ChatGPTのSystem Roleに、返信文に絶対「{keyword}」は使用するなといれておきましょう。以下の画像を参考に2箇所変更してください。
You are an AI assistant that helps people find information. Never include the word '{keyword}' in your answer.
この作業をしておくと、ほとんど返信文にキーワードをいれなくなるので、無限ループに陥る可能性は激減します。
完成🎉
これで完成!スムーズにやっていけば10分かからないはずです。
データ漏えいのない、企業独自のChatGPTが完成しました。
道具はそろったのであとはアイデア次第!業務効率化、新しいアーキテクチャを考えていきましょう💪
改めて参考記事
感謝!