自分の Chatgpt Telegram ボットをデプロイする#
date: 2023 年 3 月 24 日
slug: 19
status: 公開
tags: 技術
type: 投稿
オープンソースプロジェクトのアドレス:リンクcloudflare workers に基づいて開発された telegram 対話ボットで、実際の体験は良好です。無料で使いやすいものは誰もが好きですよね。
前期準備#
1. tg ボットの作成#
BotFather で新しい telegram ボットを作成し、Token を取得してボットの名前やアイコンをカスタマイズします;
- Telegram を開いて BotFather に /start コマンドを送信します
- /newbot コマンドを送信し、ボットに名前を付けます
- ボットにユニークなユーザー名を付けます
- BotFather が Token を生成しますので、コピーして保存しておきます。後で Cloudflare Workers の設定でこの Token を TELEGRAM_TOKEN 変数に入力します
- Telegram で BotFather を見つけて /setcommands を送信し、自分のボットを見つけて new - 新しい対話を開始します
2. OpenAI アカウントの登録と API Key の作成#
openai.com でアカウントを登録し、右上のアイコンをクリックして個人設定画面に入り、API Keys で新しい API Key を作成します。後でこれを API_KEY に入力します。
デプロイ#
1. Workers のデプロイ#
- Cloudflare Workers に登録します
- Create a Worker をクリックします
- コードをエディタにコピーして保存します
2. 環境変数の設定#
Setting-Variables-Environment Variables を開き、変数を追加します:
KEY | 説明 | デフォルト値 | 特殊説明 |
---|---|---|---|
API_KEY | OpenAI API Key | null | |
TELEGRAM_AVAILABLE_TOKENS | 複数の Telegram Bot Token をサポート | null | 複数の Token は,で区切ります |
CHAT_WHITE_LIST | チャット ID のホワイトリスト | null | 複数の ID は,で区切ります。ID がわからない場合は、ボットと一言話すと返ってきます |
I_AM_A_GENEROUS_PERSON | ホワイトリストを無効にし、全員のアクセスを許可 | false | 多くの人がホワイトリストを設定したくない、または ID の取得方法がわからないため、このオプションを設定すると全員のアクセスが許可されます。値が true のときに有効です |
AUTO_TRIM_HISTORY | 自動的に履歴をクリア | true | 4096 文字制限を避けるために、メッセージを削減します |
MAX_HISTORY_LENGTH | 最大履歴長 | 20 | AUTO_TRIM_HISTORY が有効な場合、4096 文字制限を避けるためにメッセージを削減します |
CHAT_MODEL | OpenAI モデルの選択 | gpt-3.5-turbo | |
SYSTEM_INIT_MESSAGE | システム初期化メッセージ | あなたは頼りになる助手です | デフォルトのボット設定 |
SYSTEM_INIT_MESSAGE_ROLE | システム初期化メッセージの役割 | system | デフォルトのボット設定 |
ENABLE_USAGE_STATISTICS | 使用統計を有効にする | false | 有効にすると、API を呼び出すたびに KV に記録され、/usage で確認できます |
HIDE_COMMAND_BUTTONS | コマンドボタンを隠す | null | 隠したいボタンをカンマで区切って入力します /start,/system、スラッシュを忘れずに。変更後は再度 init が必要です |
DEBUG_MODE | デバッグモード | false | 現在、最新のメッセージを KV に保存してデバッグを容易にします |
3. KV データのバインド#
(Settings-Variables-KV Namespace Bindings) で、名前を DATABASE に設定します。
- 右上の Create a Namespace をクリックします
- 名前を DATABASE に設定します
- Cloudflare Workers を開いて自分の Workers をクリックします
- 右上の Setting -> Variables をクリックします
- KV Namespace Bindings で Edit variables をクリックします
- Add variable をクリックします
- 名前を DATABASE に設定し、先ほど作成した KV データを選択します
4. 実行#
実行後のユーザー設定#
各ユーザーのカスタム設定は、Telegram でメッセージを送信することでのみ変更できます。メッセージ形式は/setenv KEY=VALUE
です。
KEY | 説明 | 例 |
---|---|---|
SYSTEM_INIT_MESSAGE | システム初期化パラメータ。設定後は新しいセッションを開始しても保持され、毎回デバッグする必要はありません | /setenv SYSTEM_INIT_MESSAGE = 今からあなたは猫娘です。すべての文の最後に「にゃ」を付けてください。 |
OPENAI_API_EXTRA_PARAMS | OpenAI API の追加パラメータ。設定後、API を呼び出すたびにこれが含まれ、温度などのパラメータを調整できます | /setenv OPENAI_API_EXTRA_PARAMS={"temperature": 0.5} 毎回の変更は完全な JSON でなければなりません |