【Adobe Symposium 2019】 SNEAKSで紹介した“Expert Assist”の仕組みを徹底解説 #AdobeIO #AdobeSymp
いつもAdobe I/Oデベロッパーブログをご覧いただきありがとうございます。
研究開発本部の浅子です。
今年も7/24にAdobe Symposium 2019を開催しました。
今回は、毎年ご好評をいただいているSNEAKS(Adobeの開発中の最新技術をチラ見せするデモセッション)の中から、**”Expert Assist(エキスパートアシスト)”**の仕組みについて、技術的な解説も交えながら紹介していきます。
コンテンツ
Expert Assistとは?
働き方改革やテレワークなどが推進されている近年。会議室に集まることなく、Slackなどのコミュニケーションツール上で議論を進める機会も増えているのではないでしょうか?
Expert Assistは、Slackで入力されたコマンドをトリガーにSensei APIを呼び出すことで、製品を起動することなくSenseiからのアドバイスを受けられる仕組みです。今回のシナリオでは、メールの開封率予測、画像内の被写体を考慮した切り抜きや文字配置を行っています。
実はこのデモ、アドビジャパンの研究開発本部に所属する ソフトウェアエンジニアの張 品 (Pin “Mason” Zhang)が作成したものなんです。
昨年のSymposiumで紹介された、Adobe I/Oを使用して作成されたボールゲームの展示にインスピレーションを受け、ユースケースやシナリオを吟味し、実際にSlack上で動くデモを開発しました。その後、社内公募にて見事に採択され、2019年3月にアメリカで開催されたAdobe Summit 2019では本人自らがプレゼンターとして登壇しました。
※Adobe Summit 2019で登壇した際の記事:「Adobe SummitのSneaksに アドビジャパンのエンジニアが初めて登壇! アドビジャパンの研究開発本部が目指すイノベーション」
実際にどんなことができるか、それぞれの機能について紹介していきます。
メール開封率予測
セールのお知らせやイベントの集客など、マーケティングにメールを活用するシーンは多いと思います。メールを開封し、コンバージョンに繋げるためには、わかりやすく、かつ目を引くタイトルを付けることが重要です。
Expert Assistは、Slackでメールの件名の案を送ると、Adobe Senseiが、「どれくらいの開封率を見込めるか」「どの単語がメール開封率に寄与するか」を教えてくれます。
/sensei jopenrate {メールタイトル}
というコマンドをSlackに入力すると、Adobe Senseiからメールの開封率予測が返ってきます。
Slack上でアイディアを募って、Adobe Senseiに開封率予測を聞いて、一番高い開封率が見込めるタイトルでメールを配信する。という流れがで実現できると、Slack上でのコミュニケーションのみで議論を完結させることができますね。
画像のテキスト配置・自動トリミング
メールだけでなく、SNSなど様々なチャネルでユーザーにメッセージを届けるために、それぞれのプラットフォームに最適な画像を準備する必要性が高まっています。
画像のトリミングやテキスト配置など、ちょっとした作業ではありますが「デザイナーにお願いする余裕がなくて困った」という経験をされたことがある方もいるのではないでしょうか。
Adobe Senseiの画像認識・編集機能を活用することで、AIを用いた画像内の要素認識・最適な位置へのテキスト配置を自動で行うことができます。
Slackに画像をアップロードし、画像のスレッド内で
sensei placetext {画像に配置するテキスト}
と入力すると、人物がいる位置を認識し、適切な箇所にテキストの配置を行ってくれます。
sensei autocrop
とコマンドを入力することで、画像内の人物の位置を踏まえて画像を自動トリミングすることも可能です。1枚の画像をベースにして、複数のサイズの画像を生成する際に便利ですね。
また、以下のコマンドで、テキスト配置と自動トリミングを同時に行うこともできます。
sensei crop+placetext {画像に配置するテキスト}
頻繁にイベントを開催する方、メールやSNSに載せるためのキービジュアルを作成したい方にとって、デザイナーの手を借りずに画像編集ができること。そして何よりSlack上でチームメンバーとのコミュニケーションが完結させられるのは非常に魅力的なのではないでしょうか。
まだまだ発展途上ではありますが、「あたかもデザイナーが編集したかのような画像編集」が可能になる日もそう遠くはありません。
Slack × Expert Assistの仕組み
次に、Expert Assistがどういった仕組みで動いているかを紹介します。
以下のステップによって先程紹介した機能を実現しています。
- ユーザーがSlack上でコマンドを入力・送信
- Adobe I/O RuntimeにHTTPリクエストが送信される
- Slack botがコマンドを解析し、Adobe SenseiのAPIをコール
- Adobe Sensei APIがレスポンスを返し、それをSlack botに受け渡す
※Adobe I/O Runtimeについては、「Adobe I/O Runtime の紹介」を参照ください。
Adobe I/O Runtimeを活用することで、イベント駆動・サーバーレスでのAdobe Sensei API利用を可能としています。
LINEなど他のプラットフォームでも利用可能
SNEAKSでのデモをご覧いただいた方から、**「他のサービス上でも使えるといいのに!」**という声を多数いただきましたが、Expert AssistはSlackだけに特化した機能ではなく、LINEやMicrosoft Teamsなど、他のプラットフォーム上にも組み込むことが可能です。
Adobe Sensei APIは、お客様のユースケースに応じて、様々な用途で組み込むことができます。
例えば、LINEにExpert Assistを組み込むと以下のようになります。
※イメージは開発中のものです。
同僚や友人とのグループチャットにbotを追加し、コマンドからExpert Assistを呼び出して使えるようになると便利ですね。
最後に
Adobe I/OとAdobe Senseiは、様々な用途・様々な製品との組み合わせの可能性を持っているということがおわかりいただけたのではないかと思います。
Adobe I/O Blogでは今後も最新の技術情報を発信していきます。
関連リンク
- Adobe I/O(英語): https://www.adobe.io/
- Adobe I/O Blog(英語): https://medium.com/adobetech