私の目標は、タクシーを呼び出すためにボットをどのように組み立てたかを伝えることではなく、アルゴリズムの実装に費やした時間が他の人によって無駄にならないように、このプロセスを他の人と共有することです。 この作業の結果、APIがある場合、タクシーサービスはこのボットのテンプレートを5分でカスタマイズできます。 または、多数のユーザーを持つボットの所有者は、タクシーサービスを自分にすばやく接続できます。
設計と実装
最初にしたことは、紙に簡単なタクシーコールマシンと注文ステータスを描くことでした。 このようなタスクに何個のリソースが最初から費やされるかを理解するために、簡単かつ迅速にそれをやりたかったのです。 タクシーサービスAPIにアクセスできるので、ロジックを実装するだけで済みました。
私のプロセスでは、最低限の機能を修正しました-今のところ注文し、現金で支払います。 機能的には、ボットはテキストアドレスを認識せずにジオロケーションのみを受信できます。 このような最小限の機能を設計、実装、テストとともに8時間で組み立てました。

その後、ユーザーから住所を受信する段階で、Yandex Speech APIを介してテキスト認識を追加し、ジオロケーションの代わりにオブジェクトまたは住所の名前を送信できるようにしました。 ただし、私が使用するタクシー注文APIは、住所を受信するための独自の特定の形式で機能するため、この関数はアセンブリに追加されません。
次のステップとして、説明したプロセスとロジックを紙からCorezoidクラウドOSの管理者に転送し、Telegram API自体をプロセスに接続しました。 既にこの段階で、Telegramからプロセスへのメッセージの受信をテストすることができました。 次のステップでは、同じ順序で、タクシーを注文するプロセスを作成しました。
これはマシンがどのように見えるかで、Telegramボットのユーザーの状態をドラフトで記述し、Corezoidでどのようになったかを説明しています。

タクシーの注文プロセスのスケルトンを作成した後、メッセージをTelegramに送信し、位置情報を処理し、タクシーサービスAPIを使用するという別のプロセスを作成しました。 それらのテストとバグの修正に5分かかりました。 次に、ダッシュボードを作成しました。
リアルタイムのダッシュボードと分析
Corezoidのコア要素は、コールバック関数です。テレグラムの観点では、これはWebhookと呼ばれます。 この関数により、プロセスはユーザーの応答を待つことができます。 この特定のプロセスにはいくつかの反応があります。ユーザーが位置情報を送信するか、注文をキャンセルする(非アクティブの場合、またはコマンド/キャンセルによって)。 将来、システムはコールバック機能を使用して、ユーザーのステップ数をリアルタイムで監視します。 これにより、タクシーの注文プロセスを通過する顧客の目標到達プロセスを視覚化できます。 各ステップを処理することにより、クライアントが落ちたプロセスを分析し、プロセスをモデレートできます。

Corezoidはプロセスの各状態の統計を自動的に収集するため、ユーザーと注文の各状態の詳細な統計を確認できます。

ダッシュボードは、プロセスを最適化するツールの1つです。 このプロセスを使用する場合は、何も構築する必要がなくなります。ダッシュボードはすぐに使用できます。 そこには、ボットに接続したユーザーの数、使用しているユーザーの数、使用していないユーザーの数が表示されます。 個々の顧客に何らかの更新を通知したり、眠っている更新を呼び起こすことができます。


Telegramで@utaxibotの連絡先を見つけて、 このダッシュボードに アクセスできます。 ボットでコマンド/オーダーを入力すると、リアルタイムダッシュボードがどのように機能するかがわかります。
テンプレートの使用方法
既存のタクシーサービスAPIからボットを解きました。 したがって、テンプレートを含むフォルダーを自分でコピーし、APIを介して地元のタクシー予約サービスに接続できます。 Telegramボットのキーを入力し、タクシーサービスAPIを入力するだけです。
ステップ1 corezoid.comで2クリックでログイン
ステップ2 プロセスとともにフォルダをコピーします 。

ステップ3 Telebotボットを@BotFatherチャットに登録し、そのキーをCorezoidのプロセスに添付します。

ステップ4 ドキュメントに従ってタクシーサービスAPIを接続します 。
タクシー注文APIの要件は、使用したAPIに基づいて作成されました。 ただし、Corezoidは使用するAPIを気にしません。着信データと発信データを手動でマッピングできるため、任意のパラメーターを使用できます。
プロセスを作成するためのコンストラクタとしてCorezoidを使用するだけでなく、既製のテンプレートプロセスを使用することをお勧めします。
そして最も重要なことは、Corezoidはwebhook /コールバックを介して操作モードをサポートするフロントエンドで動作できることです。 したがって、このプロセスは、クライアントとの対話の他のシステム(Slack、Telegram、SiteHeart、SMSなど)で機能します。 少なくともTwitter Direct Message APIに接続でき、同じプロセスがTwitterを介して機能します。
たとえば、ボットの機能を徐々に改良していく予定です。たとえば、近い将来、テキスト認識を追加します。 デスクトップクライアントとの作業の最適化。 複数のアドレスなどの注文。 しかし、代替チャネルとして、ボットを使用できるようになりました。
前編
私はPrivatBankで働いており、Corezoidを使用してPrivat24のビジネスロジックを管理しています。 私は開発者ではないので、コードについてはわかりません。
当初、Corezoidは、銀行の運営上の問題、エスカレーション管理を解決するための専用システムとして開発されました。 運用中、オブジェクトとプロセスの状態を管理するシステムに変換され、メッセンジャーを含むフロントオフィスシステムのバックエンドの役割にCorezoidが最適であることが明らかになりました。
バックエンドを作成するためのプラットフォームは多くありません。 最近、Habréで私はこの記事に出くわしました。そこでは、みんなが電報ボットのデザイナーについての会話を始めました。 今日、私はこの会話を続け、すぐに使えるダッシュボードを備えた柔軟なプラットフォームを示しました。 愛好家は、テレグラムに直接タクシーを呼ぶことができます。
テンプレートを使用する場合は、ここをクリックしてください。 または、Corezoidのドキュメントに精通し、他のボットを組み立てる方法を見つけたい場合は、 こちらをご覧ください。