Difyユーザー必見!JSON Parseツールで面倒な整形作業から解放

はじめまして!ジェネラティブエージェンツの清水れみおです!

今流行りのLLMアプリ開発プラットフォーム『Dify』についてユースケースや実装方法をみなさんに提供していきます!

今回はJSON Parse(整形)についてです!
※2024年8月時点の環境です。Dify Ver.0.6.16

Dify で HTTP ブロックをよく使いますよね? API からデータを取得して色々処理したい時に便利なんですが、返ってくる result の整形がちょっと面倒に感じることはありませんか?
特に複雑な JSON データだと、必要な情報を取り出すのにコードを結構書かないといけなかったり…。
そこで今回は、Dify の JSON Parse ツール を使って、JSON データの整形を劇的に楽にする方法をご紹介します!

例えば、画像のように GCP Vision API から返ってきた結果からテキストデータだけを抽出したいとします。
一般的な方法としては、コードブロックのJavaScript でHTTPの結果の{body}を選択し、バックスラッシュ付きの引用符と改行文字を削除します。
そして JSON.parse() を使って JSON データをパースし、必要な要素にアクセスするコードを書く必要があります (画像1)。

(画像1)一般的なコードブロックによるJSON Parse

function main(args) {
  const cleaned = args.replace(/\r/g, "").replace(/\n/g, ""); 
  const result = JSON.parse(cleaned);
  const description = result.responses[0].textAnnotations[0].description; 
  return { 
    ocr_result: description 
  };
}

HTTPブロックを使うたびに毎回このコードを書くのは面倒ですよね

Dify の JSON Parse ツールを使ってみよう!

Dify の JSON Parse ツールを使えば、こんな面倒な JSON 処理をノーコードで 実行できます。
1. ツールの選択
ブロックを追加から、ツール一覧の JSON Parseツールを探してワークフローに追加します (画像2)。

(画像2)ツールブロック選択
2. パラメータの設定
JSON Parse ツールをクリックして設定画面を開き、以下のパラメータを設定します (画像3)。
(画像3)JSON Parse ツールの設定
JSON data: パースしたい JSON データ。ここでは、HTTP ブロックの出力結果である{body}を指定します。
JSON filter: 抽出したいデータのパス。responses[0].textAnnotations[0].description のように、JSON の構造に従ってパスを記述します。
3. 実行結果の確認
設定が完了したらワークフローをテスト実行します。
JSON Parse ツールは、指定した JSON filter に基づいてデータを抽出し、出力変数{text}に格納します (画像3)。
これで、複雑な JSON データから必要な情報だけを簡単に抽出できました!
JavaScript のコードを書く必要もなく、視覚的に分かりやすいインターフェースで操作できるので、作業効率が大幅に向上します。
Dify の JSON Parse ツールを活用して、HTTPブロックでAPIをいっぱい使っていきましょう!

ジェネラティブエージェンツが日本企業初のLangChain公式Expertsに認定されました

ジェネラティブエージェンツの大嶋です。

先日、ジェネラティブエージェンツが日本企業初のLangChain公式Expertsに認定され、LangChainのWebサイトに掲載されました!

www.langchain.com

LangChain Expertsは、LangChainのエコシステムを熟知した、LangChain社のチームの延長とされています。

これまでのLangChainに関する活動

GA社のメンバーは、LangChainやLangSmith、LangGraphの実システムでの活用はもちろん、LangChainに関してさまざまな活動をしていきています。

LangChainの活用や解説について、日本で有数のメンバーがそろっていることは間違いありません!

今後について

LangChainは、LangSmith・LangGraphといったエコシステムと組み合わせて上手に活用することで、大きな力を発揮します。 LangChainやそのエコシステムについて、私たちが得た知見を広めていく活動は今後も続けていきます!

弊社では、LangChainに関する技術支援や教育プログラムも提供しています。 LangChainを活用した開発でお困の方や、LLMアプリケーション開発の教育プログラムを探している方は、ぜひお声がけください。

お問い合わせ:https://www.generative-agents.co.jp/contact/

勉強会「機械学習アプリケーション(LLMアプリケーション)の「評価」の基本を改めて整理・議論する会」を開催しました #StudyCo

株式会社ジェネラティブエージェンツの大嶋です。

運営している勉強会コミュニティStudyCoで「機械学習アプリケーション(LLMアプリケーション)の「評価」の基本を改めて整理・議論する会」というイベントを開催しました。

studyco.connpass.com

この勉強会では、機械学習アプリケーション(LLMアプリケーション)の「評価」について、あらかじめ用意した資料をベースとして議論していきました。

これまで関わってきた仕事や経験によって気になる点も変わるため、登壇者によって「こういう視点の話もあるよね」という様々な話がでてきて、個人的にはとても良い勉強会だったと思います。

アーカイブ動画を公開しているので、興味があればぜひご視聴ください。

youtu.be

評価の具体的なやり方も知りたい方には

質疑やアンケートでは、「評価の具体的なやり方も知りたい」という声もいただきました。

勉強会の途中でも少し話題に出ましたが、LLMアプリケーションの評価の基本を学ぶうえでは、LangSmithのドキュメントを読んで構築してみるのがおすすめです。

実は過去にLangSmithの入門勉強会も開催しており、その際はLangSmithを使った評価の解説・デモンストレーションも実施しています。

アーカイブ動画もあるので、こちらもぜひご視聴ください。

youtu.be

マイナビ主催「TECH+セミナー AI Day 2024 Jul. AI浸透期における活用法」にて基調講演を行いました

ジェネラティブエージェンツの西見です。

7月18日に行われたマイナビさん主催の「TECH+セミナー AI Day 2024 Jul. AI浸透期における活用法」にて、AIエージェントに関する基調講演を行いました。

news.mynavi.jp

会員限定(登録は無料です)で基調講演の内容に関するレポート記事が公開されておりますので、詳しくはぜひ、こちらの記事をご覧いただければと思います。

news.mynavi.jp

基調講演のタイトルは「人のマネジメントからAIのマネジメントへ - 変わるビジネスと人間の役割」。AIエージェントとの協働が当たり前になる未来を見据えたときに、人間の役割はどうなっていくのか?と、AIよりは人間の方にフォーカスした内容をお届けしました。

講演の様子

事後アンケートの結果も、ネガティブ感想は一件もなく、ビジネス層からの関心度の高さが一層うかがえる結果になりました。

ジェネラティブエージェンツでは講演のご依頼も歓迎しておりますので、ぜひお問い合わせフォームよりご相談くださいませ!

www.generative-agents.co.jp

ジェネラティブエージェンツのウェブサイトをオープンしました!

ジェネラティブエージェンツの西見です。

本日、当社のウェブサイトをオープンしました!

www.generative-agents.co.jp

ジェネラティブエージェンツは「AIエージェントと協働する世界をつくる」をテーマに、AIエージェントの開発や利用促進に取り組んでいる、AIエージェント専業の組織です。

生成AI、特に大規模言語モデル(LLM)を活用したAIエージェントであるLLMエージェントに可能性を感じており、様々なイベントへの登壇や書籍・雑誌記事の執筆を通して、そのようなAIエージェントの認知向上に取り組んでいます。

一方で、いろいろ書いたり、いろいろ話したりしてはいるものの、端的に私たちの取り組みについてお伝えする媒体がない・・・!

(イベントにはよく出ているのに、それ以上の情報がないので、一部では闇のAIエージェント組織と呼ばれていたようです・・・)

AIエージェントという新しい分野に取り組んでいるのもあって、ウェブサイトを作るのであれば、何とか分かりやすくAIエージェントを伝えられるものにしたいなーと思っていたのですが、創業者3人はどちらかというとバリバリエンジニア畑の人間なので、なかなか進捗しておりませんでした。

そんな中、ひょんなことからクオリティの高いデザインワークで定評のあるneccoさんとの出会いがあり、neccoさんのご支援の元、ついに当社のウェブサイトをオープンすることができました・・・!

necco.inc

ご覧頂くと分かるのですが、気持ちの良いアニメーションと共に、なぜ私たちがジェネラティブエージェンツを立ち上げたのか? 私たちが取り組んでいるAIエージェントとはどのような技術なのか? 何に役に立つのか? そういった情報を流れるように理解できるような構成になっています。

いやー、マジでカッコいいですよね・・・。

技術構成

気になる技術構成ですが、ウェブサイトはAstroで構築しています。アニメーションはlottieでレンダリングしており、基本的なスタイルはtailwindcssで実装しています。

ホスティングfly.ioで行っています。まずホスティングサービスとして比較的安価なのと、CloudflareやVercelのように、例えばポートランドの人はシアトルのサーバに、東京の人は東京のサーバといった形でネットワーク距離の近いサーバにアクセスする仕組みになっているため、特に何も意識せずにエッジコンピューティングを実現できるところも魅力です。

また、フィーチャーブランチのプルリク別にサーバを立ち上げる機能もあるため、差分の動作確認も非常に捗ります。

制作過程で行われたGithubのプルリク

プルリクに対して自動的に立ち上がるサーバー

Vercelは便利なんですが結構高いので・・・安価に開発者フレンドリーなホスティングサービスを手に入れたい場合は、fly.ioオススメです。

一緒にAIエージェント開発に取り組むメンバーを募集しております!

ここまでお読み頂き、ありがとうございます!

現在ジェネラティブエージェンツでは、AIエージェントによる業務の自動化・効率化を行うジェネラティブワークフォース(Generative Workforce)の開発を主軸に、その知見を活かしたコンサルティングサービスや独自のAIエージェント開発支援を行っております。

プロダクト開発では大きく、AIエージェント活用のユースケースそのものを開発するユースケース開発チーム、ユースケースの実現のために必要な機能を開発する基盤開発チームの2つのチームが活動しており、チームの知見を自社の業務改善にも活かしながら、お客さまにもご提供するサイクルが動いています。

生成AIの可能性をもっと引き出してみたい、LLMアプリケーションをバリバリ開発していきたい、AIエージェント大好き!といった、様々な働き方を楽しめる環境になってきております。興味を持っていただけた方はぜひ下記のお問い合わせフォームより、お声がけをいただけると嬉しいです。西見のXのDMに直接でもOKです。

www.generative-agents.co.jp

ジェネラティブエージェンツはAIエージェントの開発や利用促進にコミットしていきます。

引き続き、皆さまのご指導・ご鞭撻のほど、どうぞよろしくお願いいたします。

GA社の研究員コミュニティでDifyのハンズオンを実施しました

株式会社ジェネラティブエージェンツの大嶋です。

7月22日に、GA社の研究員コミュニティでDifyのハンズオンを実施しました。

dify.ai

イベントの内容

以前からDifyがかなり話題になっていると思いますが、まださわる時間をとれていない方もいると思います。

そこで、GA社の研究員コミュニティでDifyのハンズオンを実施しました。

内容としては、テキストの入力に加えてマルチモーダルモデルへの画像の入力を試したり、RAGのワークフローを試したりしました。

実際に動かしながら、「チャンク化はどの程度詳細に可能なのか」といった点を確認したり、ハマりどころを体験したりできました。

ユースケースの議論

ノーコードツールにはよくあることですが、Difyで実現できることにも制約があります。 そのため、どんな場面であればうまく活用できるのか、ユースケースの模索が重要です。

Difyのハンズオンをしながら、どんなユースケースにフィットしそうかという議論にもなりました。

ちなみに、私は以前、「ノーコード・ローコードLLMアプリ開発ツールの実際!」という勉強会を主催して、その場でもDifyのユースケースについて議論しています。 アーカイブ動画もありますので、興味がある方はぜひ見てみてください。

【2024/07/10】ノーコード・ローコードLLMアプリ開発ツールの実際!Difyなど4つのツールの概要とディスカッション【アーカイブ】 - YouTube

気になったらGA社メンバーに声をかけてね

GA社の研究員コミュニティでは、生成AIエージェントに興味のあるメンバーで、このようなハンズオン・意見交換会などを開催しています。 生成AIエージェントについて知見をためる仲間を探している方は、GA社メンバーにお声がけください。

7/25 Azure OpenAI Service DevDayにて「LLMでできる!使える!生成AIエージェント」についてお話しました

ジェネラティブエージェンツの西見です。

7/25に開催されたAzure OpenAI Service DevDay(以下、AOAI DevDay)にて「LLMでできる!使える!生成AIエージェント」というタイトルで登壇しました。

AOAI DevDayの詳細については吉田さんの記事をご覧ください。

blog.generative-agents.co.jp

azureai.connpass.com

ジェネラティブエージェンツはLLMアプリケーションを扱う先端企業として、開発者コミュニティに積極的に関わっていきます。

登壇内容

二部屋に分かれてセッションを行う後半戦での登壇だったのですが、ありがたいことに満席御礼でお話をすることができました。

当日の会場の様子

基調講演でもMicrosoftMarco Casalainaさんより、生成AIエージェントならびにマルチエージェントによる業務代行の可能性について触れられており、生成AIエージェントへの関心の高さが伺えます。

当日のスライドはSpecker Deckにアップしていますので、ぜひご覧くださいませ。

speakerdeck.com

ポイント

  • 生成AIエージェントを定義するのは難しいため「エージェントらしさ(Agenticness)」という指標が使われたりするが、エージェントらしさ自体はあまりこだわるポイントではない。ただ「これはエージェントなのか?」に答えるためには有用。

  • 様々なお客さまと会話してきた中で分かったこととして、生成AIエージェントへのニーズは、いわゆる生成AI活用の文脈と共通して「成果物生成」、「カスタマーエンゲージメント」、「意思決定支援」、「業務アシスタント」にある。
  • なので、エージェントによってユースケースが大きく変わるというよりは、生成AI活用を高度化していくためにエージェント技術が用いられると考えた方が良い。
  • ユースケースを大きく変えていくことも、もちろん可能だが、まだまだ実験的)

  • そのため、生成AIエージェントは生成AIをより高度に活用していくためのソフトウェアアーキテクチャと位置付けた上で、業務ワークフローを生成するメタワークフローとしていかに性能を上げていけるかを考える必要がある。

  • 性能を上げる要点はユースケースに応じて様々考えられるが、特に業務へ応用するためには、業務環境(連携先システム、社内ドキュメントなど)にアクセスできるようにした上で、LLMが処理しやすいように変換する必要性がある。業務環境においては、単純に投入してもLLMが処理できないファイルの方が多い。
  • また、業務環境に戻すために、業務で扱われるフォーマットに変換する機能も重要。マークダウンで出力するのではなく、シンプルにWordファイルに変換するだけでも喜ばれる。

  • そのため、エージェントの利用をよりレバレッジしていくためには、LLMの知覚と出力をサポートするためのツール群の整備が重要。ジェネラティブエージェンツでは特にこの部分に力を入れて整備を進めている。

一緒に生成AIエージェントに取り組んでいきましょう!

スライドをご覧になったり、お話を聴いてくださったりして、生成AIエージェントに興味がわいてきた方、ぜひ一緒に生成AIエージェントに取り組んでいきましょう!

Xからでも会社のお問い合わせフォームからでもお気軽にお声がけ下さい!

www.generative-agents.co.jp