ホーム / ブログ / AIアシスタントに専用のTelegramボットを持たせる方法

AIアシスタントに専用のTelegramボットを持たせる方法(電話番号ではなく)

同じように聞こえて、まったく違う2つのものがあります。AIのためのTelegram電話番号——実際のSIMでログインした本物のアカウント——は映画の中の話です。AIのためのTelegramボット——BotFatherからの小さなアイデンティティで、@usernameでアクセスできる——が実際に機能し、合法で、10分でセットアップできる方法です。

人々がこれを尋ねるとき、たいてい意味すること

「AIにTelegramの番号を与えて」というのは、SIMカードのことをほとんど意味しません。Telegramの中で人のように話しかけられるようにしてほしいということです。すでに家族や仕事に使っているのと同じインターフェース。同じ転送機能、同じ音声メッセージ、同じファイル投下。そのアドレスを人間ではなくアシスタントに向けるだけ。

Telegramはそのための2つの入口を用意しています。個人アシスタントとして正直なのは1つだけです。

2つの入口を並べて比較

入口1——ユーザーbot。 実際のTelegramアカウントをオートメーションライブラリ(Telethon、MTProto、TDLib)にログインさせます。あなたのアプリ上では普通の連絡先として表示され、あなたと同じメッセージ履歴を見え、人間にできることなら何でもできます。強力。でも:登録に本物のSIMが必要で、明らかに自動化されたことをした瞬間にTelegramの利用規約に違反し、パターン検出器が気づいたときにフラグが立ってロックされ、あなたのプライベートチャットと同じフォルダにアシスタントの活動が混ざり込みます。これはサーベイランスツールを作っている場合か、数週間ごとにアカウントが消えても大丈夫な場合に取る入口です。個人AIには間違った入口です。

入口2——bot。 @BotFatherとチャットを開き、/newbotを実行し、表示名とユーザー名を選び、トークンを受け取ります。そのトークンは、それ自体が第一級のTelegramアイデンティティです——人ではなく、bot。@your_bot_nameでアクセスできます。公式の契約の範囲で動きます:botは見知らぬ人に会話を開始できず、履歴を静かに収集できず、ユーザーのふりができません。地味で、安全で、個人アシスタントに必要なものがそれです。

この記事の残りは入口2についてです。

10分のセットアップ

  1. BotFatherに話しかける。 @BotFatherを開きます。/newbotを送ります。表示名を選びます(チャットヘッダーに表示される名前)。botで終わるユーザー名を選びます——これが恒久的な@handleです。BotFatherは1234567890:AA...のようなトークンを返信します。
  2. トークンをパスワードのように保管する。 botをホストするサーバーの.envファイルに入れます。gitには絶対入れない、スクリーンショットにも、他のチャットへの貼り付けにも。漏れた場合は、BotFatherで/revokeを実行してローテーションしてください。
  3. Telegramと通信するプロセスを起動する。 アシスタントにはトークンに対してロングポールまたはwebhookを開く1つの実行プロセスが必要です。1プロセス。同じトークンで2つのプロセスが動くと、Telegram APIからの409 Conflictエラーで互いを打ち消し合います——初日に起きがちな障害です。
  4. 挨拶してみる。 自分のTelegramからbotにメッセージを送ります。返信があるはずです。なければ、トークンが間違っているか、プロセスが落ちているか、他の何かがすでにトークンを保持しています。
  5. 欲しい機能をオンにする。 BotFatherに戻って:アバター用の/setuserpic、プロフィール説明用の/setdescription、短い自己紹介用の/setabouttext、スラッシュコマンドメニュー用の/setcommands、グループでbotを使う予定でメンションだけでなくすべてのメッセージを受け取りたい場合は/setprivacy

「専用bot」がAIに実際に与えるもの

与えられないもの(そしてなぜそれで大丈夫なのか)

botは見知らぬ人にDMを送れず、参加していないチャットを読めず、グループに参加する前に送られたメッセージを見ることができません。それはTelegramのルールであり、代替案がスパムまみれになるから存在します。個人アシスタントにとってこれらの制約は贈り物です:botはあなたからしか話しかけられず、あなたにしか話しかけず、あなたが意図的に見せたものだけを見ることを意味します。

botには電話番号も紐付いていません。それが特長です。失くすSIMも、BANされるアカウントも、生かし続ける「メインデバイス」も不要です。トークンとそれを実行するプロセスがあるだけです。

初日によくある3つの失敗

  1. 1つのbotに多くの仕事を詰め込む。 最初のbotがとてもうまく機能するので、すべての新しいプロジェクトを同じトークンに追加しようとします。すると、自動文字起こし、取引アラート、家族チャットのヘルパー、営業ファネルがすべてひとつの名前の下に住みます。分けましょう:目的ごとに1つのbot、botごとに1つのトークン、トークンごとに1つのプロセス。コストはかからず、障害の範囲を小さく保てます。
  2. トークンをコミットする。 トークンが認証のすべてです。持っている人は誰でもbotになれます。.env.gitignoreに入れている)かシークレットマネージャーに保管してください。コミット、GitHubログ、共有スクリーンショットに現れたら——すぐにBotFatherで無効化してローテーションしてください。
  3. botの2つのコピーを実行する。 同じトークンをポーリングする2つのプロセスが競合し、両方が409 Conflictを受け取ります。症状:botがメッセージに返答し、数秒後にまた返答し、そして沈黙します。対策:1プロセス、1ホスト。新バージョンをデプロイするなら、先に古いものを停止してください。

これが個人AI設定の中でどこに位置するか

botはフロントドアです。その背後に実際のアシスタントがあります:モデル、記憶、スキルのセット、スケジューラー、そして各Telegramの更新を本物の返信に変える接着剤。それらすべてをゼロから構築できます——トークンは標準で、APIは文書化されており、SDKは成熟しています。あるいは、すでに配線済みのシステムをインストールすることもできます:Avelinaでは、インストーラーbotがBotFatherを案内し、あなたのトークンを受け取り、アシスタントをあなた自身のVPSにデプロイし、夜のうちに動作するチャットをあなたに返します。同じドア、接着剤は少なく。

どちらの道を取るにしても、botはアシスタントではありません——それはアシスタントが応答するアドレスです。最初の試みでアドレスを正しく設定することは10分の価値があります。

関連記事