見出し画像

ワークフローツールにおけるAPI連携の極意 jinbaflowでの発見、多分、Dify, Zappier, Gumloopもいつか実装すると思うけど

開発TeamのTakです。自動化ツールをちょっと作っている皆さんなら、知っていることかと思いますが、他サービス連携って意外とムズイのです。
今回は、僕らがAPI連携機構を作るにあたり、めっちゃ悩んだ過程とものすごいいいやり方を見つけた話をします。ちょっとテクニカルなことも出てきますが、非エンジニアでもわかるくらい、チルに書きます。(僕もそんな詳しいことは分からない)。後、それぞれのツールの実際の連携について知りたいかたはこの記事は参考になりません。
https://www.jinba.ai/

オートメーションを作る場合のAPI連携の設計方針は基本は2つ

  1. 「がちがちにレール敷く法」
    UIをガッツリ作りこみ、限られたMethodについてユーザーに提供する。(Zappier, Gumloop)

  2.  「もはやコーディング法」
    UIは置いといて、すべてのMethodをユーザーが使えるようにする

  3. 「生成AIにやらせる法」←要は2番をクソスムーズにコード生成させることにより、ユーザーに負荷をかけない。

いきなり、我々の結論を言ってすいません。この第3の答えに至る前、社内では大乱闘が起きていました。

Tak(私) 、松 (機械学習PHD)、 A(元Amazon本社のエンジニア)の会話
---
A: 僕は全然、そのまま全部のMethod使える方がいいな2で問題ない。
Tak: え、誰が分かるん?Doc読まないといけないじゃん。でも1だとやりたいこと出来ない….
松 : じゃ、1にする?そんなにやりたいことあるか?
Tak: あるよ、スレッドの中身確認して、その中にあるスタンプの数とかカウントしたい。
松 : そんな変態はTakしかおらんで… どうすんねん。いったんそれやるときのコードを生のpythonで書いてみて考えるか….
~~~1日後~~~
松 : あ、これこのコード自体作らせればよくね…..
---

チーム会議

短縮しましたが、この議論を2週間はしていました…w

つまりどうなったか、
こうなりました。Oauth認証だけをするモジュールを作る。右側にPythonモジュールを置き、Authであることを伝えて何したいか伝える

こうなった

え、これ普通じゃないと思われるかと思いますが、実際には2回APIを叩かないといけないところをショートカットしています。普通だと、Get IDみたいなので、メールのIDを取得し、そのIDから一つ一つのデータをAPIで取得し、さらに、そのデータから受信となっている最新のものを取らないといけない。つまりしたみたいな工程になる。

普通にAPIを叩くとこうなる

もちろん、我々のシンプル化された方がでも、ステップは同じだが、全部生成AIに考えて調整してもらおうという最強な方法である。

ここで皆さんに立ち返ってもらいたい、API連携はめんどくさい

これは、なぜかAPIのMethodがめっちゃ沢山あるからです。えー死ぬほどあります。
一例としてSlackを出すので、息をとめてスクロールしてください。これでも全体の10分の1です。
https://api.slack.com/methods

Slackの連携。

これらを駆使して、特定のスレッドの特定のコメントにされている特定のスタンプを取得し、それに対して返信し、Gmailを自動で送りその報告をするボットをつくろうとするとこうなる。


多分、もう僕にしか分からない。まずい。作るのは楽しかった。

このワークフローが難しくなるのも、このIDをとってから操作を行わなければないという設定の影響だ。。。(ちょっと時間が足りずこれ自体を更新できていないが、また時間があるときに更新する。)

最後に動かしているとこ。



いいなと思ったら応援しよう!