目次
皆さま、こんにちは。ビジネスアプリケーション事業本部(BA)、MuleSoft事業推進準備室(MU)のNです。
当ブログを拝見されている方はご存知だと思いますが、BAには「みて・さわって・ためして・事例を作っていく」というBAマインドが存在しています
BAマインドについて▼
私は、Globalwayの中では出向社員という、ビジネスパートナーの延長としてGlobalwayに籍を置かせていただいていますが、BAマインドの恩恵を受け、このような機会をいただいております。
さて、本日はMuleSoftがAI連携のコンポーネントを提供したということで、さっそく試してみました。その雑感を共有させていただきます。
Salesforce World Tour Tokyoや、DreamForceなどで、MuleSoftブースを大いに盛り上げてくれました。
MACプロジェクトについて、詳細は以下のサイトでご確認ください。
簡単にお伝えすると「Anypoint Platform」で AI エージェントを設計、構築、管理できるように支援するコンポーネントを提供するプロジェクトです。
プロジェクトでは大きく6つのコネクタ群に分類されていますが、今回試してみたのは「AI Chainコネクタ」と「Vectorsコネクタ」の2種類です。
さて、AIと言って皆さまが思い浮かべるものはなんでしょうか。昨今では生成AIと著作権の問題などが大きな話題を呼んでいますが、やはりいちばん身近なAIツールと言えば、ChatGPTやGemini、Copilotなどの大規模言語モデル(LLM)ではないでしょうか。
LLMという言葉はあまり馴染みのない方も多いかもしれませんが、AIに質問をして、回答をくれる機能のことです。
MuleSoftのAI Chainコネクタを使って何ができるか、具体的な実装方法は割愛しますが、実際の画面をもとに簡単に説明します。
今回やってみること
早速、Mule AI Chainコネクタを使って、LLMに問合せをしてみましょう。
なんとこれだけです「Chat answer prompt」に、質問文を投げることでLLMから回答をもらう事ができます。 ビルドして、postmanを使ってListenerをコールしてみましょう。
おぉ、ちゃんと答えてくれますね。
GPTらしい回答をきちんとしてくれますね、嵐のこともよくわかっている。
では、Globalwayのことはどうでしょう。
はい、具体的な人名については公表されておらず、GPTには難しい質問のようです。 それでは、LLMに情報を補強してRAG*化してみましょう
* RAGとは、Retrieval Augmented Generationの略で、自社に蓄積された大量の業務文書・規定などの社内情報、外部の最新情報を活用する手段として、信頼できるデータを検索して情報を抽出し、それに基づいてLLMに回答させる方法のことです
今回VectorDBにはAWSのOpenSearchというものを利用しました。
https://aws.amazon.com/jp/opensearch-service/
OpenSearchに、Vectorsコネクタを利用して、社内のメンバー情報を追加していきます。
*具体的な名前などの情報は黒塗りとさせていただきますのでご了承ください
因みに、VectorDBというのは、一般的なRDBと全く異なる新次元のデータ解釈を行ってくれる、最先端の素敵な技術です。
このブログでは紹介しきれないので、ご自身で確認して頂けると幸いです。
簡単にお伝えすると、情報を細分化しながら、細かな粒度の単語たちを多次元的な座標情報に変換し、情報同士の位置(意味合い)が近いものを抽出するといった仕組みです。
噛み砕いて説明しても難しいですが…すごい技術です。
MuleSoftのVectorsコネクタでは、テキスト・Word/PDFなどのバイナリデータ・画像データ等をベクター化して保存できるようです。
今回は、単純にテキストデータをPOSTして、データをベクター化してみましょう。
コンポーネントはたったの2つ「[Embedding]Generate from text」と「[Store]Add」です。 テキストデータをEmmbeding(ベクター化)して、ストア(Vector DB)にAddします。
さっそくビルドして、テキストデータを追加してみました。
アップデート成功のようですね。
OpenSearchで中身を確認したところ、きちんとデータが存在していることがわかります。
*ちなみに上図22行目から1560行目までの間にvector情報が大量に詰まっています
なるほど、人間にはまるで理解できませんね。
ちなみにこの【Embedding】は、MuleSoftが提供しているいくつかのモデルを選択して利用できるため、こんなに簡単に作成できますが、簡単だからといって質が悪いわけではないと思います(今後要検証)
また、今回はGlobalwayに何名かの人間が在籍していることを明示するため何人かのデータを追加しました。
それでは、最後にこの情報を利用してLLMに問合せをしてみましょう。
最後のコンポーネントは少しだけ複雑になります(が、それでもこんなに簡単です)
「[Embedding]Generate from text」と「[Store]Query」で、質問内容をVector DBに問合せてデータを取得します。
そして、最後にLLMへの問合せの際にVector DBの情報(response)を追加して、教えてください、という流れになります。
さっそくビルドして試してみましょう。前回は個人情報を持っていなかったため、在籍者など返答してもらうことはできませんでした。
なんと、LLMはVector DBの情報を参照してデータを返してくれるようになりました!
なお、このVector DBの中には、在籍者情報以外の情報もいくつか登録していたのですが、それらに関連しないデータはきちんと省いて必要な情報だけを返してくれました。
賢い、かわいい、RAGの出来上がりです。
ということで、MuleSoftのAI連携コネクタを試してみました。
皆さんどうでしたか? 私は、こんなに簡単にLLMに社内情報を追加して問い合わせできるとは思っていませんでした、さすがMuleSoftと言わざるを得ません。
さて、今回はこのような機会をいただき、最先端の技術をいち早く(MACコネクタは提供されてまだ数ヶ月)試すことができました。
Globalwayでは、試したい! という【好奇心】と【エンジニア】をとても大切にしてくださいます。
また、ビジネスパートナー・社員の垣根を超えて色々なチャレンジを応援してくれる社風も、私は魅力だと感じています。
ご興味を持たれた方は、ぜひGlobalwayで一緒にお仕事をしてみませんか? 知的好奇心旺盛なエンジニアの皆さんをお待ちしております。