OpenAI/AzureOpenAI API への Cloudflare Worker プロキシ アクセスに基づくサービス。現在、エンタープライズ WeChat アプリケーションおよび WeChat パブリック アカウントへのアクセスをサポートしています。
方法は 3 つあります
快速编辑
、このプロジェクトのリリースでパッケージ化された js ファイルをダウンロードし、コンテンツをエディターにコピーして保存します。设置
をクリックし、左側の变量
選択し、ページを下にスクロールしてKV 命名空间绑定
まで移動し、编辑变量
、クリックして作成したバインディングを追加します。 2 番目の部分の名前空間では、左側の変数名をKV
に入力する必要があります环境变量
までスクロールし、次の章を読んで、アクセスするサービスに応じてインターフェイス上で環境変数を構成します。触发器
にカスタム ドメインを追加して、ドメイン名をワーカーに追加します。 Cloudflare Workersを使用して、OpenAIとChatGPTのAPIにアクセスできない問題を解決することを参照できます。注: wrangler
デプロイメントを実行すると、環境変数やwrangler.toml
で構成された KV ID などの関連情報が出力されます。これらは、Github Actions の実行ログから確認できます。
wrangler.toml
ファイル内のkv_namespaces
id
には、バインド用に作成された名前空間の ID が埋められます。Settings
- Secrets and variables
- Actions
に次のシークレットを追加します。wrangler.toml
の[vars]
以下の項目を読み取り、ファイルの内容全体を記入しますDeploy
アクションを手動で実行して、デプロイを完了します。Git と Node.J の基本的な使用法を理解する必要がある
wranger
Cloudflare の公式コマンド ライン クライアントです。 npx wrangler login
ログインした後、コマンド ラインからワーカーをデプロイできます。KV
コマンド ラインから作成でき、ファイルwrangler.toml
内のkv_namespaces
id
には、バインド用に作成された名前空間の ID が入力されます。wrangler.toml
の[vars]
の下の項目を補足してください。wrangler.toml
名前をwrangler.prod.toml
に変更し、コマンドnpm run deploy
使用して Worker にデプロイします。WeChat と比較して、Enterprise WeChat を使用することをお勧めします。利点は次のとおりです。 1. 企業 WeChat アプリケーションの表示範囲は制御されており、公開アカウントのように完全にオープンではありません。 2. 企業に参加した後、個人 WeChat は会社経由でのみアプリケーションに入ることができます。 2 回のクリックが必要ですが、サブスクリプション アカウントの入力にはさらにクリックが必要です。 3. エンタープライズ WeChat グループ ロボット アラームをサポートします。
Enterprise WeChat に登録し、必要に応じて情報を入力します。認証は必要ありません
エンタープライズ WeChat 管理バックエンド - マイ エンタープライズ - エンタープライズ情報ページ エンタープライズ ID (corpid) を確認します
アプリケーション管理 - アプリケーションを作成します。AgentId と Secret を表示し、メッセージを受信できます。トークン、EncodingAESKey をランダムに生成するように API 受付を設定します。現時点では保存する必要はありません。
ワーカーは、アプリケーションに必要な環境変数を構成します。インターフェース操作を通じて設定できます。上記のCloudflareインターフェース展開の3番目のステップを参照してください。構成ファイルを使用して構成できます。Github Action のデプロイの 3 番目のステップとローカル コマンドラインのデプロイの 3 番目のステップを参照してください。
変数名 | 内容説明 | 述べる |
---|---|---|
WEWORK_ID_LIST | アクセスが許可されるアプリケーション ID のリスト。複数をカンマで区切って指定します。 | IDはお客様ご自身でカスタマイズしてください。10桁以内の文字と数字で構成することをお勧めします。 |
WEWORK_${ID}_APPID | 企業 WeChat 企業 | ${ID} をカスタム ID に置き換えます |
WEWORK_${ID}_TOKEN | アプリケーショントークン | ${ID} をカスタム ID に置き換えます |
WEWORK_${ID}_AES_KEY | エンコーディングAESKeyが適用されました | ${ID} をカスタム ID に置き換えます |
WEWORK_${ID}_ADMIN_USER_ID_LIST | 管理者ユーザーのリスト (複数はカンマで区切る) | 現時点では未構成のままにし、後でユーザー ID がわかったら構成することができます。 |
ドメイン名とカスタマイズされた ID に従って、手順 3 でサーバー アドレス (URL) を取得し、形式はhttps://${域名}/openai/wework/${ID}
になります。たとえば、ドメイン名がxxx.com
で、カスタマイズされた ID がid123
の場合、サーバー アドレス (URL) はhttps://xxx.com/openai/wework/id123
です。为保障企业数据安全,需配置备案主体与当前企业主体相同或有关联关系的域名
が示唆されていますが、実際のテストでは、Cloudflare が独自のドメイン名をバインドしていることが判明しました。検証に合格することもできます。具体的なルールはわかりません。
ユーザーは、My Business-WeChat Plug-in-Invite Follower を通じて会社に参加し、QR コードをスキャンして会社に入り、個人 WeChat 上のアプリケーションを使用できます。ビジネス WeChat の設定 - 新規メッセージ通知 - ビジネス WeChat でのみメッセージを受信するでアプリケーション メッセージをオフにすることができます。オフにしないと、個人 WeChat で返信メッセージを受信できなくなります。
WeChat パブリック アカウント (通常は個人サブスクリプション アカウント) を低い資格確認基準で登録します。
パブリック アカウント管理プラットフォーム - 設定と開発 - 基本構成ページ 開発者 ID (AppID) を確認し、トークン (Token) を生成し、メッセージの暗号化と復号化キー (EncodingAESKey) (セキュリティ モードまたは互換性モードがオンになっている場合にのみ必要) を確認します。次の場合にサーバー構成を有効にする必要はありません。
ワーカーは、WeChat パブリック アカウントに必要な環境変数を構成します。インターフェース操作を通じて設定できます。上記のCloudflareインターフェース展開の3番目のステップを参照してください。構成ファイルを使用して構成できます。Github Action のデプロイの 3 番目のステップとローカル コマンドラインのデプロイの 3 番目のステップを参照してください。
変数名 | 内容説明 | 述べる |
---|---|---|
WECHAT_ID_LIST | アクセスが許可される公式アカウント ID のリスト。複数の ID はカンマで区切られます。 | IDはお客様ご自身でカスタマイズしてください。10桁以内の文字と数字で構成することをお勧めします。 |
WECHAT_${ID}_APPID | 公式アカウントの開発者ID(AppID) | ${ID} をカスタム ID に置き換えます |
WECHAT_${ID}_TOKEN | パブリックアカウントのトークン | ${ID} をカスタム ID に置き換えます |
WECHAT_${ID}_AES_KEY | 公式アカウントのメッセージ暗号化および復号化キー (EncodingAESKey) | ${ID} をカスタム ID に置き換えます。これは、セーフ モードまたは互換モードが有効な場合にのみ必要です。 |
WECHAT_ADMIN_USER_ID_LIST | 管理者ユーザーのリスト (複数はカンマで区切る) | 現時点では未構成のままにし、後でユーザー ID がわかったら構成することができます。 |
WECHAT_ADMIN_OPENAI_KEY | 管理者ユーザーの OpenAI キー | オプションで、 WECHAT_GUEST_OPENAI_KEY デフォルトで使用され、OpenAI 構成よりも優先されます。 |
WECHAT_GUEST_OPENAI_KEY | 訪問者のOpenAIキー | オプションで、自由に使用できます。OpenAI の設定よりも優先されます。設定には注意してください。 |
ドメイン名とカスタマイズされた ID に基づいて、2 番目の手順で構成したサーバー アドレス (URL) を取得し、形式はhttps://${域名}/openai/wechat/${ID}
になります。たとえば、ドメイン名がxxx.com
で、カスタマイズされた ID がid123
の場合、サーバー アドレス (URL) はhttps://xxx.com/openai/wechat/id123
です。
メッセージの暗号化および復号化方法では通常、プレーン テキストが選択され、サーバー構成が可能になり、アクセス検証が成功した後に使用できるようになります。
入力時に大文字と小文字を区別することはできません
注文 | 利用可能な役割 | 説明する |
---|---|---|
/ヘルプ | 訪問者、ユーザー | コマンドのヘルプ情報を取得する |
/setOpenAiType | 訪問者、ユーザー | openAi を使用するか、azureOpenAi を使用するかを設定します。デフォルトでは OpenAi が使用されます。 |
/バインドキー | 訪問者、ユーザー | OpenAI API キーを /bindKey xxx の形式でバインドします。キーがバインドされている場合は上書きされます。バインド後、/testKey コマンドを使用して、正常に使用できるかどうかをテストします。 |
/unbindKey | ユーザー | OpenAI APIキーのバインドを解除する |
/bindAzureKey | 訪問者、ユーザー | /bindAzureKey yourResourceName:yourDeploymentName:yourApiKey の形式で AzureOpenAI キーをバインドします。キーがバインドされている場合は上書きされます。バインド後、/testKey コマンドを使用して、正常に使用できるかどうかをテストします。 |
/unbindAzureKey | ユーザー | AzureOpenAI API キーのバインドを解除する |
/testKey | ユーザー | OpenAI/AzureOpenAI を呼び出してモデル インターフェイスを一覧表示し、API キーが正常にバインドされて使用可能かどうか、使用量を消費しないかどうかをテストします。 |
/setChatType | ユーザー、トライアルリスト | 会話モードを切り替えると、「シングル チャット」と「シリアル チャット」が選択でき、デフォルトは「シングル チャット」です。 「シングル チャット」は現在の入力のみを処理し、「クロス チャット」は過去のチャット記録を取得して OpenAI をリクエストするため、より多くの使用量が消費されます。 |
/newチャット | ユーザー、トライアルリスト | 以前のチャット履歴をクリアして新しいチャットを開始する |
/リトライ | ユーザー、トライアルリスト | msgId に基づいて対応する回答を取得します。回答は 3 分間のみ保持されます。保持時間は ANSWER_EXPIRES_MINUTES によって構成可能です |
.. | ユーザー、トライアルリスト | 最後に遅延した回答を再試行します |
。 。 | ユーザー、トライアルリスト | 最後に遅延した回答を再試行します |
/bindSessionKey | 訪問者、ユーザー | OpenAI セッション キーをバインドするには、使用状況ページで https://api.openai.com/v1/usage のリクエスト ヘッダーを表示します。元のセッション キーは再度ログインするたびに無効になるため、バインドする必要があります。それをまた。 |
/unbindSessionKey | ユーザー | OpenAIセッションキーのバインドを解除する |
/使用法 | ユーザー | 今月の使用状況情報の取得には 5 分程度の遅延が発生する可能性があり、OpenAI API キーまたはセッション キーをバインドする必要があります。 |
/free使用法 | ユーザー | 無料の使用状況情報を取得するには、約 5 分の遅延が発生する場合があります。また、OpenAI セッション キーをバインドする必要があります。 |
/システム | ユーザー、管理者 | 現在の OpenAI モデル、現在のユーザー ID など、現在のシステム構成情報を表示します。 |
/よくある質問 | 訪問者、ユーザー | よくある質問 |
/admin認証 | 訪問者、ユーザー | コマンドを非表示にし、トークン認証によって管理者になることで、プラットフォームごとに管理者ユーザー ID を設定する手間を回避できます。最初に ADMIN_AUTH_TOKEN を構成する必要があります |
/テストアラーム | 管理者 | コマンドを非表示にして、アラーム メッセージの送信をテストします。最初に ALARM_URL を設定する必要があります |
/フィードバック | 訪問者、ユーザー | ユーザーは開発者にフィードバックを送信します。最初に FEEDBACK_URL を構成する必要があります |
構成名 | デフォルト値 | 説明する |
---|---|---|
チャットモデル | gpt-3.5-ターボ | OpenAIのモデル名 |
OPEN_AI_API_PREFIX | https://api.openai.com/v1 | OpenAIの共通APIプレフィックス |
ゲストキー | オプションで、訪問者のデフォルトの openai キーを自由に使用できます。これはプラットフォーム間で機能するため、慎重に設定してください。 | |
ADMIN_KEY | オプション。管理者ユーザーのデフォルトの openai キー。プラットフォーム間で有効です。 | |
OPEN_AI_USAGE | https://api.openai.com/dashboard/billing/usage | OpenAI利用アドレス |
OPEN_AI_FREE_USAGE | https://api.openai.com/dashboard/billing/credit_grants | OpenAI無料利用アドレス |
OPEN_AI_API_TIMEOUT_MS | 30000 | OpenAI API リクエストのタイムアウト、ミリ秒 |
OPEN_AI_API_KEY_OCCUPYING_DURATION | 0 | OpenAI API キーの使用間隔 (秒単位) は、電流を制限するために使用され、0 より大きい場合に有効になります。 kv を使用して電流制限を実装するのは、かろうじて使用できるとしか言えません。 |
OPEN_AI_API_CHAT_EXTRA_PARAMS | OpenAI API チャットの追加グローバル パラメーター、JSON 文字列、利用可能なパラメーター | |
MIN_CHAT_RESPONSE_TOKEN_NUM | 500 | OpenAI が応答するトークンの最小数 |
MAX_HISTORY_LENGTH | 20 | チャット履歴の最大長 |
ANSWER_EXPIRES_MINUTES | 3 | 質問/回答を保存する時間、分 |
SYSTEM_INIT_MESSAGE | あなたは、OpenAI によってトレーニングされた大規模な言語モデルである ChatGPT です。できるだけ簡潔に答えてください: 2021 年 9 月 1 日現在。 | OpenAI に送信されるデフォルトの最初のシステム メッセージ。モデルの調整に使用できます。 |
WELCOME_MESSAGE | ようこそ。/help と入力すると、現在利用可能なコマンドが表示されます。 | ユーザーがアプリをフォローするときのウェルカムメッセージ |
AZURE_API_PREFIX | https://RESOURCENAME.openai.azure.com/openai | リクエストプレフィックス経由の Azure OpenAI |
AZURE_CHAT_API_VERSION | 2023-03-15-プレビュー | チャットインターフェースAPIバージョン |
AZURE_LIST_MODEL_API_VERSION | 2022-12-01 | モデルインターフェイス API のバージョンをリストする |
AZURE_GUEST_KEY | オプションで、訪問者のデフォルトの Azure OpenAI キーを自由に使用でき、プラットフォーム間で機能するため、慎重に構成してください。 | |
AZURE_ADMIN_KEY | オプション。管理者ユーザー用のデフォルトの Azure openai キー。プラットフォーム間で有効です。 |
構成名 | デフォルト値 | 説明する |
---|---|---|
デバッグモード | 間違い | デバッグ モードでは、より多くのログが出力されます |
エコーモード | 間違い | エコーモード、受信した情報を直接返します |
ALARM_URL | アラーム URL。現在、エンタープライズ WeChat グループ ロボットとカスタム アドレスをサポートしています。カスタム アドレスは、JSON データを POST します。 | |
FEEDBACK_URL | ユーザー フィードバック URL は現在、エンタープライズ WeChat グループ ロボットとカスタム アドレスをサポートしています。カスタム アドレスは POST { "msg": "xxxx" } JSON データになります。 | |
ADMIN_AUTH_TOKEN | 管理者として認証されたトークンは十分な長さと複雑さを持つ必要があり、慎重に構成して保存する必要があります。 |