hiroshi は GPT4Free ベースの Telegram チャットボットで、Bing、You、AI Chat などを含む GPT-3.5、GPT-4、Llama2 言語モデルと対話するための完全に無料のアクセスを提供します。ユーザーは、好みのモデルまたは特定のプロバイダーを自由に選択できます。特定のプロバイダーを使用すると、速度/安定性が若干低下する可能性があることに注意してください。モデルとプロバイダーを切り替えても、会話のコンテキストは完全に保持されます。
注:このボットは、公共の無料サービスへのアクセスを提供します。このようなサービスの品質と速度は、さまざまな条件や現在の負荷によって異なります。公式 OpenAI API を使用するボットが必要で、API KEY をお持ちの場合は、次のリポジトリを確認してください: https://github.com/s-nagaev/chibi。
もちろん! @hiroshi_gpt_bot
アプリケーションはリソースをまったく必要としません。最小限の Raspberry Pi 4 と最も安価な AWS EC2 インスタンスt4g.nano
(arm64 コア 2 つ、512MB RAM) で完璧に動作し、同時に多くの人にサービスを提供できます。
ヒロシ Docker イメージをプルします。
docker pull pysergio/hiroshi:latest
必要な環境変数を使用して Docker コンテナを実行します。
docker run -d
-e TELEGRAM_BOT_TOKEN= < your_telegram_token >
-v < path_to_local_data_directory > :/app/data
--name hiroshi
pysergio/hiroshi:latest
と
を適切な値に置き換えます。
次の内容を含むdocker-compose.yml
ファイルを作成します。
version : ' 3 '
services :
hiroshi :
restart : unless-stopped
image : pysergio/hiroshi:latest
environment :
TELEGRAM_BOT_TOKEN :
volumes :
- hiroshi_data:/app/data
volumes :
hiroshi_data :
を適切な値に置き換えます。
Docker コンテナを実行します。
docker-compose up -d
他のサンプルについては、現在のリポジトリのサンプル ディレクトリにアクセスしてください。
次の環境変数を使用して、hiroshi を構成できます。
変数 | 説明 | 必須 | デフォルト値 |
---|---|---|---|
TELEGRAM_BOT_TOKEN | Telegram ボット トークン | はい | |
ALLOW_BOTS | 他のボットがヒロシと対話できるようにする | いいえ | 間違い |
ANSWER_DIRECT_MESSAGES_ONLY | True の場合、グループ チャットのボットは自分の名前を含むメッセージにのみ応答します ( BOT_NAME 設定を参照) | いいえ | 真実 |
アシスタント_プロンプト | OpenAI クライアントの初期アシスタント プロンプト | いいえ | 「あなたは親切でフレンドリーなアシスタントです。あなたの名前はヒロシです」 |
BOT_NAME | ボットの名前 | いいえ | 「ヒロシ」 |
GROUP_ADMINS | ユーザー名のカンマ区切りのリスト (例: "@YourName,@YourFriendName,@YourCatName" 。グループ チャットでプロバイダーを設定し、ダイアログ履歴をクリアするための排他的なアクセス許可が必要です。 | いいえ | |
グループ_ホワイトリスト | ホワイトリストに登録されたグループ ID のカンマ区切りリスト、つまり"-799999999,-788888888" | いいえ | |
LOG_PROMPT_DATA | デバッグ目的で、ユーザーのプロンプトと GPT 回答をログに記録します。 | いいえ | 間違い |
MAX_CONVERSATION_AGE_MINUTES | 会話の最大経過時間 (分単位) | いいえ | 60 |
MAX_HISTORY_TOKENS | 会話履歴内のトークンの最大数 | いいえ | 1800 |
MESSAGE_FOR_DISALLOWED_USERS | 許可されていないユーザーを示すメッセージ | いいえ | 「私との接触は許可されていません。申し訳ありません。まず飼い主に連絡してください。」 |
プロキシ | アプリケーションのプロキシ設定 | いいえ | |
レディス | Redis 接続文字列、つまり「redis://localhost」 | いいえ | |
REDIS_PASSWORD | Redis パスワード (オプション) | いいえ | |
再試行 | 応答が失敗した場合のプロバイダーへの再試行リクエストの数 | いいえ | 2 |
SHOW_ABOUT | 何らかの理由で/about コマンドを非表示にしたい場合は、 false に設定してください。 | いいえ | 真実 |
タイムアウト | リクエスト処理のタイムアウト (秒単位) | いいえ | 60 |
USERS_WHITELIST | ホワイトリストに登録されたユーザー名のカンマ区切りのリスト、つまり"@YourName,@YourFriendName,@YourCatName" | いいえ | |
MONITORING_URL | モニタリング機能をアクティブにし、MONITORING_FREQUENCY_CALL 秒ごとに GET リクエストをこの URL に送信します。 | いいえ | |
MONITORING_FREQUENCY_CALL | モニタリング機能がアクティブな場合は、MONITORING_FREQUENCY_CALL 秒ごとに GET リクエストを MONITORING_URL に送信します。 | いいえ | 300 |
MONITORING_RETRY_CALLS | MONITORING_RETRY_CALLS の試行後にのみ、エラー応答をログに記録します。 | いいえ | 3 |
モニタリング_プロキシ | 監視プロキシ URL。 | いいえ |
.env
ファイルの例については、example ディレクトリにアクセスしてください。
バージョン管理には SemVer を使用します。利用可能なバージョンについては、このリポジトリのタグを参照してください。
このプロジェクトは MIT ライセンスに基づいてライセンスされています。詳細については、LICENSE.md ファイルを参照してください。