フライングブックに ChatGPT ボットをデプロイ#
date: 2023 年 4 月 7 日
slug: 21
status: Published
tags: 技術
type: Post
プロジェクトのオープンソースアドレス:オープンソースリンク
ボットの紹介と機能#
フライングブック X(GPT-3.5+DALL・E+Whisper)、オフィスのインテリジェントアシスタントを実現。
機能:#
- 🗣 音声交流:プライベートでボットと自由に会話
- 💬 多話題対話:プライベートおよびグループチャットでの多話題ディスカッションをサポート、高効率で一貫性のある
- 🖼 テキストから画像:テキストから画像を生成し、画像検索をサポート
- 🛖 シーンプリセット:豊富なシーンリストを内蔵し、AI キャラクターをワンクリックで切り替え
- 🎭 役割演技:シーンモードをサポートし、ディスカッションの楽しさと創造性を増加
- 🔄 コンテキスト保持:返信ボックスで同じ話題のディスカッションを続けることができる
- ⏰ 自動終了:タイムアウトで自動的に会話を終了し、ディスカッション履歴をクリアすることをサポート
- 📝 リッチテキストカード:リッチテキストカードの返信をサポートし、情報をより豊かに
- 👍 インタラクティブフィードバック:ボットの処理結果を即座に取得
- 🎰 残高確認:トークン消費状況を即座に取得
- 🔙 履歴バックアップ:簡単に過去の会話をバックアップし、話題のディスカッションを続ける 🚧
- 🔒 管理者モード:内蔵の管理者モードで、より安全で信頼性の高い使用 🚧
- 🌐 多トークン負荷分散:生産レベルの高頻度呼び出しシーンを最適化
- ↩️ ️逆プロキシをサポート:異なる地域のユーザーにより迅速で安定したアクセス体験を提供
- 📚 フライングブックドキュメントとのインタラクション:企業の従業員のためのスーパーアシスタント 🚧
- 🎥 トピック内容を瞬時に PPT に変換:報告がこれまで以上に簡単に 🚧
- 📊 表の分析:フライングブックの表を簡単にインポートし、データ分析の効率を向上 🚧
- 🍊 プライベートデータトレーニング:会社の製品情報を利用して GPT を再トレーニングし、顧客の個別ニーズをより良く満たす 🚧
プロジェクトの特徴#
- 🍏 会話は OpenAI-gpt-3.5-turbo インターフェースに基づいている
- 🍎 lark を通じて、ChatGPT をフライングブックおよびフライングブック国際版に接続
- 🥒 Serverless クラウド関数、ローカル環境、Docker、バイナリインストールパッケージなど、さまざまなチャネルでのデプロイをサポート
- 🍋 goCache メモリキー値キャッシュに基づいている
デプロイチュートリアル#
Open Ai#
このステップでは Open Ai の API を取得する必要があります。以前に説明したので、ここでは繰り返しません。
プロジェクトのデプロイ#
1. Docker デプロイ#
docker run -d --restart=always --name feishu-chatgpt2 -p 9000:9000 -v /etc/localtime:/etc/localtim:ro \
--env APP_ID=xxx \
--env APP_SECRET=xxx \
--env APP_ENCRYPT_KEY=xxx \
--env APP_VERIFICATION_TOKEN=xxx \
--env BOT_NAME=chatGpt \
--env OPENAI_KEY="sk-xxx1,sk-xxx2,sk-xxx3" \
--env API_URL=https://api.openai.com \
--env HTTP_PROXY="" \
dockerproxy.com/leizhenpeng/feishu-chatgpt:latest
注意
BOT_NAME
はフライングブックボットの名前です。例えば韵酱の猫娘P60 E 青春探索版
OPENAI_KEY
は openai キーで、複数のキーはカンマで区切ります。例えばsk-xxx1,sk-xxx2,sk-xxx3
HTTP_PROXY
はホストのプロキシアドレスです。例えばhttp://host.docker.internal:7890
、プロキシがない場合は設定する必要はありませんAPI_URL
は openai API インターフェースのアドレスです。例えばhttps://api.openai.com
、逆プロキシがない場合は設定する必要はありません
イベントコールバックアドレス: http://IP:9000/webhook/event カードコールバックアドレス: http://IP:9000/webhook/card は後でフライングブックのバックエンドに入力してください。
2. Docker Compose デプロイ#
docker-compose.yaml を編集し、environment を通じて適切な環境変数を設定(または volumes を通じて適切な設定ファイルをマウント)し、次のコマンドを実行します。
# イメージをビルド
docker compose build
# サービスを起動
docker compose up -d
# サービスを停止
docker compose down
イベントコールバックアドレス: http://IP:9000/webhook/event カードコールバックアドレス: http://IP:9000/webhook/card
3. Railway を使用したデプロイ#
オープンソースプロジェクトのアドレスで環境変数を設定してデプロイするだけです。書くのが面倒です。
Railway は海外の Serverless プラットフォームで、さまざまな言語をサポートし、Github 上のコードリポジトリをワンクリックで Railway プラットフォームにデプロイし、その後 Railway プラットフォームで環境変数を設定できます。
このプロジェクトはローカルデプロイ、serverless クラウド関数デプロイ、バイナリインストールパッケージデプロイもサポートしていますが、私は便利で迅速な Docker があれば十分だと思います。
フライングブックボットの設定#
まとめ:フライングブックボットのバックエンドのイベントサブスクリプション
セクションにコールバックアドレスを入力し、ボット
セクションにメッセージカードのリクエスト URL を入力し、最後にボットの権限を設定します。
1. 開発者プラットフォームにアクセスしてアプリを作成し、APPID と Secret を取得#
2. アプリ機能 - ボットにアクセスし、ボットを作成#
3. 具体的な設定#
イベントサブスクリプションは cpolar、serverless または Railway からパブリックアドレスを取得し、フライングブックボットのバックエンドのイベントサブスクリプション
セクションに入力します。例えば、http://xxxx.r6.cpolar.top は cpolar が公開したパブリックアドレスで、/webhook/event は統一されたアプリルートで、最終的なコールバックアドレスは http://xxxx.r6.cpolar.top/webhook/event です。** カードメッセージ ** はフライングブックボットのバックエンドの `ボット` セクションで、メッセージカードリクエスト URL を入力します。例えば、http://xxxx.r6.cpolar.top は cpolar が公開したパブリックアドレスで、/webhook/card は統一されたアプリルートで、最終的なメッセージカードリクエスト URL は http://xxxx.r6.cpolar.top/webhook/card です。** ボットの権限 ** はイベントサブスクリプションセクションで、3 つの単語 `ボット参加`、`メッセージ受信`、`メッセージ既読` を検索し、それらの後ろにあるすべての権限にチェックを入れます。権限管理画面に入ると、画像を検索し、`画像またはファイルリソースの取得とアップロード` にチェックを入れます。最終的に以下のコールバックイベントが追加されます。
- im(画像またはファイルリソースの取得とアップロード)
- im
- im.group_at_msg(グループ内のすべてのメッセージを取得)
- im.group_at_msg(グループチャット内でボットに @メッセージイベントを受信)
- im.p2p_msg(ユーザーがボットに送信した個別チャットメッセージを取得)
- im.p2p_msg(ユーザーがボットに送信した個別チャットメッセージを読み取る)
- im:message(ユーザーがグループ内でボットに @メッセージを取得)
- im:chat(グループ情報を取得)
- im(グループ情報を取得および更新)
公開#
ボットの設定が完了したら、ボットを公開し、管理者の承認を待ちます。